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

Вниз

ошибка при удалении из Tstringlist   Найти похожие ветки 

 
redlord   (2005-03-12 15:23) [0]

всем привет народ подскажите в чём ошибка
при попытке удаления объекта происходит ошиька ( абстракт еррор)

procedure TForm1.Button1Click(Sender: TObject);
var cl:tbutton; n:integer;
begin
if   activclient= nil then
activclient:=Tstringlist.Create; //activclient:Tstrings;
for n:=0 to 10 do
begin
cl:= tbutton.Create(nil);
cl.Top:=n*30;cl.Left:=10;
cl.Caption:=inttostr(n);
cl.OnClick:=destrou;
cl.Parent:=form1;
activclient.AddObject(inttostr(n),cl);
end;
end;

procedure tform1.destrou(Sender: TObject);
var n:integer;
begin
n:=activclient.IndexOfObject(sender);
tbutton(activclient.Objects[n]).Free;
end;


 
kukuikar ©   (2005-03-12 15:29) [1]


> procedure tform1.destrou(Sender: TObject);
> var n:integer;
> begin
> n:=activclient.IndexOfObject(sender);
> tbutton(activclient.Objects[n]).Hide;
> end;


 
KSergey ©   (2005-03-12 15:41) [2]

> [1] kukuikar ©   (12.03.05 15:29)
> > tbutton(activclient.Objects[n]).Hide;

Почему??

redlord   (12.03.05 15:23)
> n:=activclient.IndexOfObject(sender);  что в n получаем? проверить бы надо


 
kukuikar ©   (2005-03-12 15:46) [3]


> > [1] kukuikar ©   (12.03.05 15:29)
> > > tbutton(activclient.Objects[n]).Hide;
>
> Почему??


не знаю......
:)


 
Юрий Зотов ©   (2005-03-12 16:07) [4]

type
 TForm1 = class(TForm)
   Button1: TButton;
   procedure Button1Click(Sender: TObject);
 private
   procedure BtnClick(Sender: TObject);
   procedure WMUserPlus100(var Message: TMessage); message WM_USER + 100;
 end;

procedure TForm1.Button1Click(Sender: TObject);
var
 i: integer;
begin
 for i := 0 to 10 do
   with TButton.Create(Self) do
   try
     Parent := Self;
     SetBounds(10, i * 30, Width, Height);
     Caption := IntToStr(i);
     OnClick := BtnClick
   except
     Free;
     raise
   end;
end;

procedure Tform1.BtnClick(Sender: TObject);
begin
 PostMessage(Handle, WM_USER + 100, Integer(Sender), 0)
end;

procedure TForm1.WMUserPlus100(var Message: TMessage);
begin
 TObject(Message.WParam).Free;
 inherited
end;


 
redlord   (2005-03-13 00:31) [5]

To Юрий Зотов and ALL
а как быть в случае если
type
Tform1 = class
...
...
end;

тобиш не является окном и мессагу кидать некому


 
Palladin ©   (2005-03-13 01:10) [6]

у любого класса есть конструктор... и, кстати, деструктор тоже...


 
redlord   (2005-03-13 02:32) [7]

TO Palladin
а поподробней .......???

то что они есть я знаю тока воспользоватся ими
в данном случае у меня не  невыходит :((


 
Юрий Зотов ©   (2005-03-13 06:57) [8]

> redlord   (13.03.05 00:31) [5]

Сообщение можно послать Application"у (см. OnMessage), или главной форме (Application.MainForm). Главное не в том, кому его посылать, а в том, что это надо делать через PostMessage.


 
redlord   (2005-03-14 18:45) [9]

ето пошется отдельный класс поэтому крайне нежелатьльно задействовать ворму и ей подобные вещи
я это зделал по другому
обявил сой клас как наследник от нити обвешал его тем чем надо.
нить создается но не запускается в ето время идет  работа с моим классом ,а когда нодо клас похоронить я запускаю нить на исполнение где стоит код sleep(10);
после чего нить помирает и тащит за собой в могилу все что на ней висит



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

Форум: "Основная";
Текущий архив: 2005.03.27;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.094 c
1-1110533012
AlexTregubov
2005-03-11 12:23
2005.03.27
Как узнать тип шрифта - TrueType или OpenType?


1-1110888417
EvgeniyR
2005-03-15 15:06
2005.03.27
Изменение размеров формы


14-1110320589
Soft
2005-03-09 01:23
2005.03.27
Сколько стоит получить патент ... на человеческую душу?


4-1107413722
Chaser
2005-02-03 09:55
2005.03.27
Как отловить перерисовку экрана?


14-1109781694
Ломброзо
2005-03-02 19:41
2005.03.27
Это гут. Но ведь затравят :(





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