![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Проблема следующая : у меня на форме много Эдитов, и для каждого одну и туже процедуру писать я не могу, Как сделать так, чтобы однажды написанная процедура выполнялась для всех?
Пробовал свой компонент сделать, от родителя TEdit, руки может кривые, то ошибку выдает, то с панели компонентов пропадает после инсталяции.. Если не сложно, скиньте код реализации моей проблемы с процедурой замены a на b, или чего то такого элементарного.. чтобы я наглядно понял... И если что, гуглил я это уже 2 дня и обращаюсь от безысходности. Дэльфи я учу сам и недавно начал. Последний раз редактировалось skitan, 15.08.2011 в 07:25. |
#2
|
||||
|
||||
![]() Код:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Edit1: TEdit; Edit2: TEdit; procedure FormCreate(Sender: TObject); procedure EditsChange(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure EditsChange(Sender: TEdit); begin Sender.Text:='--'; end; procedure TForm1.FormCreate(Sender: TObject); begin // вот это можно и в цикле сделать // если TEdit вообще сильно много Edit1.OnChange:=EditsChange; Edit2.OnChange:=EditsChange; end; procedure TForm1.EditsChange(Sender: TObject); begin Unit1.EditsChange(TEdit(Sender)); end; end. Пишу программы за еду. __________________ |
#3
|
|||
|
|||
![]() Цитата:
для второго и последующего - выбираешь компонент. Переходишь в инспектор объектов. Переходишь на закладку Events. Выбираешь нужное событие. В комбобоксе выбираешь нужный метод-реакцию на событие. В методе - обработчике Sender - это тот самый Edit, который и вызвал событие. |