Форум: "Основная";
Текущий архив: 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.46 MB
Время: 0.042 c