Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Frame mehrfach dynamisch erzeugen (https://www.delphipraxis.net/141575-frame-mehrfach-dynamisch-erzeugen.html)

sb67pro 11. Okt 2009 19:23


Frame mehrfach dynamisch erzeugen
 
Ich habe folgendes Problem:

Ich möchte ein Frame dynamisch zur Laufzeit mehr fach auf meinem Formular platzieren. Der Code sieht in etwa so aus:
Delphi-Quellcode:
  for i := 0 to xCount - 1 do begin
    if i > 0 then begin
      mysplitter := TRXSplitter.Create(self);
      mysplitter.Parent := self;
      mysplitter.Align := alTop;
      xSplitter.Add(mySplitter);
    end;
    myFrame := TFRameDataGridOne.Create(self);      // Hier gibts Ärger :-)
    myFrame.Parent := self;
    myFrame.Visible := true;
    myFrame.Width := self.Width;    //3 = height der Splitter
    myFrame.Height := (self.Height - (xCount-1) * 3) div xCount;
    myFrame.Align := alTop;
    myFrame.DBGrid1.DataSource := myReportDetail.Query.MyDataSource;
    xFrames.Add(myframe);
  end;
Der erste Schleifen durchlauf klappt prima. Im zweiten wir der Splitter erzeugt aber dann an der Create-Aneisung kommt
Komponente FrameDataGridOne existiert bereits.

Wenn ich das Frame zur designzeit 3 mal reinlege gehts aber...

Wer weiss einen Trick?

[edit=SirThornberry]Delphi-Tags gesetzt - nächstes mal bitte selbst machen :-) Mfg, SirThornberry[/edit]

alleinherrscher 11. Okt 2009 19:36

Re: Frame mehrfach dynamisch erzeugen
 
Is vielleicht blödsinn, aber was passiert wenn du den Pointer auf die Komponente vorher wieder auf NIL setzt, bevor du ihn neu erzeugst?

Keldorn 11. Okt 2009 19:41

Re: Frame mehrfach dynamisch erzeugen
 
Wenn Du die Kompos dynamishc erzeugst, wird der Name nicht durchnummeriert.
Setz nochmal den Namen des Frames fortlaufend.

Gruß Frank

sb67pro 11. Okt 2009 19:47

Re: Frame mehrfach dynamisch erzeugen
 
na manches ist doch so einfach....
es fehlt nur
myframe.Name = 'MeinFrame' + inttostr(i);

danke für Euer Mitleiden :-)

SirThornberry 11. Okt 2009 20:18

Re: Frame mehrfach dynamisch erzeugen
 
wozu weißt du überhaupt einen Namen zu?

Uwe Raabe 11. Okt 2009 21:47

Re: Frame mehrfach dynamisch erzeugen
 
Zitat:

Zitat von SirThornberry
wozu weißt du überhaupt einen Namen zu?

Der Name kommt durch den ObjectInspector in die DFM und wird beim Create geladen.


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