本例效果图:

代码文件:

代码文件:
窗体文件:unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type TForm1 = class(TForm) protected procedure MyMouseDown(Msg: TWMMouse); procedure WMLButtonDown(var Message: TWMLButtonDown); message WM_LBUTTONDOWN; procedure WMMButtonDown(var Message: TWMMButtonDown); message WM_MBUTTONDOWN; procedure WMRButtonDown(var Message: TWMRButtonDown); message WM_RBUTTONDOWN; end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.MyMouseDown(Msg: TWMMouse); var List: TStringList; begin List := TStringList.Create; if Msg.Keys and MK_SHIFT <> 0 then List.Add('Shift'); if Msg.Keys and MK_CONTROL <> 0 then List.Add('Ctrl'); if GetKeyState(VK_MENU) < 0 then List.Add('Alt'); if Msg.Keys and MK_LBUTTON <> 0 then List.Add('Left'); if Msg.Keys and MK_MBUTTON <> 0 then List.Add('Middle'); if Msg.Keys and MK_RBUTTON <> 0 then List.Add('Right'); Canvas.TextOut(Msg.XPos, Msg.YPos, List.CommaText); List.Free; end; procedure TForm1.WMLButtonDown(var Message: TWMLButtonDown); begin MyMouseDown(Message); end; procedure TForm1.WMMButtonDown(var Message: TWMMButtonDown); begin MyMouseDown(Message); end; procedure TForm1.WMRButtonDown(var Message: TWMRButtonDown); begin MyMouseDown(Message); end; end.
object Form1: TForm1 Left = 0 Top = 0 Caption = 'Form1' ClientHeight = 206 ClientWidth = 339 Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = 'Tahoma' Font.Style = [] OldCreateOrder = False PixelsPerInch = 96 TextHeight = 13 end
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步