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

Вниз

Динамическое создание и удаление объектов   Найти похожие ветки 

 
Mikka   (2004-02-08 12:45) [0]

На панели создал динамически объект TLable с помощью Create и FindComponent...все нормально...А вот как удалить эту метку - не получается...Как можно это сделать???


 
Sergey_Masloff   (2004-02-08 12:53) [1]

Найти и сделать ему Free()


 
Mikka   (2004-02-08 12:58) [2]

Делал так, но с панели все равно не убирается


 
Sergey_Masloff   (2004-02-08 13:14) [3]

убирается.


 
Mikka   (2004-02-08 14:04) [4]

Делаю вот так...
Создание объекта
procedure TForm1.Button1Click(Sender: TObject);
var l:Tlabel;
begin
l:=Tlabel.Create(Application);
with TLabel(Findcomponent("l")) do
begin
l.Caption:="fgfgfg";
l.Top:=100;
l.Left:=100;
l.Parent:=Panel1;
end;
end;

Удаление объекта
with TLabel(Findcomponent("l")) do Free;
panel1.Update;

Но метка не убирается...


 
Anatoly Podgoretsky   (2004-02-08 14:09) [5]

Значит не находит, такого объекта просто нет и благодари бога, что Findcomponent и Free безопасные в использовании, в других случаях вылетишь по ошибка доступа к памяти.


 
KosilkA   (2004-02-08 14:19) [6]

procedure TForm1.Button1Click(Sender: TObject);
var l:Tlabel;
begin
l:=Tlabel.Create(Panel1);
with TLabel(Findcomponent("l")) do
begin
l.Caption:="fgfgfg";
l.Name:="l";
l.Top:=100;
l.Left:=100;
l.Parent:=Panel1;
end;
end;

......

panel1.FindComponent("l").Destroy;


 
Mikka   (2004-02-08 14:25) [7]

/panel1.FindComponent("l").Destroy;/

Вылетает...ошибка памяти...
А каким способом еще можно создать динамически компонет???


 
KosilkA   (2004-02-08 14:59) [8]

да вообще фигня какая то ... только щас присмотрелся к твоему коду... зачем написал with TLabel(Findcomponent("l"))do...??
если можно просто :

procedure TForm1.Button1Click(Sender: TObject);
var l:Tlabel;
begin
l:=Tlabel.Create(Panel1);
l.Caption:="fgfgfg";
l.Name:="l";
l.Top:=100;
l.Left:=100;
l.Parent:=Panel1; << кстати тоже не обязательно уже , см.выше Tlabel.Create(Panel1)
end;
end;

а насчет ошибок. я у себя сейчас попробовал-ничего не вылетает...


 
KosilkA   (2004-02-08 15:03) [9]

а чем ты кстати вызываешь процедуру уничтожения лейбла ? если использовать его(созданного тобой-же лейбла) методы ,то будут ошибки..


 
KosilkA   (2004-02-08 15:10) [10]

ааа забыл ... еще нужно panel1.insertcontrol(l)


 
MBo   (2004-02-08 15:19) [11]

Findcomponent принимает ИМЯ компонента, а не название переменной.

l:=Tlabel.Create(Application);
with l do
begin
Caption:="fgfgfg";
Top:=100;
Left:=100;
Parent:=Panel1;
end;
...

l:=Findcomponent("fgfg"));
if l<> nil then
l.Free;


 
Chlavik   (2004-02-08 15:20) [12]

А зачем её вообще убивать
Label:=Tlabel.Create(Panel1);
А так просто visble:=false;


 
Mikka   (2004-02-08 15:34) [13]

работает, всем сенкс....



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

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

Наверх





Память: 0.47 MB
Время: 0.008 c
1-53487
Вованчик
2004-02-06 08:00
2004.02.17
Как исключить Qtintf70.dll из дистрибутива?


1-53450
lokid7
2004-02-06 17:11
2004.02.17
Взаимодействие между двумя классами


1-53519
h0use
2004-02-05 16:37
2004.02.17
Как запустить Thread параллельно основному потоку?


14-53694
mfender
2004-01-28 08:58
2004.02.17
Почему так тормозит форум?


1-53525
rel_
2004-02-05 15:48
2004.02.17
Переадресация сообщения





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