Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.05.20;
Скачать: 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 вся ветка

Текущий архив: 2002.05.20;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.018 c
3-64507
Ser_Kham1
2002-04-23 10:51
2002.05.20
BDE


1-64583
galina
2002-05-07 15:22
2002.05.20
программирование


1-64707
TPavel
2002-05-05 09:47
2002.05.20
Определение активности окна.


3-64488
mivv
2002-04-22 20:46
2002.05.20
Index ignore


3-64506
VL
2002-04-20 22:22
2002.05.20
InterBase работает с замедлением...