📄 cnfindwndmain.~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 + -