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