Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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&#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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.006 c
15-1205998774
Loginov Dmitry
2008-03-20 10:39
2008.05.04
Глючит DeleteFile в WinXP


15-1206250033
Denis__
2008-03-23 08:27
2008.05.04
Photoshop


15-1205931726
@!!ex
2008-03-19 16:02
2008.05.04
Аналог property в C++


15-1205827501
Montero
2008-03-18 11:05
2008.05.04
Ричард Столлмен против Веб 2.0


15-1206382954
oxffff
2008-03-24 21:22
2008.05.04
The Unicode Shift





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский