![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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, который и вызвал событие. |