Registriert seit: 24. Okt 2008
263 Beiträge
Delphi 7 Enterprise
|
Re: Formstyle, Neuerstellen des Fensters verhindern
14. Jan 2010, 11:01
Phew...ich bin etwas weitergekommen
Formstyle muss fsMDIChild sein.
Variablen:
Delphi-Quellcode:
FGenericFormStyle: TGenericFormStyle;
FOldGWL_STYLE: Integer;
FOldGWL_EXSTYLE: Integer;
FOldParent: HWND;
Zum rausschmeißen:
Delphi-Quellcode:
FOldGWL_STYLE := GetWindowLong( Handle,GWL_STYLE);
FOldGWL_EXSTYLE := GetWindowLong( Handle,GWL_EXSTYLE);
FOldParent := Windows.GetParent( Handle);
Windows.SetParent(Self.Handle, GetDesktopWindow);
SetWindowLong( Handle, GWL_STYLE, ( GetWindowLong( Handle, GWL_STYLE )
and not WS_CHILD
and not WS_CLIPSIBLINGS
and not WS_CLIPCHILDREN ));
SetWindowLong( Handle, GWL_STYLE, ( GetWindowLong( Handle, GWL_STYLE )
and not WS_GROUP
or WS_TABSTOP ));
SetWindowLong( Handle, GWL_EXSTYLE, ( GetWindowLong( Handle, GWL_EXSTYLE )
and not WS_EX_MDICHILD
and not WS_EX_TOPMOST
or WS_EX_NOPARENTNOTIFY ));
FGenericFormStyle := gfsNormal;
Zum reinpacken:
Delphi-Quellcode:
SetWindowLong( Handle, GWL_STYLE, FOldGWL_STYLE );
SetWindowLong( Handle, GWL_EXSTYLE, FOldGWL_EXSTYLE );
Windows.SetParent( Handle, FOldParent);
FGenericFormStyle := gfsMDIChild;
Jetzt hab ich das Problem das das Hauptformular dann nicht mehr den Fokus erhalten kann, jemand eine Idee?
|
|
Zitat
|