Thema: Delphi SetWindowPos und Frames

Einzelnen Beitrag anzeigen

jping

Registriert seit: 17. Okt 2007
12 Beiträge
 
#1

SetWindowPos und Frames

  Alt 3. Jun 2009, 18:19
Hallo,

hab schon Google schon fleißig bemüht, aber leider keine Lösung gefunden.

Ich habe ein Frame erstellt und möchte dies gerne an einer beliebigen Stelle anzeigen.
Habe dafür folgende Prozedur erstellt:

procedure TFrameMyFrame.SetVisible(const Value: Boolean);
var
i : Integer;
begin
FVisible := Value;
if HandleAllocated then begin
if FVisible
then SetWindowPos(Handle, HWND_TOPMOST, Left, Top, Width, Height, SWP_SHOWWINDOW or SWP_NOACTIVATE)
else SetWindowPos(Handle, HWND_TOPMOST, Left, Top, Width, Height, SWP_HIDEWINDOW or SWP_NOACTIVATE);
InvalidateRect(Handle, nil, True);
end;
end;

Außerdem:

procedure TFrameMyFrame.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
with Params do begin
Style := WS_POPUP;{ or WS_BORDER;}
WindowClass.Style := WindowClass.Style or CS_SAVEBITS;
ExStyle := WS_EX_TOOLWINDOW or WS_EX_NOACTIVATE;
AddBiDiModeExStyle(ExStyle);
end;
end;

Wenn ich visible auf True setze wird mir an der Stelle nur ein graues Rechteck angezeigt.
Wie kann ich auch die Komponenten auf dem Frame anzeigen lassen?
Ich benutze Delphi 2007.

Vielen Dank schonmal.

Gruß
Jörg
  Mit Zitat antworten Zitat