这里是我的解决方案(测试工作)...
type
TForm1 = class(TForm)
...
private
ContextForm: TfrmContext;
end;
...
implementation
procedure TForm1.Button1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
if ContextForm <> nil then
FreeAndNil(ContextForm);
if Button = mbRight then
begin
ContextForm := TfrmContext.Create(Application);
ContextForm.SetParentComponent(Application);
ContextForm.Left := Mouse.CursorPos.X;
ContextForm.Top := Mouse.CursorPos.Y;
ContextForm.Show;
end;
end;
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
if ContextForm <> nil then
FreeAndNil(ContextForm);
end;
在本演示中,用鼠标右键单击Button1的将创建“上下文格式”(这是一个TForm的)并设置其位置,您的“上下文表单”的左上角将完全位于鼠标光标的位置。
单击窗体上的任何其他位置将会破坏上下文窗体。
享受!
这是一个耻辱史蒂夫“问和跑”(当然他的统计数据会显示这一点)这意味着这个问题可能永远不会被标记为回答(即使它是):( – LaKraven 2011-04-12 20:28:52
如果你需要业力我可以投票给你up :-) – Johan 2011-04-15 16:15:41