Delphi-PRAXiS
Seite 2 von 2     12   

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 Wie gehe ich am besten mit Frames um? (https://www.delphipraxis.net/104452-wie-gehe-ich-am-besten-mit-frames-um.html)

Tyrael Y. 4. Dez 2007 15:31

Re: Wie gehe ich am besten mit Frames um?
 
Zitat:

Zitat von guidok
Ich denke ich werde es so ähnlich machen, wie Tyrael es vorschlägt. Häufig benötigte Ansichten halte ich im Speicher und die anderen erzeuge ich nach Bedarf.

So ganz habe ich das:
Zitat:

Du könntest einen Aufzählungstypen bzw einen Set erstellen, falls es mehrere Frames gleichzeitig geben kann. Machst eine Feldvariable vom Aufzählungstypen bzw. vom Set und weisst dieser Variablen die sichtbaren Fenster bzw. ihren Gegenpart als Aufzählungstyp zu.
zwar nicht verstanden, aber ich werde es schon irgendwie hinkriegen.


Delphi-Quellcode:

type TMyVisibleFrame =(mvfNone, mvfKonfiguration, mvfAndereWelten, mvfNochEinFrame);

type TMyVisibleFrames = set of TMyVisibleFrame;


type
  TMyForm = class(TForm)
  private
    FVisibleFrames: TMyVisibleFrames;
  public
  end;
   
.
.
Procedure Init()
begin
  FVisibleFrames := FVisibleFrames + [mvfNone]; //erst mal leeren
end
.
.
procedure ShowMyKonf()
begin
...

 FVisibleFrames := FVisibleFrames + [mvfKonfiguration];
end

.
.
.
procedure HidemyKonf()
begin
...

  FVisibleFrames := FVisibleFrames - [mvfKonfiguration];


Ich hoffe es hilft dir weiter. ;)

guidok 5. Dez 2007 06:14

Re: Wie gehe ich am besten mit Frames um?
 
Danke Tyrael, jetzt habe ich es verstanden, was du meinst.

Ich mache es jetzt so:
Delphi-Quellcode:
  public
    { Public-Deklarationen }
    AlwaysCreatedFrame: TFrame;
    TemporaryFrame: TFrame;
  end;

procedure TfMain.FormCreate(Sender: TObject);
begin
  //...
  //häufig benötigte Frames
  fProjectView := TfProjectView.Create(self);
end;

procedure TfMain.acDBAdministrationExecute(Sender: TObject);
begin
  AlwaysCreatedFrame.Parent := nil;
  FreeAndNil(TemporaryFrame);
  TemporaryFrame := TfDBAdmin.Create(self);
  TemporaryFrame.Parent := self;
end;

procedure TfMain.acProjectViewExecute(Sender: TObject);
begin
  AlwaysCreatedFrame.Parent := nil;
  FreeAndNil(TemporaryFrame);
  AlwaysCreatedFrame := fProjectView;
  AlwaysCreatedFrame.Parent := self;
end;
So kann ich zwischen den Frames, die ich weiterhin im Speicher halte und den temporär erzeugten relativ einfach wechseln (hier sind es ja derzeit nur zwei, aber es sollte auch mit mehreren funktionieren).


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:53 Uhr.
Seite 2 von 2     12   

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