Hallo,
etwa so
Delphi-Quellcode:
var
Form : TFormSemi;
WindowList : Pointer;
procedure ErzeugeForm
begin
Form:= CreateStateForm(theCaption, theInfo);
WindowList:= DisableTaskWindows(Form.Handle);
Form.Show;
Application.ProcessMessages;
// hier geht es im 1. Form ganz normale weiter
end;
procedure GibFormFrei
Form.FCanClose := True;
EnableTaskWindows(WindowList);
Form.Free;
Das ganze noch mit einer Boolean-Variable, die im OnKeyDown (KeyPreview=True) des 1. Forms prüft,
ob das semimodale 1. Form gerade läuft und dann in diesem Fall
GibFormFrei aufruft
Hm...muss ich mal probieren. Aber das würde nicht verhindern, dass ein Control der 1. Form angeklickt wird. Das könnte ich in OnMouseDown ja noch regeln.
Und was ist CreateStateForm? Ich kenn nur CreateForm.