Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

обработчик события для множества сгенерированных мемо полей [D7, XP]


Zloi_Funtik ©   (2008-04-09 10:14:00) 

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


Zloi_Funtik   (2008-04-09 16:10:00) [1]

Спасибо всем большое! Дело продвинулось вперёд!


Gydvin   (2008-04-09 12:14:00) [2]


> Kolan ©   (09.04.08 11:44) [10]
> > заранее подготовить нужное колличество обработчиков…Так
> как же ты его узнаешь, если контролы генерятся динамичски?
>

Если не известно кол-во TMemo то - один обработчик с одним действием на всех (по крайне мере шаблоных). Если нужны абсолютно разные действия то - тоже один, но нужно пометить эти поля как нибуть (на имена объектов сложно расчитывать) а дальше через тот же case юзать свою часть кода. И естественно нужно знать конечное колличество создаваемых объектов. Вроде так.

зы. Все разжевывания собсно предназначены автору сабжа


Gydvin   (2008-04-09 11:55:00) [3]


> 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 11:54:00) [4]


>  а то с использованием Sender не очень понятно.


procedure TForm1.YourOnChangeHandler(Sender: TObject);
begin
with Sender as TMemo do  TMemo(Sender).text:='bla-bla';
end;


{RASkov}   (2008-04-09 11:49:00) [5]

> [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;

Гы) Дурь)


Kolan   (2008-04-09 11:44:00) [6]

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

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


Gydvin   (2008-04-09 11:43:00) [7]


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


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


Kolan   (2008-04-09 11:03:00) [8]

with   TMemo.Create(Self)
  do begin
    OnChange := YourOnChangeHandler;
    Parent := Self;
    Left := nach_left;
    Top := nach_top;
…


clickmaker   (2008-04-09 10:59:00) [9]

OnChange := YourOnChangeHandler;


Zloi_Funtik   (2008-04-09 10:55:00) [10]


> Надо там, где ты их создаешь им всем назначить один и тот
> же обработчик какого-нибуди события.
>
> А вотом в этом обработчике анализировать 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;

Спасибо.


Kolan   (2008-04-09 10:31:00) [11]

> Либо для каждого отдельный

А как же ты назначишь каждому свой?


Gydvin   (2008-04-09 10:29:00) [12]

не успел )


Gydvin   (2008-04-09 10:25:00) [13]

назначить им, заранее подготовленный, обработчик событий есно. Либо для каждого отдельный либо один на всех и юзать череp sender.

зы. Лучше всего сделать массив tmemo и ни каких имен не назначать.


Kolan   (2008-04-09 10:20:00) [14]

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

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


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


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


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


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


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


Наверх

Титульная страница Поиск, карта сайта Написать письмо