Autor Beitrag
Bockscar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 105



BeitragVerfasst: Mi 30.11.05 11:52 
Ich habe noch eine Frage zu meinen Roulettespiel das ich programmiere:

Wenn ich im Menu auf Options gehe möchte ich, dass sich so ein neues Fenster oeffnet (Während im Hintergrund die Spielflaeche bestehen bleibt, aber inaktiv) und ich in dem Fenster dann die Optionen (Rundenzahlen,Spielernamen) eingeben kann.

Worin erzeuge ich dieses Optionsfenster? Mach ich da nen neues Formular?


Vielen Dank im Vorraus
Stefan.Buchholtz
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 612

WIN 2000, WIN XP, Mac OS X
D7 Enterprise, XCode, Eclipse, Ruby On Rails
BeitragVerfasst: Mi 30.11.05 12:28 
Kommt darauf an wie es aussehen soll. Wenn man das Spielfenster als ganzes verschieben oder minimieren können soll, während das Optionsfenster offen ist, muss es ein Frame sein. Das ist dann aber etwas aufwendiger, weil du den Frame dann selbst auf dem Spielflächen-Formular positionieren und die Bedienelemente der Spielfläche deaktivieren musst.

Mit einem Form ist es einfacher - du kannst die Position auf poMainFormCenter setzen, damit dein Optionsfenster immer mittig über der Spielfläche erscheint - ich nehme mal an, die Spielfläche ist das Hauptformular deines Programms. Ansonsten musst du es mit poOwnerFormCenter machen oder zu Fuss positionieren. Du kannst das Optionsfenster dann mit ShowModal anzeigen und die Spielfläche (und alle anderen Fenster des Programms) sind automatisch inaktiv. Das würde dann in etwas so aussehen:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
procedure TfrmRoulette.OptionClick(Sender: TObject);
var
  dlgOptions : TfrmOptions;
begin
  dlgOptions := TfrmOptions.Create(self);
  try
    if dlgOptions.ShowModal = mrOK then
    begin
      // hier die in dlgOptions gemachten Einstellungen lesen
    end;
  finally
    dlgOptions.Free;
  end;
end;


Auf dem Options-Formular brauchst du dann einen Ok-Button, bei dem du die Eigenschaft ModalResult auf mrOK setzt.

Stefan