⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cnfindwndmain.pas

📁 控件查看器 最新版本. 该工具可以用来查看控件的Handle、Caption、Class、Rect属性。
💻 PAS
字号:
{*
================================================================================
* 软件名称:控件查看器
* 单元名称:CnFindWndMain
* 单元作者:cjsh
* 备    注:默认界面窗体
* 开发平台:PWin2000Srv + Delphi 5.0
* 兼容测试:PWin9X/2000/XP + Delphi 5
* 本 地 化:
* 更新记录:2003.12.01 V1.0
*               创建单元
================================================================================
}
unit CnFindWndMain;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, ExtCtrls, ImgList, ShellApi, CnFindWndBase, Buttons, ActnList;

type
  TfrmMain = class(TForm)
    GroupBox1: TGroupBox;
    Image1: TImage;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    HandleEdit: TEdit;
    TextEdit: TEdit;
    ClassEdit: TEdit;
    CheckBox1: TCheckBox;
    Timer1: TTimer;
    CheckBox2: TCheckBox;
    Label4: TLabel;
    ImageList1: TImageList;
    Label5: TLabel;
    edtRect: TEdit;
    lblHelp: TLabel;
    SpeedButton1: TSpeedButton;
    SpeedButton2: TSpeedButton;
    SpeedButton3: TSpeedButton;
    SpeedButton4: TSpeedButton;
    ActionList1: TActionList;
    actHelp: TAction;
    actAbout: TAction;
    actWebsite: TAction;
    actExit: TAction;
    procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Image1MouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Timer1Timer(Sender: TObject);
    procedure CheckBox1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure CheckBox2Click(Sender: TObject);
    procedure actHelpExecute(Sender: TObject);
    procedure actAboutExecute(Sender: TObject);
    procedure actWebsiteExecute(Sender: TObject);
    procedure actExitExecute(Sender: TObject);
  private
    { Private declarations }
    CnFindWnd: TCnFindWnd;
    FStartViewWnd: Boolean;
    procedure ShowHelp;
    {* 显示帮助}
    procedure ShowAbout;
    {* 显示关于}
    procedure UpdateImage(Const Value: Boolean);
    {* 更改工具图标}
    procedure SetStayOnTop(Value: Boolean);
    function GetStartViewWnd: Boolean;
    function GetDragView: Boolean;
    property StayOnTop: Boolean write SetStayOnTop;
    {* 窗体是否总在最前面}
    property StartViewWnd: Boolean read GetStartViewWnd write FStartViewWnd;
    {* 改变查看方式}
    property DragView: Boolean read GetDragView;
    {* 拖拽查看方式}
  public
    { Public declarations }

  end;

var
  frmMain: TfrmMain;

Procedure LoadCustomCursor;

implementation

{$R *.DFM}

//==============================================================================
// 自定义函数或过程实现部分
//==============================================================================
Const
  csWebsite = 'http://www.efile.com.cn/efile/cjsh/default.htm';

//加载自定义光标
Procedure LoadCustomCursor;
begin
  Screen.Cursors[1] := LoadCursor(hinstance, 'Move');
end;

//窗口最上方显示
procedure OSPStayOnTop(Handle: HWND; OnTop: Boolean);
const
  csOnTop: array[Boolean] of HWND = (HWND_NOTOPMOST, HWND_TOPMOST);
begin
  SetWindowPos(Handle, csOnTop[OnTop], 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE);
end;

//更改工具图标
procedure TfrmMain.UpdateImage(Const Value: Boolean);
type
  TWndView = (csNormal, csLeave);
  procedure ProcUpdateImage(AValue: TWndView);
  begin
    Image1.Picture.Bitmap := nil;
    ImageList1.GetBitmap(Integer(AValue), Image1.Picture.Bitmap);
  end;
begin
  if Value then
    ProcUpdateImage(csNormal) //正常状态图标
  else
    ProcUpdateImage(csLeave); //查看状态图标
end;

//窗体是否总在最前面
procedure TfrmMain.SetStayOnTop(Value: Boolean);
begin
  OSPStayOnTop(Handle, Value);
end;

//改变查看方式
function TfrmMain.GetStartViewWnd: Boolean;
begin
  Result := FStartViewWnd Or (Not CheckBox2.Checked);
end;

//拖拽查看方式
function TfrmMain.GetDragView: Boolean;
begin
  Result := CheckBox2.Checked;
end;

//显示关于
procedure TfrmMain.ShowAbout;
begin
  MessageBox(Handle, #13#10 + '作者  :cjsh' + #13#10 + 'OICQ :39306255' + #13#10 +
    'EMAIL:wjh_wy@163.com' + #13#10 + '主页  :http://www.efile.com.cn/?cjsh' +
    #13#10#13#10 + 'Copyright (c) 2003-2004, CnOSP Studio', '关于', MB_OK +
    MB_ICONINFORMATION);
end;

//显示帮助
procedure TfrmMain.ShowHelp;
begin
  MessageBox(Handle,
    '拖拽工具图标或者切换到非拖拽查看方式,即可'+ #13#10+#13#10+
    '查看控件的Handle、Caption、Class、Rect属性。'
    , '帮助', MB_OK + MB_ICONINFORMATION);
end;

//==============================================================================
// ActionList1实现部分
//==============================================================================
//帮助
procedure TfrmMain.actHelpExecute(Sender: TObject);
begin
  ShowHelp;
end;

//关于
procedure TfrmMain.actAboutExecute(Sender: TObject);
begin
  ShowAbout;
end;

//主页
procedure TfrmMain.actWebsiteExecute(Sender: TObject);
begin
  ShellExecute(Handle, 'Open', csWebsite, Nil, Nil, SW_SHOWNORMAL);
end;

//退出
procedure TfrmMain.actExitExecute(Sender: TObject);
begin
  Close;
end;

//==============================================================================
// 单元实现部分
//==============================================================================

//Image1MouseDown
procedure TfrmMain.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  StartViewWnd := True; //开始查看
  UpdateImage(False);   //设置工具图标为查看状态
  Screen.Cursor := 1;
end;

//Image1MouseUp
procedure TfrmMain.Image1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  StartViewWnd := False; //结束查看
  UpdateImage(DragView); //更改工具图标状态
  Screen.Cursor := CrDefault;
end;

//Timer1Timer
procedure TfrmMain.Timer1Timer(Sender: TObject);
begin
  if StartViewWnd then
  begin
    CnFindWnd.FindWndExecute;
    HandleEdit.Text := CnFindWnd.WndHandle;
    TextEdit.Text := CnFindWnd.WndCaption;
    ClassEdit.Text := CnFindWnd.WndClass;
    edtRect.Text := CnFindWnd.WndRect;
  end;
end;

//总在最前面
procedure TfrmMain.CheckBox1Click(Sender: TObject);
begin
  Self.StayOnTop := TCheckBox(Sender).Checked;
end;

//窗体创建前
procedure TfrmMain.FormCreate(Sender: TObject);
begin
  Self.Height := 243;
  Self.Width := 412;
  UpdateImage(DragView);

  CnFindWnd := TCnFindWnd.Create(Self);
  CnFindWnd.DrawFocus := False; //是否画虚框
end;

//窗体释放前
procedure TfrmMain.FormDestroy(Sender: TObject);
begin
  FreeAndNil(CnFindWnd);
end;

procedure TfrmMain.CheckBox2Click(Sender: TObject);
begin
  UpdateImage(DragView);
end;

initialization

finalization
  Screen.Cursor := CrDefault;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -