Главная страница
    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.46 MB
Время: 0.006 c
14-64784
Pete
2002-04-09 08:43
2002.05.20
Оптимизация...


14-64794
Win32
2002-04-09 12:28
2002.05.20
Microsoft и OpenSource? Да или Нет?


3-64463
Ergoist
2002-04-22 12:22
2002.05.20
Как создать БД FoxPro


14-64809
JibSkeart
2002-04-09 17:12
2002.05.20
Вот сижу пью коффе пытаюсь работать но не получается ...


7-64848
777
2002-02-21 13:46
2002.05.20
Как узнать параметры процедуры из DLL?





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