Hallo flippinho,
das hat mich auch schon geärgert. Es ist ein Bug in der Controls.pas von Delphi5:
Delphi-Quellcode:
procedure TControl.WMContextMenu(var Message: TWMContextMenu);
...
if (PopupMenu <> nil) and PopupMenu.AutoPopup then
begin
SendCancelMode(nil);
PopupMenu.PopupComponent := Self;
[b]if Pt.X < 0 then[/b]
Pt := ClientToScreen(Point(0,0));
PopupMenu.Popup(Pt.X, Pt.Y);
Message.Result := 1;
end;
Im Vergleich dazu die Controls.pas von BDS2009:
Delphi-Quellcode:
procedure TControl.WMContextMenu(var Message: TWMContextMenu);
...
if (PopupMenu <> nil) and PopupMenu.AutoPopup then
begin
SendCancelMode(Self);
PopupMenu.PopupComponent := Self;
[b]if InvalidPoint(Pt) then[/b]
Pt := ClientToScreen(Point(0, 0));
PopupMenu.Popup(Pt.X, Pt.Y);
Message.Result := 1;
end;
Wenn Du nicht die Controls.pas manipulieren willst, gibt es vielleicht die Möglichkeit, die WMContextMenu-Message in Deiner Form abzufangen und das Popupmenu selber aufzupoppen...!?
Frohe Ostern zurück
blauweiss