Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.05.02;
Скачать: CL | DM;

Вниз

Куча кнопок   Найти похожие ветки 

 
ATLANTIDO ©   (2002-04-17 23:20) [0]

Ситуация такая - в процессе работы создется много конопок, функция которых почти однинакова - выдавать сообщение. Т.е. кнопка1 при нажатии выдает сообщение "1" , кнопка2 - "2" и т.д. Как мне это организовать ? Кнопки создаются прогрммно.
2) Как правильно освобождать память при динамическом создании обьектов ?
Создаю:

BitBtns[j]:=TBitBtn.Create(TabSheets[i-1]);
BitBtns[j].Left:=NextX; BitBtns[j].Top:=NextY;
BitBtns[j].Width:=100; BitBtns[j].Height:=100;......


 
Walker ©   (2002-04-18 04:58) [1]

1)
пишешь процедуру

procedure TForm1.Bitnt_X_Click(Sender: TObject);
var
st: string;
begin
if (Sender is TBitBtn) then
begin
st:="Кнопка "+IntToStr((Sender as TBitBtn).Tag);
Application.MessageBox(PChar(st), "", 0);
end;
end;

затем в цикле...

BitBtns[j].Tag:=j;
BitBtns[j].OnClick:=TForm1.Bitnt_X_Click;

2) если ты при создании указываешь родителя - Owner (а ты это указываешь - TabSheet), то можно не беспокоится, при уничтожении TabSheet сам удалит всё что на нём расположено (точнее своих детей)

но можно удалять и так:
BitBtns[j].Free;


P.S.: Можно обойтись и без массива BitBtns


 
ATLANTIDO ©   (2002-04-18 20:24) [2]

Оператор BitBtns[j].OnClick:=TForm1.Bitnt_X_Click;
приводит к ошибке "Incompatible types: "TNotifyEvent" and "Procedure"".


 
Poirot ©   (2002-04-18 20:56) [3]

у вас процедура должна быить определена в нутри класса TForm1 в разделе напр Паблик....
И всё работает как надо... тока-что проверил...


 
ATLANTIDO ©   (2002-04-18 21:01) [4]

Спасибо, помогло.


 
Poirot ©   (2002-04-18 21:03) [5]

Хаха.. я ошибку нашёл.... Вы зачем от класса её берёте...
:=TForm1.блаблабла
надо просто :=длабла


 
ATLANTIDO ©   (2002-04-18 21:22) [6]

а я так и сделал ! Спасибо!



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

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

Наверх




Память: 0.47 MB
Время: 0.008 c
4-2715
Reals
2002-02-28 09:37
2002.05.02
Как нарисовать на Рабочем столе, чтобы не стиралось...


1-2534
PaRL
2002-04-18 18:06
2002.05.02
The Question. Simply Question.


3-2443
Бульбаш
2002-04-05 19:22
2002.05.02
Как заполнить список ListBox-а значениями двух полей...???


14-2670
lipskiy
2002-03-27 01:46
2002.05.02
Люди! Не дайте моему крику уйти в пустоту! Ищу параметры сигналов VGA-мониторов!


1-2596
Anton+
2002-04-19 20:10
2002.05.02
lpClassName