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:
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 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