Главная страница
    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.45 MB
Время: 0.04 c
4-1099076434
Redhopter
2004-10-29 23:00
2004.12.12
О перехвате сообщений


1-1101586208
musicman
2004-11-27 23:10
2004.12.12
Перекодирование из ANSI в OEM русского текста


1-1101472948
Dush
2004-11-26 15:42
2004.12.12
Объявление процедур


14-1101197756
blackman
2004-11-23 11:15
2004.12.12
Королевству 6 лет!


14-1101363932
NewDelpher
2004-11-25 09:25
2004.12.12
Вопрос ученым: Нужен ли диссертант научному руководителю?





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