Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: WinAPI и системное программирование > Как перехватить изменение любого TCustomEdit


Автор: Garyck 20.8.2008, 23:28
На форме лежит куча Едитов, нужно отследить изменение текста в них (при наборе с клавиатуры и/или вставкой мыши). Можно конечно для каждого поставить OnChange. Но это большой гемор, да и не граммотно. Кто нибудь-может что-то посоветовать, как создать единый обработчик?

Автор: ama_kid 21.8.2008, 08:25
Цитата(Garyck @  21.8.2008,  00:28 Найти цитируемый пост)
Но это большой гемор...
Ну не такой уж и гемор, в принципе:
Код
procedure TForm1.EditCommonChange(Sender: TObject);
begin
 ShowMessage('Text in '+(Sender as TEdit).Name+' is changed');
end;

procedure TForm1.FormCreate(Sender: TObject);
var
 i:integer;
begin
 for i:= 0 to Self.ComponentCount-1 do
  if Self.Components[i] is TEdit then
   (Self.Components[i] as TEdit).OnChange:=EditCommonChange;
end;

Есть ещё как вариант - http://forum.vingrad.ru/forum/index.php?show_type=forum&showtopic=69246

Автор: Garyck 21.8.2008, 18:23
О! Отлично ТО ЧТО НАДО, Спасибо!
Сам до такого что-то не додумалсяsmile smile 


А есть ли возможность через перехват событий?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)