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

Вниз

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

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

Наверх




Память: 0.44 MB
Время: 0.044 c
15-1182970406
@!!ex
2007-06-27 22:53
2007.07.29
Смена буквы диска.


15-1183449672
Inco
2007-07-03 12:01
2007.07.29
Проблема с цветом в TurboExplorer


4-1171380174
niko_
2007-02-13 18:22
2007.07.29
Блокировка кнопок WIN и Alt+Tab


9-1157052402
Ketmar
2006-08-31 23:26
2007.07.29
http://shmup-dev.com/ -- конкурс начался


15-1183429016
Slider007
2007-07-03 06:16
2007.07.29
С днем рождения ! 3 июля 2007 вторник





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