Форум: "Начинающим";
Текущий архив: 2008.05.04;
Скачать: [xml.tar.bz2];
Внизобработчик события для множества сгенерированных мемо полей Найти похожие ветки
← →
Zloi_Funtik (2008-04-09 10:14) [0]У меня в коде создается некоторое количество мемо полей, там же при создании я присваиваю им имена. А каким образом теперь для них всех сделать, чтобы они реагировали на определенные события? Спасибо.
← →
Сергей М. © (2008-04-09 10:19) [1]
> при создании я присваиваю им имена
Можно и не присваивать, ибо они как правило нафиг не нужны.
> создается некоторое количество мемо полей
Владелец у них у всех один и тот же или разные ?
← →
Kolan © (2008-04-09 10:20) [2]Надо там, где ты их создаешь им всем назначить один и тот же обработчик какого-нибуди события.
А вотом в этом обработчике анализировать Sender…
← →
Gydvin © (2008-04-09 10:25) [3]назначить им, заранее подготовленный, обработчик событий есно. Либо для каждого отдельный либо один на всех и юзать череp sender.
зы. Лучше всего сделать массив tmemo и ни каких имен не назначать.
← →
Gydvin © (2008-04-09 10:29) [4]не успел )
← →
Kolan © (2008-04-09 10:31) [5]> Либо для каждого отдельный
А как же ты назначишь каждому свой?
← →
Zloi_Funtik (2008-04-09 10:55) [6]
> Надо там, где ты их создаешь им всем назначить один и тот
> же обработчик какого-нибуди события.
>
> А вотом в этом обработчике анализировать Sender…
А можно продемострировать куда мне что вставлять, а то с использованием Sender не очень понятно.
Вот фрагмент, где у меня создают мемо поля:
for k:=0 to E1 do begin
nach_left:=nach_left+87 ;
for i:=0 to E2 do
with TMemo.Create(Self)
do begin
Parent := Self;
Left := nach_left;
Top := nach_top;
Width:=86;
name:="Memo"+inttostr(nameM);
height:=45;
BorderStyle:=bsNone;
Color:= clNone;
nach_top:=nach_top+46;
nameM:=nameM+1;
if i=E2 then nach_top:=80;
end;
end;
Спасибо.
← →
clickmaker © (2008-04-09 10:59) [7]OnChange := YourOnChangeHandler;
← →
Kolan © (2008-04-09 11:03) [8]
with TMemo.Create(Self)
do begin
OnChange := YourOnChangeHandler;
Parent := Self;
Left := nach_left;
Top := nach_top;
…
← →
Gydvin © (2008-04-09 11:43) [9]
> Kolan © (09.04.08 10:31) [5]
> > Либо для каждого отдельный А как же ты назначишь каждому
> свой?
заранее подготовить нужное колличество обработчиков...
:0)
← →
Kolan © (2008-04-09 11:44) [10]> заранее подготовить нужное колличество обработчиков…
Так как же ты его узнаешь, если контролы генерятся динамичски?
← →
{RASkov} © (2008-04-09 11:49) [11]> [10] Kolan © (09.04.08 11:44)
for N:=0 to 10 do
with TMemo.Create(self) do begin
Parent:=Self;
Left:=
Top:=
case N of
0: OnChange:=ChangeMemo0
1: OnChange:=ChangeMemo1
2: OnChange:=ChangeMemo2
....
end;
end;
Гы) Дурь)
← →
Gydvin © (2008-04-09 11:54) [12]
> а то с использованием Sender не очень понятно.procedure TForm1.YourOnChangeHandler(Sender: TObject);
begin
with Sender as TMemo do TMemo(Sender).text:="bla-bla";
end;
← →
Gydvin © (2008-04-09 11:55) [13]
> Kolan © (09.04.08 11:44) [10]
> > заранее подготовить нужное колличество обработчиков…Так
> как же ты его узнаешь, если контролы генерятся динамичски?
>
> {RASkov} © (09.04.08 11:49) [11]
> > [10] Kolan © (09.04.08 11:44)for N:=0 to 10 do with
> TMemo.Create(self) do begin Parent:=Self; Left:= Top:
> = case N of 0: OnChange:=ChangeMemo0 1: OnChange:=ChangeMemo1
> 2: OnChange:=ChangeMemo2 .... end; end;Гы) Дурь)
Точно ;0)
← →
Gydvin © (2008-04-09 12:14) [14]
> Kolan © (09.04.08 11:44) [10]
> > заранее подготовить нужное колличество обработчиков…Так
> как же ты его узнаешь, если контролы генерятся динамичски?
>
Если не известно кол-во TMemo то - один обработчик с одним действием на всех (по крайне мере шаблоных). Если нужны абсолютно разные действия то - тоже один, но нужно пометить эти поля как нибуть (на имена объектов сложно расчитывать) а дальше через тот же case юзать свою часть кода. И естественно нужно знать конечное колличество создаваемых объектов. Вроде так.
зы. Все разжевывания собсно предназначены автору сабжа
← →
Zloi_Funtik (2008-04-09 16:10) [15]Спасибо всем большое! Дело продвинулось вперёд!
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.05.04;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.006 c