Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Правильное блок-ние и разблок-ние компонентов 
V
    Опции темы
Antony41
Дата 12.7.2009, 15:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 332
Регистрация: 27.12.2008

Репутация: 1
Всего: 1



Здравствуйте Уважаемые! Возникла следующая проблема:

У меня так сказать на форме есть список ListView и панелька с несколькими кнопками (открыть, переместить выделить удалить и тд.)

После выполнения некоторых процедур в список добавляются нужные мне файлы, так вот когда я например выделяю файл в списке, то кнопки открыть, переместить, выделить, удалить должны активироваться(enabled), а при снятии выделения пользователем должны блокироваться. Предположим у меня в списке несколько файлов

C:\1.rar
C:\2.rar
C:\3.rar
C:\4.rar
C:\5.rar

когда я выделяю первый итем все прекрасно кнопки активируются, когда после этого кликаю на второй итем, происходит сналала блокирование кнопок а потом снова активация, тут становится ясным, что во всём виновато свойство OnSelected оно реагирует как на выделение так и на снятие выделения, и получается мерцание!!! Фак! что делать?
PM MAIL   Вверх
RomanEEP
Дата 13.7.2009, 13:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 424
Регистрация: 18.5.2006
Где: Коломна

Репутация: 5
Всего: 8



У обычной кнопки можно раз 10 поменять  св-во Enabled и нет никакого мигания
а свойства OnSelected не вижу у ListView есть только OnSelectItem
PM MAIL   Вверх
Antony41
Дата 13.7.2009, 16:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 332
Регистрация: 27.12.2008

Репутация: 1
Всего: 1



ты прав на счёт onSelectedItem  опечатался, а вот попробуй размести таймер с интервалом 1,

и напиши

Button1.Enabled:=not Button1.Enabled;

Получается что то вроде того
PM MAIL   Вверх
kami
Дата 13.7.2009, 18:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1806
Регистрация: 25.8.2007
Где: Санкт-Петербург

Репутация: 23
Всего: 72



можно завести обработчик WM_USER. При срабатывании OnSelectItem просто посылаем (PostMessage) себе сообщение, без разницы с какими параметрами (анализировать их нет смысла).
А уже в обработчике анализируем состояние выбора в ListView.
Получается:
- пришел deselect.
- отправили себе сообщение (через PostMessage)
- пришел Select
- отправили себе сообщение
- доставлено наше первое WM_USER, обработано и выставлено enabled кнопкам и иже с ними.
- доставлено наше второе WM_USER, но так как состояние не изменилось, кнопки не "моргнут".

Если же select не произошло, то ничего страшного не случится - просто WM_USER будет доставлено одно.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0870 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.