![]() |
Mehrerere Objekte zur Laufzeit erstellen
Hi, ich weiß zwar wie ich z.B. Buttons zur Laufzeit erstelle aber weiß ich nicht wie ich mehr als nur ein Button erstellen kann. Mein Anliegen ist volgendes: jeder kennt ja die Musik Mediathek vom Win Mediaplayer oder von iTunes und so möchte ich das auch machen das man auch mehr Lieder in eine Album Zeile schreiben kann. Wüsste jemand wie ich das machen könnte? Weil da habe ich jetzt keine Anhung da ich Objekte noch nur zur Laufzeit erstellt habe.
Danke Luki :) |
AW: Mehrerere Objekte zur Laufzeit erstellen
Was denn für Objekte? Komponenten oder ganz andere? Im Prinzip geht das so (ich geh mal davon aus, dass es sich nicht um Komponenten handelt):
Delphi-Quellcode:
Wenn später die Objektliste freigegeben wird, werden (in der Standardeinstellung OwnsObjects auf true) auch die enthaltenen Objekte mit freigegeben.
//FObjects soll ein privates Feld vom Typ TObjectList sein
procedure TSomeForm.CreateSeveralObjects(CountObjects: integer); var i: integer; Obj: TSomeObject; begin for i := 1 to CountObjects do begin Obj := TSomeObject.Create; //Irgendwelche Eigenschaften setzen Obj.SomeProp := 42; FObjects.Add(Obj); end; end; |
AW: Mehrerere Objekte zur Laufzeit erstellen
Ganz klar ist es mir nicht. Machen wir mal Ein Panel einfügen und mehrer Buttions drauf.
Delphi-Quellcode:
Das ist jetzt nicht der Heuler ... aber schauen wir mal. Kann man ruhig eine Schleife bauen ... nach dem Panel.
var
lBtn : TButton; lPanel : TPanel; lActRight : Integer; begin (* Panel *) lPanel := TPanel.Create(self); lPanel.Align:=TAlign.alBottom; self.InsertControl(lPanel); (*Button 1*) lBtn := TButton.Create(self); lBtn.Caption:='Eins'; self.InsertControl(lBtn); lBtn.Parent:=lPanel; lActRight := lBtn.Left + lBtn.Width; (*Button 2*) lBtn:=TButton.Create(self); lBtn.Caption:='Zwei'; lBtn.Left:=lActRight + 3; self.InsertControl(lBtn); lBtn.Parent:=lPanel; lActRight := lBtn.Left + lBtn.Width; (*Button 3*) lBtn:=TButton.Create(self); lBtn.Caption:='Zwei'; lBtn.Left:=lActRight + 3; self.InsertControl(lBtn); lBtn.Parent:=lPanel; end; Zitat:
|
AW: Mehrerere Objekte zur Laufzeit erstellen
Zitat:
Ist nur ein Hinweis für die, die noch ein altes Delphi haben. Da TE aber XE5 hat, sollte das kein Problem sein. |
AW: Mehrerere Objekte zur Laufzeit erstellen
Ok danke, nur die Oberfläche vom Windows Media Player ist ja Scrollbar (nicht Scrollbar sondern Scroll-bar ;) ) und jetzt weiß ich nicht wie ich das dann mit den Scrollbar's machen soll das diese mein Fenster nach untenraus erweitern, weil wenn man ja mehr als Zehn mal: Button, Label und Bevel dann erzeugt hat kommt man ja an ein Limit. Oder ja auch noch ein Beispiel von iTunes. Apple hat ja das Coverflow zu dieser neuen Ansicht getauscht und das ist ja auch 'erweiterbar' mit Lieder.
Danke Luki :) |
AW: Mehrerere Objekte zur Laufzeit erstellen
Wenn du das nicht vernünftig beschreiben kannst, dann mach einen Screenshot, kringel das ein was du meinst und schreib "das da" dran
|
AW: Mehrerere Objekte zur Laufzeit erstellen
Liste der Anhänge anzeigen (Anzahl: 1)
@Luki206:
Wenn ich dich richtig verstehe, möchtest du das erreichen, was ich im Bild unten darstelle. In der zugehörigen Anwendung werden Objekte zusammengestellt (ein TImage und eine TCheckBox) und jeweils als ein zusammengehöriges Objekt zur Laufzeit erzeugt. Dazu habe ich mir eine eigene Klasse geschrieben, die die Objekte erzeugen und auch wieder freigeben kann. Die Objekte landen nach Erzeugung in einer TObjectList. In der ScrollBox befindet sich ein TPanel, das in der Breite jeweils der Breite des ScrollBox-Clientbereichs angepaßt wird. Die Höhe richtet sich danach, wie viele Objekte auf dem Panel dargestellt werden sollen. Dabei berechne ich aus der Breite und Höhe der Objekte und aus dem horizontalen und vertikalen Abstand, wie viele Objekte auf eine "Zeile" passen und wie viele "Zeilen" ich benötige. Aus dem letztgenannten Wert ergibt sich die Höhe des Panels. |
AW: Mehrerere Objekte zur Laufzeit erstellen
Tut mir leid wegen den spärlichen Infos nur war ich heute morgen in der Schule etwas verpeilt :mrgreen: @Perlsau Ja genau so etwas meine ich Danke :) ;)
|
AW: Mehrerere Objekte zur Laufzeit erstellen
Na, dann komm doch mal auf die helle Seite, dann siehst du erstens besser und blickst auch besser durch. Immerhin, jetzt weißt du ja, wie's geht.
|
AW: Mehrerere Objekte zur Laufzeit erstellen
Haha, ja ok, danke :D ;)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:13 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-2025 by Thomas Breitkreuz