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

Вниз

Button.Default vs. Cancel   Найти похожие ветки 

 
Моторокер   (2006-09-26 19:09) [0]

VCL разрешает кнопке TButton присваивать оба значения.
Странно, что в KOL это не так.
Кнопка может срабатывать и на Esc и на Enter, никаких проблем.

В отличие от VCL, где нажатие Esc никак не показано, в KOL кнопка нажимается визуально. Зачем? Хочется стандартного, обычного её поведения.


 
Dimaxx ©   (2006-09-27 02:41) [1]

Не нравится - используй VCL...


 
Моторокер   (2006-09-27 10:31) [2]

Плохой ответ, ни о чём. Так на половину вопросов можно ответить, если не больше. Флуд короче.


 
Vladimir Kladov   (2006-09-27 16:02) [3]

Есть ответ лучше. Предложите свой вариант кода, если изменений много - сделаем через IFDEF. Претензии предъявлять смысла не вижу, все равно никто не бросится удовлетворять просто пожеланиям.


 
Моторокер   (2006-09-29 08:48) [4]

Это не просто пожелание, тем более не претензия. Владимир, оч. впечатлён вашей работой, но эти отличия от VCL не мелкие. Вы везде стараетесь сократить код, но здесь он похоже не нужен.

Допустим, есть диалог О программе.
В VCL поставили кнопку, присвоили свойства Default=true и Cancel=true, написали Close на onClick и уже всё работает.

Непонятно, почему в KOL специально сделано так, что нельзя присвоить эти свойства одновременно true.

//[procedure TControl.SetDefaultBtn]
procedure TControl.SetDefaultBtn(const Index: Integer;
 const Value: Boolean);
var F, C: PControl;
begin  if Index = 13 then
 begin
   fDefaultBtn := Value;
   fCancelBtn := FALSE;
 end
   else
 if Index = 27 then
 begin
   fCancelBtn := Value;
   fDefaultBtn := FALSE;
 end;


как понимаю, код отвечает этот? он здесь лишний? ведь кому надо, тот сам присвоит свойствам разные значения.

Про визуальное нажимание кнопки код пониже? Этот?
   if Index = 13 then
   begin
     F.fDefaultBtnCtl := C;
     if Value then
       Style := Style or BS_DEFPUSHBUTTON
     else
       Style := Style and not BS_DEFPUSHBUTTON;
   end

Тоже наверно можно опустить?


 
Vladimir Kladov   (2006-09-29 19:28) [5]

Можно и убрать внутрь ifdef (вдруг кому-нибудь такое именно поведение надо). Собственно, когда я этот код добавлял года 2 назад, на VCL я уже не смотрел (и собственно первый раз узнал от Вас, что Default и Cancel могут быть вместе. Мне просто никогда не приходилось такое сочетание использовать). Что касается визуального нажатия, то я тоже сделал, как мне казалось, должно быть. В разных средах получаются программы с несколько отличающимся поведением. Например в MSVC получаются окна, которые после первого клика, если приложение было не активно до этого, просто активируются. А реагируют только тогда когда уже активны. Может и безопасно, но для использования нескольких РАЗНЫХ программ одновременно бывает очень неудобно. Сделаем.



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

Форум: "KOL";
Текущий архив: 2007.05.13;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.052 c
3-1172238690
Tor
2007-02-23 16:51
2007.05.13
Открытая транзакция


15-1176460161
Kamuto Hirovato
2007-04-13 14:29
2007.05.13
Все тайное становится явным.


4-1165324335
Viper_Omsk
2006-12-05 16:12
2007.05.13
Перехват запроса отправки на печать


15-1176289119
Layner
2007-04-11 14:58
2007.05.13
HKEY_LOCAL_MACHINE доступен ли для "Пользователей" в XP/2000/3?


4-1165973458
Джо
2006-12-13 04:30
2007.05.13
IMAPI for DVD disks in XP





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский