Главная страница
    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.031 c
14-1101284601
fag2000
2004-11-24 11:23
2004.12.12
Линейное программирование - библиотека с открытыми кодами


8-1095060575
KliffLevy
2004-09-13 11:29
2004.12.12
Вырезать из jpeg в отдельный файл


1-1100888593
Kurtevich
2004-11-19 21:23
2004.12.12
Потеря модальности


1-1101499464
GanibalLector
2004-11-26 23:04
2004.12.12
IncludeTrailingBackslash


1-1101728709
Bobby Digital
2004-11-29 14:45
2004.12.12
Combo





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