Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Dyn Button Löschen ??? (https://www.delphipraxis.net/133167-dyn-button-loeschen.html)

Bernd29bln 27. Apr 2009 02:40


Dyn Button Löschen ???
 
Hallo,

Ich habe mehrere Button auf einem Panel, wenn ich nun einen Button Lösche dann hab ich eine lücke. Weis jemand wie ich die anderen Buttons anordnen lassen kann.

Mein Code:
Delphi-Quellcode:
    Taste[ta]      := TButton.Create(Panel);
    Taste[ta].Top  := p + ta div 7 * 115;
    Taste[ta].Left := 15 + ta mod 7 * 120;
    Taste[ta].Parent:= Panel;
    Taste[ta].Height:= 100;
    Taste[ta].Width := 105;
Gruß Bernd

jaenicke 27. Apr 2009 02:55

Re: Dyn Button Löschen ???
 
Wenn du die Buttons selbst wieder freigeben willst, dann solltest du auch nicht vorher sagen, dass sich das Panel darum kümmern soll. (Indem du es im Konstruktor als Besitzer angibst.)

Zur Anordnung: Wenn du einen der Buttons entfernst, dann musst du doch bei den verbleibenden nur Top und Left neu berechnen.

Bernd29bln 27. Apr 2009 07:27

Re: Dyn Button Löschen ???
 
Hallo und Gruß aus, nach Berlin

Ich habe die Button jetzt in einer dyn. ScrollBox und diese auch als Parent angegeben, da es recht viele Button sind.
Das dumme ist nur das die Button die ich lösche, nach dem neu zeichnen nehmen die Button ihre alte position ein.
Die dyn Scrollbox wird wegen Platzmangel benötigt, oder hast du ne andere Idee?


Gruß Bernd

Satty67 27. Apr 2009 08:35

Re: Dyn Button Löschen ???
 
Lücken füllen durch neu berechnen und zuweisen von Button.Top... wie jaenicke geschrieben hat.

Das Die Buttons Panel oder ScrollBox als Parent haben, finde ich eher besser. Mit Components ist dann schon eine Liste zum Zugreifen da und was beim Beenden noch da ist, wird automatisch aufgeräumt.

Bernd29bln 27. Apr 2009 13:47

Re: Dyn Button Löschen ???
 
Hallo,

Danke für die Tips.
Hab das mal mit einer ComponentenList umgesetzt, ich habe aber immer noch das problem das die lücke nicht geschlossen wird.

Code:
Delphi-Quellcode:
   i := Pred(Taste.Count);

   if ComboBox7.Text = Listview.Items[i].SubItems[1] then
     begin
      Parent := box;
      Caption := Format('Taste %d', [Succ(i)]);
      Width := 105;
      Height := 100;
      Left := i + (i mod cols) * (i + Width);
      Top := i + (i div cols) * (i + Height);
Habt ihr eine Idee?

Gruß Bernd


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