![]() |
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:
Ich versteh net warum das nich klappt, oder is das vollkommen falsch gedacht?
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; 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! |
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; |
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!
|
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:
bleibt noch die Frage, was machst Du mit dem vorherigen MainFrame ?
type
tFrameClass = class of tFrame; ... procedure TForm1.ChangeFrame (FrameClass:tFrameClass); begin MainFrame := FrameClass.Create(Self); MainFrame.Align := alClient; MeinFrame.Show; end; Der sollte vielleicht noch abgeräumt werden.
Delphi-Quellcode:
Gruss
procedure TForm1.ChangeFrame (FrameClass:tFrameClass);
begin if Assigned(MainFrame) then MainFrame.Free; MainFrame := FrameClass.Create(Self); MainFrame.Align := alClient; MeinFrame.Show; end; |
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 11:53 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