AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Dyn Button Löschen ???
Thema durchsuchen
Ansicht
Themen-Optionen

Dyn Button Löschen ???

Ein Thema von Bernd29bln · begonnen am 27. Apr 2009 · letzter Beitrag vom 27. Apr 2009
Antwort Antwort
Bernd29bln

Registriert seit: 28. Feb 2005
Ort: Berlin
281 Beiträge
 
Delphi 7 Professional
 
#1

Dyn Button Löschen ???

  Alt 27. Apr 2009, 03:40
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
Bernd
Es ist keine Schande, nichts zu wissen, wohl aber, nichts lernen zu wollen.
Sokrates
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Dyn Button Löschen ???

  Alt 27. Apr 2009, 03:55
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.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Bernd29bln

Registriert seit: 28. Feb 2005
Ort: Berlin
281 Beiträge
 
Delphi 7 Professional
 
#3

Re: Dyn Button Löschen ???

  Alt 27. Apr 2009, 08:27
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
Bernd
Es ist keine Schande, nichts zu wissen, wohl aber, nichts lernen zu wollen.
Sokrates
  Mit Zitat antworten Zitat
Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#4

Re: Dyn Button Löschen ???

  Alt 27. Apr 2009, 09:35
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.
  Mit Zitat antworten Zitat
Bernd29bln

Registriert seit: 28. Feb 2005
Ort: Berlin
281 Beiträge
 
Delphi 7 Professional
 
#5

Re: Dyn Button Löschen ???

  Alt 27. Apr 2009, 14:47
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
Bernd
Es ist keine Schande, nichts zu wissen, wohl aber, nichts lernen zu wollen.
Sokrates
  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 02:09 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