Главная страница
    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.057 c
4-64889
o_viz2000
2002-03-16 21:43
2002.05.20
MAIL SLOTS


4-64887
Win32
2002-03-13 20:03
2002.05.20
Перезагрузка компьютера с сохранением параметров


14-64811
alexandr
2002-04-11 08:57
2002.05.20
test


4-64882
Alexander
2002-03-20 13:19
2002.05.20
Как, зная Handle TLabel, нарисовать на ней что-нибудь (изображение)


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





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