AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Komponente freigeben und neue unter selbem Namen erstellen
Thema durchsuchen
Ansicht
Themen-Optionen

Komponente freigeben und neue unter selbem Namen erstellen

Offene Frage von "Chrissi91"
Ein Thema von Chrissi91 · begonnen am 5. Nov 2008 · letzter Beitrag vom 6. Nov 2008
Antwort Antwort
Chrissi91

Registriert seit: 28. Jul 2005
849 Beiträge
 
#1

Komponente freigeben und neue unter selbem Namen erstellen

  Alt 5. Nov 2008, 20:21
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:

TImage(FindComponent('Kompo' + IntToStr(I))).FreeAndNil; TImage(FindComponent('Kompo' + IntToStr(I))).Destroy; Ich weiß, dass das mit den obigen Befehlen nicht klappt, aber ich weiß auch nicht, mit welchem Befehl es klappen würde.
  Mit Zitat antworten Zitat
mashutu

Registriert seit: 15. Nov 2007
195 Beiträge
 
#2

Re: Komponente freigeben und neue unter selbem Namen erstell

  Alt 5. Nov 2008, 20:32
Hi, versuch mal:
Delphi-Quellcode:
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;
Ich kann das gerade nicht testen, daher keine Garantie fuer den Source.
utu

if it was hard to write it should be hard to read
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Komponente freigeben und neue unter selbem Namen erstell

  Alt 5. Nov 2008, 20:33
FreeAndNil ist keine Methode:
FreeAndNil(FindComponent('Kompo' + IntToStr(I)));
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.746 Beiträge
 
Delphi 2007 Professional
 
#4

Re: Komponente freigeben und neue unter selbem Namen erstell

  Alt 6. Nov 2008, 10:27
Zitat von mkinzler:
FreeAndNil ist keine Methode:
FreeAndNil(FindComponent('Kompo' + IntToStr(I)));
... und braucht eine Variable als Parameter, sonst kann es ja nix auf nil setzen.
FindComponent('Kompo' + IntToStr(I)).Free sollte also reichen.
Uli Gerhardt
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:06 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz