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

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

Динамические кнопки и их события [D6, D7, Win2k, WinXP]


П7 ©   (2004-10-13 11:57:00) 

Уважаемые Мастера! В моей программе динамически генеряться TEdit'ы и соответствующие им кнопки. По нажатию кнопки должен появляться InputBox, значения которого должно после нажатия OK записываться в соответствующий кнопке TEdit. Как можно подобное провернуть, если писать для каждой кнопки событие отдельно не возможно.
Заранее спасибо! (:


П7   (2004-10-15 13:07:00) [1]


> SergP.   (15.10.04 00:29) [7]

Можно, но это долго...
Да не парьтесь вы, я уже всё уяснил и сделал. Спасибо.


SergP.   (2004-10-15 00:29:00) [2]


>  [6] П7   (14.10.04 21:44)
>
> > 1008 ©   (14.10.04 10:54) [5]
>
> То, что вы преджложили - это жутко медленно, хотя как вариант,
> тоже сойдёт. Но я делаю, как мне Pentium133 в [1] подсказал...
> (:


А не проще ли сразу при создании эддита и кнопки, в tag  кнопки записывать указатель на эдит?

типа:
Mybutton.tag:=integer(Myedit);

а в обработчике писать:

procedure TForm1.ButtonClick(Sender:TObject);
begin
 Tedit(Tbutton(sender).tag).text:=InputBox('...','...','...');
end;

Либо создать класс: чтото типа кнопки с эдитом, два в одном...


П7   (2004-10-14 21:44:00) [3]


> 1008 ©   (14.10.04 10:54) [5]

То, что вы преджложили - это жутко медленно, хотя как вариант, тоже сойдёт. Но я делаю, как мне Pentium133 в [1] подсказал... (:


1008   (2004-10-14 10:54:00) [4]


var
EditArray:array of TEdit;
ButtonArray:array of TButton;

...

//При создании кнопки
ButtonArray[i].OnClick:=ButtonClick;

...

procedure TForm1.ButtonClick(Sender:TObject);
var
i,n:integer;
begin
n:=Length(EditArray);
for i:=0 to n-1 do begin
 if Sender=ButtonArray[i] then begin
  EditArray[i].Text:=InputBox('...','...','...');
 end;
end;
end;


Кажется так.


П7   (2004-10-13 13:50:00) [5]

(:
Ладно, не ругайся... (: Дай потупить... (:


KSergey   (2004-10-13 13:07:00) [6]

Да епрст... А форум почитать? Ну ладно по разу в день, но по 2..3 раза в день одну и ту же тему поднимать...

Читай и ты
http://www.delphikingdom.com/helloworld/runtime_comp.htm


П7   (2004-10-13 12:52:00) [7]

Спасибо, кажется то, что надо! Сейчас потестим...


Pentium133   (2004-10-13 12:01:00) [8]

Как вариант:
Для каждой кнопки и Edit'а укажи уникальный Tag.
В OnButtonClick кнопку идентифицируй по нему. Находи TEdit c такимже Tag'ом и делай что надо.


Наверх

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