Главная страница
    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.011 c
6-53680
Zilog_
2003-12-13 08:47
2004.02.17
Странная зависимость между IE и диалогом открытия файла


1-53534
Переяслов Григорий
2004-02-05 14:42
2004.02.17
Странное поведение тулбара


14-53772
Danilka
2004-01-20 10:02
2004.02.17
Стивен Кинг Темная Башня


14-53756
}|{yk
2004-01-30 12:57
2004.02.17
Академическая лицензия для WinXP


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