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

Вниз

Создать и уничтожить   Найти похожие ветки 

 
Bad_B   (2007-07-04 16:36) [0]

Создаю в разброс несколько кнопок так:

for i:=0 to 5 do
   begin
   New:=TButton.Create(form1);
   New.Top:= random(350);
   New.Left:=random(350);
   New.Name:="but"+inttostr(i);
   new.Caption:=New.Name;
   New.OnClick:=OnClickButton;
   New.Parent:=form1;
end;

В OnClickButton пишу такой код(ну что бы по клику кнопка уничтожалась)
Procedure TForm1.OnClickButton( Sender : TObject );
Begin
    try
MessageDlg("Нажата кнопка ",mtInformation,[mbOk],0);
    finally
       tcontrol(sender).Free;
   end;
End;

Не могу понять почему иногда работает а иногда нет. Что не так?


 
Desdechado ©   (2007-07-04 16:41) [1]

Нельзя вызывать уничтожение объекта из его обработчика.


 
{RASkov} ©   (2007-07-04 16:55) [2]

> [0] Bad_B   (04.07.07 16:36)

Удаляй так:
const WM_DELOBJ = WM_USER+1;
....
 private
  DelObj: TObject;
  procedure MessDel(var Mes: TMessage); message WM_DELOBJ;
.....
procedure TForm1.MessDel;
begin
 if Assigned(DelObj) then FreeAndNil(DelObj);
end;

Procedure TForm1.OnClickButton( Sender : TObject );
Begin
   try
     MessageDlg("Нажата кнопка ",mtInformation,[mbOk],0);
   finally
    DelObj:=Sender;
    PostMessage(Handle, WM_DELOBJ, 0, 0);
   end;
End;

Т.е. посылаем форме наше сообщение в котором и удаляется кнопка, но уже после отработки ее события ОнКлик...
ЗЫ И при создании нет необходимости в переменной New.....



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

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

Наверх




Память: 0.47 MB
Время: 0.018 c
15-1182769614
AVS2007
2007-06-25 15:06
2007.07.29
деассемблированый код в delphi


15-1183008937
Slider007
2007-06-28 09:35
2007.07.29
С днем рождения ! 28 июня 2007 четверг


2-1183407477
Okolobaxa
2007-07-03 00:17
2007.07.29
Странная ошибка при выполнении


6-1166812433
Sanek_sd
2006-12-22 21:33
2007.07.29
Помогите советом как отправить ListBox1.Items


2-1183443768
tytus
2007-07-03 10:22
2007.07.29
TSocketConnection - познее связывание - - в другом потоке.