Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi wie lösche ich dynamisch erstellte objakte? (https://www.delphipraxis.net/10998-wie-loesche-ich-dynamisch-erstellte-objakte.html)

fredel007 29. Okt 2003 12:20


wie lösche ich dynamisch erstellte objakte?
 
Hi Leute, ich hänge seit ein paar Tagen an einem Problem fest,
ich ich erstelle mir 3 SpeedButtons während der Laufzeit durch ein Onclick Ereigniss eines normalen Buttons!
Jetzt möchte ich diese 3 SpeedButtons durch einen Click auf einen anderen Button wieder entfernen,
ich hab schon alles mir bekannte ausprobiert, aber es will einfach net klappen!

Kann mir vielleicht jemand helfen? :)

vielen Dank schonmal im Vorraus!


Delphi-Quellcode:
procedure TForm1.B1Click(Sender: TObject);
var
  i:   integer;
Begin
  for i := 1 to 3 do
  begin
    with Tspeedbutton.Create(form1) do
    begin
      Name :='sb' + inttostr(i);
      Parent := form1;
      Width := 17;
      Height := 17;
      Top := 100*i;
      Left := 100*i;
      FreeOnRelease;
    end;
  end;
end;

procedure TForm1.B2Click(Sender: TObject);
begin
  { hier sollen die drei Buttons wieder gelöscht werden }
end;

mirage228 29. Okt 2003 12:22

Re: wie lösche ich dynamisch erstellte objakte?
 
Moin,

guck mal nach FindComponent

bsp:

Delphi-Quellcode:
  (FindComponent('SpeedButton1') as TSpeedButton).Free
mfG
mirage228

fredel007 29. Okt 2003 12:26

Re: wie lösche ich dynamisch erstellte objakte?
 
:hello: Danke, jetzt kann ich endlich wieder gut schlafen :-D

franz77 29. Okt 2003 12:32

Re: wie lösche ich dynamisch erstellte objakte?
 
Hallo fredel007!

Wieso nimmst Du die Buttons nicht als member in die Klassendeklaration mit auf, dann kannst du auch jederzeit wieder darauf zugreifen:

Delphi-Quellcode:
TForm1 = class (TForm)
 ...
 private
 btn1, btn2, btn3: TSpeedButton;
 ...
end;

...
procedure TForm1.createButtons;
begin
  btn1:= TSpeedButton.Create ( Self );
  with btn1 do
  begin
    // buttons positionieren, parent zuweisen usw.
  end;

  btn2:= ...
end;


procedure TFrom1.deleteButtons;
begin
  if assigned (btn1) then btn1.free;
  if assigned (btn2) then ...
  // usw.
end;
Gruss, Franz

maximov 29. Okt 2003 13:27

Re: wie lösche ich dynamisch erstellte objakte?
 
Die betonung liegt auf dynamisch so wäre es statisch :wink:

mirage228 29. Okt 2003 13:42

Re: wie lösche ich dynamisch erstellte objakte?
 
Er könnte ja einen dynamischen Array von TSpeedButton machen, dann hätte er es dynamisch ;-D


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:43 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