Вниз
Скачать: CL | DM;

Как создать массив кнопок?   Найти похожие ветки 

← →
Vinivor   (2002-05-05 13:41) [0]

Народ, подскажите пожалиста, как же сделать массив кнопок?

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


← →
Anatoly Podgoretsky ©   (2002-05-05 13:56) [1]

Там где создал, сразу делай .OnClick := ....;


← →
SPeller ©   (2002-05-05 14:18) [2]

var buttons:=array of tbutton;

implementation
...

setlength(buttons,n);
for i:=1 to n do begin
buttons[i]:=tbutton.create;
buttons[i].tag:=i;
buttons[i].OnClick:=MyProcClick;
end;

Теперь все они будут вызывать MyProcClick при нажатии. А определять какая из них вызвала обработчик вот так:

procedure tform1.MyProcClick(sender:tobject);
var ButtonNumber:integer;
begin
ButtonNumber:=tbutton(sender).click;
...
end;



← →
SPeller ©   (2002-05-05 14:21) [3]

>ButtonNumber:=tbutton(sender).click;
Надо так:

ButtonNumber:=tbutton(sender). Tag;


← →
Vinivor   (2002-05-05 21:49) [4]

А вот и не получается!

Ошибку выдает.


New := TSpeedButton.Create(Self);
New.Flat := True;
New.Font.Color := clBtnFace;
New.Layout := blGlyphTop;
New.Caption := LabeledEdit2.Text;
New.ClientHeight := 70;
New.ClientWidth := 70;
New.Glyph := Image1.Picture.Bitmap;
New.Cursor := crHandPoint;
New.Left := BL[LB1.ItemIndex];
New.Top := BT[LB1.ItemIndex];
New.Name := "SB" + IntToStr(Name1);
New.OnClick := NewClick;
LB2.Items.Add(New.Name + " "" + LabeledEdit2.Text + """);
New.Tag := LB2.ItemIndex;
New.Parent := Form1.PageControl1.Pages[LB1.ItemIndex];


Примерно так.

Так вот работает, а как только пытаюсь прикрутить номер, вываливает ошибку.


← →
arhelon ©   (2002-05-06 08:55) [5]

А че слабо посмотреть исходник TMessageDlg ???


← →
KSergey ©   (2002-05-06 09:55) [6]

Ошибку выдает - это приятно
Если нет ошибок - значит они есть, но их не видно...
А написать что за ошибку и в каком месте - сложно?
К слову, чтобы не было ругани по поводу совпадающих имен компонент можно св-ству Name присваивать всегда пустую строку.
А вообще - почитайте статью "Жизнь и смерть в режиме run-time" на Королевстве дельфи - дусаю множество вопросов у вас отпадет

(сегодня даже не поленился и даю точную ссылку http://delphi.vitpc.com/helloworld/runtime_comp.htm
Так же прочитайте все статьи из раздела "Hello, World!" - найдете массу интересного, я вас уверяю http://delphi.vitpc.com/helloworld/index.htm)


← →
Fay ©   (2002-05-07 08:09) [7]

> Как создать массив кнопок?
a : array of TButton
8)



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.01 c
1-64745
sergeii
2002-05-07 12:01
2002.05.20
поиск данных в StringGrid


3-64523
Саша
2002-04-23 13:55
2002.05.20
числа с рубликами в dbgrid e


1-64731
besen-ok
2002-05-07 09:54
2002.05.20
Как поправить свойство visiable у закладки (TabSheet)


4-64880
AFROLOV
2002-03-20 13:02
2002.05.20
Как показывать дочернее окно в глобальных координатах ?


1-64720
Zazoo
2002-05-06 21:48
2002.05.20
Как перетащить что-либо ИЗ ListView а




   Наверх