Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Frames in Prozedur wechseln! (https://www.delphipraxis.net/89226-frames-prozedur-wechseln.html)

.chicken 27. Mär 2007 20:06


Frames in Prozedur wechseln!
 
Also einige von euch wissens sicher shcon, ich versuche grade ein Pokerspiel zu programmieren!

Dabei möchte ich nun mittels Frames Seiten auf der Form wechseln (hoffe ihr versteht was ich meine)!
Also wenn ich zB auf "Neues Spiel" klicke, dann verschwindet der Startbildschirm und stattdessen erscheinen die Einstellungen für das Spiel!

Wie gesagt, das möchte ich mittels Frames machen, allerdings möchte ich sie nicht alle auf die Form legen und mittels Visible wechseln!
Ich habe also eine Prozedur geschrieben (oder es zumindest versucht), der ich den Namen des Frames übergebe und die dann die Frame anzeigt.

Ich habe mir das folgendermaßen gedacht:
Delphi-Quellcode:
var
MainFrame: TFrame;

...

procedure TForm1.ChangeFrame(Frame: TFrame);
var
i, j: Integer;
begin
  MainFrame := Frame.Create(self);
  MainFrame.Parent := Form1;
  MainFrame.Align := alClient;
end;


procedure TForm1.NeuesSpiel1Click(Sender: TObject);
begin
  ChangeFrame(NeuesSpiel);
end;
Ich versteh net warum das nich klappt, oder is das vollkommen falsch gedacht?
Bei dem ChangeFrame will er immer irgendeine andere Eingabe haben (NewGame is der Name meines Frames)! Habs auch schon mit TNewGame versucht, ging auch net, kp was is da falsch? Bitte um Hilfe, danke!

fLaSh11 27. Mär 2007 20:58

Re: Frames in Prozedur wechseln!
 
Meinst du das?

Delphi-Quellcode:
procedure TForm1.ChangeFrame(Frame: TFrame);
var
i, j: Integer;
begin
  MainFrame := Frame.Create(Form1);
  MainFrame.Align := alClient;
  MeinFrame.Show;
end;

.chicken 27. Mär 2007 21:01

Re: Frames in Prozedur wechseln!
 
Nein mein Problem liegt darin, dass ich nicht weiss was ich beim Aufruf meiner Prozedur in den Klammern angeben soll! Oder ob ich das überhaupt richtig geschrieben habe!

thkerkmann 27. Mär 2007 21:34

Re: Frames in Prozedur wechseln!
 
Hi,

dein Problem liegt darin, dass deine Prozedur ChangeFrame so schon eine Instanz erwartet.

Vielleicht solltest Du das mal so machen:

Delphi-Quellcode:
type
  tFrameClass = class of tFrame;

...

procedure TForm1.ChangeFrame (FrameClass:tFrameClass);
begin
  MainFrame := FrameClass.Create(Self);
  MainFrame.Align := alClient;
  MeinFrame.Show;
end;
bleibt noch die Frage, was machst Du mit dem vorherigen MainFrame ?
Der sollte vielleicht noch abgeräumt werden.

Delphi-Quellcode:
procedure TForm1.ChangeFrame (FrameClass:tFrameClass);
begin
  if Assigned(MainFrame) then
    MainFrame.Free;
  MainFrame := FrameClass.Create(Self);
  MainFrame.Align := alClient;
  MeinFrame.Show;
end;
Gruss

.chicken 28. Mär 2007 07:43

Re: Frames in Prozedur wechseln!
 
Warums nun vorher nich geklappt hat hab ich nich ganz verstanden, klappt jetzt aber super, danke! :)


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