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

Вниз

Дублирование события у компонента   Найти похожие ветки 

 
Mishenka   (2004-11-25 09:16) [0]

Хочу написать Edit, в который можно было бы водить только цифры, тобишь нужно описать событие OnChange. Как его описать, чтоб у полученного компанента также можно было обрабатывать событие OnChange?


 
MBo ©   (2004-11-25 09:25) [1]

Cтиль окна Edit должен содержать флаг ES_NUMBER
(SetWindowLong c GWL_STYLE)


 
ASoft   (2004-11-25 09:39) [2]

Смотри ветку ниже [проверить на тип]


 
Leonid Troyanovsky   (2004-11-25 09:40) [3]


> Mishenka   (25.11.04 09:16)  
> Хочу написать Edit, в который можно было бы водить только
> цифры, тобишь нужно описать событие OnChange. Как его описать,
> чтоб у полученного компанента также можно было обрабатывать
> событие OnChange?


type
 TMyEdit = class(TEdit)
 protected
   procedure Validate; virtual;
   procedure Change; override;
 end;

procedure TMyEdit.Validate;
begin
 ;
end;

procedure TMyEdit.Change;
begin
 Validate;
 inherited;
end;


Можно посмотреть и реализацию:

http://groups.google.com/groups?selm=1553063689%40p2.f175.n5020.z2.ftn

--
С уважением, LVT.


 
KSergey ©   (2004-11-25 09:44) [4]

Ну... Классически надо перекрыть OnKeyPress, а не OnChange. Это если именно с клавиатуры не давать вводить. Но можно будет вставить из буфера обмена.
Если именно OnChange - то тогда будет "промаргивать" (сначала отобразится "недопустимое", потом вы его затрете.

Перекрытие OnChange для компоента будет выглядеть так:

TMyEdit = class(TEdit)
  private
    procedure Change; override;
end;

procedure TMyEdit.Change;
begin
  // здесь пишем код
  inherited;  // чтобы, в частности, сработал пользовательский OnChange
end;


А чтобы совсем все было хорошо (все лишнее рубить, да еще и чтобы не "моргало") - это надо обрабатывать CN_COMMAND и в нем CBN_EDITUPDATE. Но это для Win32 платформы, как там для kylix - понятия не имею (предыдущий код явно универсален, надеюсь)


 
KSergey ©   (2004-11-25 09:45) [5]

Пока набирал - старшие товарищи опредили ;)


 
Amoeba ©   (2004-11-25 11:09) [6]

Есть готовые. Найдешь на Torry.



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

Форум: "Основная";
Текущий архив: 2004.12.12;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.56 MB
Время: 0.077 c
1-1101538857
Sanya
2004-11-27 10:00
2004.12.12
Borland Delphi


14-1101232184
Yanis
2004-11-23 20:49
2004.12.12
ОдЁжа


14-1100879277
icebeerg
2004-11-19 18:47
2004.12.12
Поределение точки пересечения прямых


14-1101200631
Nikolay M.
2004-11-23 12:03
2004.12.12
Excel повисает при открытии внешних данных :(


1-1101631192
sten
2004-11-28 11:39
2004.12.12
RichView





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