Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2006.06.11;
Скачать: [xml.tar.bz2];

Вниз

Проблема с 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.013 c
15-1147783087
syte_ser78
2006-05-16 16:38
2006.06.11
вопрос к знатокам Excel


2-1148501573
Юнкер
2006-05-25 00:12
2006.06.11
Как получить ответ от IdUDPServer ввиде структуры?


2-1148390088
rra
2006-05-23 17:14
2006.06.11
Заполнение DBLookupComboBox a из поля таблицы...


2-1148178304
Мурзилка
2006-05-21 06:25
2006.06.11
запрет на нажатие клавиши


6-1139092207
Galiaf
2006-02-05 01:30
2006.06.11
Узнать о кампьютерах в сети. Sockets.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский