Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.05.20;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.005 c
3-64492
kaif
2002-04-22 15:10
2002.05.20
IB Security


1-64690
Анатолий
2002-05-06 13:33
2002.05.20
Шрифты


3-64549
ao1973
2002-04-23 21:25
2002.05.20
BDE не хочет юзать MSACESS


3-64459
XanderMan
2002-04-24 20:02
2002.05.20
Как узнать в программе значения полей для вставленной записи


6-64767
Brand
2002-03-09 01:09
2002.05.20
Socket под WinXP (брандмауэр).





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