Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.05.04;
Скачать: CL | DM;

Вниз

обработчик события для множества сгенерированных мемо полей   Найти похожие ветки 

 
Zloi_Funtik   (2008-04-09 10:14) [0]

У меня в коде создается некоторое количество мемо полей, там же при создании я присваиваю им имена. А каким образом теперь для них всех сделать, чтобы они реагировали на определенные события? Спасибо.


 
Сергей М. ©   (2008-04-09 10:19) [1]


> при создании я присваиваю им имена


Можно и не присваивать, ибо они как правило нафиг не нужны.


> создается некоторое количество мемо полей


Владелец у них у всех один и тот же или разные ?


 
Kolan ©   (2008-04-09 10:20) [2]

Надо там, где ты их создаешь им всем назначить один и тот же обработчик какого-нибуди события.

А вотом в этом обработчике анализировать Sender&#133


 
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;
&#133


 
Gydvin ©   (2008-04-09 11:43) [9]


> Kolan ©   (09.04.08 10:31) [5]
> > Либо для каждого отдельный А как же ты назначишь каждому
> свой?


заранее подготовить нужное колличество обработчиков...
:0)


 
Kolan ©   (2008-04-09 11:44) [10]

> заранее подготовить нужное колличество обработчиков&#133

Так как же ты его узнаешь, если контролы генерятся динамичски?


 
{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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.016 c
2-1207224957
Наташа
2008-04-03 16:15
2008.05.04
Получить объект по имени


15-1205999518
Rentgen
2008-03-20 10:51
2008.05.04
Обмен ПО с удаленным портом


15-1206107308
Поп Гапон
2008-03-21 16:48
2008.05.04
GDI+ и Delphi


6-1185712732
malyar
2007-07-29 16:38
2008.05.04
idtcpserver посылка пакетов всем подключенным клиентам


15-1206100907
Bober_crazy
2008-03-21 15:01
2008.05.04
Простейший вопрос по PHP