![]() |
Komponente freigeben und neue unter selbem Namen erstellen
Hallo,
mein Problem ist kein neues, aber ich kriege es gerade mal wieder nicht gebacken. Ich erstelle zur Laufzeit Komponenten, lösche sie und erstelle sie erneut unter gleichem Namen. Das Problem ist, dass das Programm dann zur Laufzeit abstürzt und sagt, dass der Name schon belegt ist. Freigeben tue ich die Komponenten mit eine der 2 Möglichkeiten, es funktionieren aber keine davon:
Delphi-Quellcode:
TImage(FindComponent('Kompo' + IntToStr(I))).FreeAndNil;
Delphi-Quellcode:
Ich weiß, dass das mit den obigen Befehlen nicht klappt, aber ich weiß auch nicht, mit welchem Befehl es klappen würde. :mrgreen:
TImage(FindComponent('Kompo' + IntToStr(I))).Destroy;
|
Re: Komponente freigeben und neue unter selbem Namen erstell
Hi, versuch mal:
Delphi-Quellcode:
Ich kann das gerade nicht testen, daher keine Garantie fuer den Source.
var
img : TImage; begin ... img:=TImage(FindComponent('Kompo' + IntToStr(I))); img.parent := NIL; //weiss nicht ob's das braucht RemoveComponent(Img);// ... oder das hier? img.free; img:=NIL; // an einigen Stellen im Source der VCL stehen ebenfalls Kommentare, dass FreeAndNIL // nicht geeignet ist // Danach sollte es mit img:=TImage.Create(Parent); //klappen img.name:= ... end; |
Re: Komponente freigeben und neue unter selbem Namen erstell
FreeAndNil ist keine Methode:
FreeAndNil(FindComponent('Kompo' + IntToStr(I))); |
Re: Komponente freigeben und neue unter selbem Namen erstell
Zitat:
Delphi-Quellcode:
sollte also reichen.
FindComponent('Kompo' + IntToStr(I)).Free
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:57 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz