Also ich habe unter anderem folgenden Code in meiner OwnerDraw Procedure
Delphi-Quellcode:
// Draw menu border
mWnd := WindowFromDC(ACanvas.Handle);
if mWnd <> Self.Handle then begin
cTemp := TCanvas.Create();
cTemp.Handle := GetDC(0);
Windows.GetWindowRect(mWnd, rMenu);
cTemp.Brush.Color := $00DF967A;
cTemp.FrameRect(rMenu);
InflateRect(rMenu, -1, -1);
cTemp.Brush.Color := $00FFFFFF;
cTemp.FrameRect(rMenu);
InflateRect(rMenu, -1, -1);
cTemp.FrameRect(rMenu);
ReleaseDC(0, cTemp.Handle);
cTemp.Free();
end;
Das Problem ist nur, dass mein PopUpMenu erst umrandet wird, wenn ich über einen Eintrag fahre. Nicht aber wenn es aufgeht :/
EDIT:
ach ja, wenn ich z.B. jetzt eine ShowMessage einfüge, und die Box mit enter bestätige, dann klappt es?!
Delphi-Quellcode:
procedure TfrmMain.btnMenuMouseEnter(Sender: TObject);
x := (Sender as TButton).Left + frmMain.Left;
y := (Sender as TButton).Top + frmMain.Top + (Sender as TButton).Height;
ShowMessage('H');
pop.Popup( x , y );