Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.06.11;
Скачать: CL | DM;

Вниз

Проблема с TSpeedButton ом   Найти похожие ветки 

 
DelphiLexx ©   (2006-05-04 13:13) [0]

Возникла следующая проблема:
  На форме лежат два SpeedButton"a, которые объеденены в группу, что даёт возможность при включении одного из них другой выключается.  Но как только в MouseDown я помещаю сообщение(ShowMessage), то получается бред, а именно вместо того, чтобы один из них был нажат, а другой отжат, получаем что они оба нажаты. Как с этим бороться исходники прилагаю.

http://www.rsdn.ru:80/File/26841/%D0%9D%D0%BE%D0%B2%D0%B0%D1%8F%20%D0%BF%D0%B0%D0%BF%D0%BA%D0%B0%20(7).rar


 
MBo ©   (2006-05-04 13:20) [1]

> в MouseDown
это настораживает... почему не в OnClick?


 
DelphiLexx ©   (2006-05-04 13:33) [2]


> в MouseDown
> это настораживает... почему не в OnClick?

Есть редактор текста текущего справочника. Имеется 2 справочника, кнопки как раз-то отвечают за активизацию текущего справочника. Вот мы подредактировали текст в текущем справочнике, затем переключаемся на другой справочник и тут выскакивает сообщение "Сохранить изменения?". Как раз-то это сообщение и хранится в MouseDown"e. Если выбрано "НЕТ", то я не должен переключать справочник, если "ДА", то переключение справочника происходит.


 
Reindeer Moss Eater ©   (2006-05-04 13:38) [3]

А если я табом уйду оттуда?


 
DelphiLexx ©   (2006-05-04 13:42) [4]


> А если я табом уйду оттуда?

Откуда ты tab"ом уйдешь?


 
Reindeer Moss Eater ©   (2006-05-04 13:43) [5]

Уйду из первого справочника не мышкой имелось ввиду


 
DelphiLexx ©   (2006-05-04 13:47) [6]


> Уйду из первого справочника не мышкой имелось ввиду

А это что-ли? Нет tab"ом не получится т.к. он заблокирован.


 
DelphiLexx ©   (2006-05-04 13:55) [7]


> Уйду из первого справочника не мышкой имелось ввиду

Более детально, что нужно сделать:


procedure
 TForm1.SpeedButtonClick(Sender: TObject);
//Общий обработчик для 2-х кнопок события OnClick.
var
 res: integer;
begin
 res := MessageBox(self.Handle, "Запретить переключение кнопки.", "Вопрос", MB_YESNO or MB_ICONINFORMATION);
 if res = mrYes then
    {Тут нужно разместить код запрещающий переключение кнопки}
 else if res = mrNo then
   //Разрещаем переключение кнопки
end.


 
Reindeer Moss Eater ©   (2006-05-04 14:11) [8]

и тут выскакивает сообщение "Сохранить изменения?". Как раз-то это сообщение и хранится в MouseDown"e. Если выбрано "НЕТ", то я не должен переключать справочник, если "ДА", то переключение справочника происходит.

То есть если есть изменения и они не сохранены, то на кнопку и не следовало нажимать вообще, так как по твоей логике ничего не должно происходить при этом.

Я бы ее задисэйблил и не парил бы мозги юзеру извращенным интерфейсом.


 
DelphiLexx ©   (2006-05-04 14:24) [9]


> Я бы ее задисэйблил и не парил бы мозги юзеру извращенным
> интерфейсом.

Но не совсем так, мне хотелось чтобы ты не очень обращал на интерфейсные бред, потому как этого бреда нет. В первом своем ответе я не очень хотел в падать в подробности, но придется. Когда выскакивает сообщение "Сохранить изменения?" и пользователь нажимает "ДА", то далее в программе идёь проверка на пустоту текста в редакторе. Если тектс в редакторе не пуст, то изменения сохраняются, и кнопка переключается, иначе же если в редакторе тектс пуст, то  выдается сообщение, что "Текст в редакторе не может быть пустым!" и кнопка не переключается.


 
Reindeer Moss Eater ©   (2006-05-04 14:39) [10]

Ну и чего?
Что мешает повесить кнопку на TAction и в OnUpdate у TActionList управлять доступностью акшена на основе пустоты текста, несохраненных изменений и текущего курса йены на марсе?


 
DelphiLexx ©   (2006-05-04 14:56) [11]


> Что мешает повесить кнопку на TAction и в OnUpdate у TActionList
> управлять доступностью акшена на основе пустоты текста,
> несохраненных изменений и текущего курса йены на марсе?

Ты имеешь ввиду через Action управлять Enabled"ом кнопки, то мне это не нужно, потому как все кнопки должны быть активны.



Страницы: 1 вся ветка

Текущий архив: 2006.06.11;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.042 c
10-1120418056
Michael5
2005-07-03 23:14
2006.06.11
Как бороться с сообщением, что в буфере обмена находится слишком


15-1148028907
jen
2006-05-19 12:55
2006.06.11
Delphi, не могу сделать отчет сложной шахматки. Журнал ордер


2-1148564074
AversFm
2006-05-25 17:34
2006.06.11
Ув. мастера. Помогите разобраться с группировкой


15-1147897314
palva
2006-05-18 00:21
2006.06.11
Подарок русским программистам


1-1146720370
WhiteBarin
2006-05-04 09:26
2006.06.11
Инструкции OUT, IN в выражении ASM..END;