Главная страница
    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.036 c
1-1101718296
Oyster
2004-11-29 11:51
2004.12.12
Проблемы с кучей в BP


6-1096757015
Klopan
2004-10-03 02:43
2004.12.12
Потоки


14-1100922995
Думкин
2004-11-20 06:56
2004.12.12
С днем рождения! 20 ноября


14-1100909165
Soft
2004-11-20 03:06
2004.12.12
Письмо в госдуму


6-1095166307
Ryoko
2004-09-14 16:51
2004.12.12
Подключение к IRC через Indy IdIRC





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