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