?? cnfindwndmain.pas
字號:
{*
================================================================================
* 軟件名稱:控件查看器
* 單元名稱:CnFindWndMain
* 單元作者:cjsh
* 備 注:默認界面窗體
* 開發(fā)平臺:PWin2000Srv + Delphi 5.0
* 兼容測試:PWin9X/2000/XP + Delphi 5
* 本 地 化:
* 更新記錄:2003.12.01 V1.0
* 創(chuàng)建單元
================================================================================
}
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}
//==============================================================================
// 自定義函數(shù)或過程實現(xiàn)部分
//==============================================================================
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) //正常狀態(tài)圖標
else
ProcUpdateImage(csLeave); //查看狀態(tài)圖標
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實現(xiàn)部分
//==============================================================================
//幫助
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;
//==============================================================================
// 單元實現(xiàn)部分
//==============================================================================
//Image1MouseDown
procedure TfrmMain.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
StartViewWnd := True; //開始查看
UpdateImage(False); //設置工具圖標為查看狀態(tài)
Screen.Cursor := 1;
end;
//Image1MouseUp
procedure TfrmMain.Image1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
StartViewWnd := False; //結束查看
UpdateImage(DragView); //更改工具圖標狀態(tài)
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;
//窗體創(chuàng)建前
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 + -