Главная страница
    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
10-1143450022
msgipss
2006-03-27 13:00
2008.05.04
Использование свойства Calculation com сервера Excel


2-1207738292
F@T@L_Err0r
2008-04-09 14:51
2008.05.04
Компоненты Сокет


15-1206189724
Rouse_
2008-03-22 15:42
2008.05.04
Вакансия Delphi программист


2-1207681325
Ri2008
2008-04-08 23:02
2008.05.04
WM_POWERBROADCAST


15-1206025445
Jeer
2008-03-20 18:04
2008.05.04
Открылся математический форум





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский