Einzelnen Beitrag anzeigen

Alaitoc

Registriert seit: 24. Okt 2008
263 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Formstyle, Neuerstellen des Fensters verhindern

  Alt 14. Jan 2010, 10: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?
  Mit Zitat antworten Zitat