?? umain.pas
字號(hào):
{
Delphi 代碼調(diào)試工具
類似Raize CodeSite的一個(gè)工具,利用程序間通訊的方法實(shí)現(xiàn)調(diào)試信息傳遞。
程序僅僅實(shí)現(xiàn)了一些簡(jiǎn)單的功能,代碼接收框用TRichEdit是為以后接收?qǐng)D片信息提供一
個(gè)擴(kuò)展的基礎(chǔ)。感興趣可以自己擴(kuò)展功能。
本代碼不保留版權(quán),可自由使用。
轉(zhuǎn)載請(qǐng)保留出處及本說(shuō)明。
Bannico
E_Mail:bannico@163.com
2006年11月24日 上海
}
unit uMain;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Registry,
Dialogs, ComCtrls, ExtCtrls, ToolWin, StdCtrls, bnDebug, ImgList, Menus,ShellAPI;
const
icoMsg = wm_user + 1;
iid = 100;
type
TfMain = class(TForm)
ToolBar1: TToolBar;
MainPanel: TPanel;
StatusBar: TStatusBar;
btnClear: TToolButton;
btnSave: TToolButton;
RichEdit: TRichEdit;
ToolButton6: TToolButton;
ImageList1: TImageList;
SaveDialog: TSaveDialog;
ToolButton3: TToolButton;
btnExit: TToolButton;
btnConnect: TToolButton;
ToolButton7: TToolButton;
StayOnTop: TCheckBox;
ToolButton1: TToolButton;
PopupMenu: TPopupMenu;
nShow: TMenuItem;
N2: TMenuItem;
nExit: TMenuItem;
procedure FormCreate(Sender: TObject);
procedure btnClearClick(Sender: TObject);
procedure btnSaveClick(Sender: TObject);
procedure btnExitClick(Sender: TObject);
procedure btnConnectClick(Sender: TObject);
procedure StayOnTopClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure nExitClick(Sender: TObject);
procedure nShowClick(Sender: TObject);
private
procedure DataMessage(var t:TWmCopyData);message WM_COPYDATA;
procedure iconMessage(var message:TMessage); message icoMsg;
{ Private declarations }
public
{ Public declarations }
end;
var
fMain: TfMain;
ntid: TnotifyIconDataA;
implementation
{$R *.dfm}
procedure TfMain.DataMessage(var t: TWmCopyData);
begin
if btnConnect.Down then
begin
RichEdit.Lines.BeginUpdate;
RichEdit.Lines.Add(StrPas(t.CopyDataStruct^.lpData));
RichEdit.Lines.EndUpdate;
end;
end;
procedure TfMain.iconMessage(var message:TMessage);
var
mypt:Tpoint;
begin
Inherited;
if message.LParam = WM_RBUTTONUP then
begin
getCursorPos(mypt);
PopupMenu.Popup(mypt.X,mypt.Y);
end;
message.Result:= 0;
end;
procedure TfMain.StayOnTopClick(Sender: TObject);
begin
if StayOnTop.Checked then
FormStyle:=fsStayOnTop
else
FormStyle:=fsNormal;
end;
procedure TfMain.FormCreate(Sender: TObject);
var
Reg:TRegistry;
R:TRect;
begin
Reg:=TRegistry.Create;
Reg.RootKey:=HKEY_LOCAL_MACHINE;
Reg.OpenKey(SoftKey,True);
Reg.WriteString('FormPath',ParamStr(0));
Reg.CloseKey;
Reg.Free;
Application.Title:=DebugHandle;
Caption:=Application.Title;
Left:=Screen.Width-Width;
Top:=Screen.Height-Height-30;
StatusBar.Panels[0].Text:='狀態(tài):接收中...';
ntid.cbsize := sizeof(TnotifyIconDataA);
ntid.Wnd := Handle;
ntid.uID := iid;
ntid.uFlags := NIF_ICON + NIF_TIP + NIF_MESSAGE;
ntid.uCallbackMessage := icoMsg;
ntid.hIcon:=Self.Icon.Handle;
ntid.szTip :='代碼調(diào)試工具';
shell_notifyicona(NIM_ADD,@ntid);
self.Visible := false;
SetWindowLong(Application.Handle,GWL_EXSTYLE,WS_EX_TOOLWINDOW);
end;
procedure TfMain.btnClearClick(Sender: TObject);
begin
RichEdit.Clear;
end;
procedure TfMain.btnSaveClick(Sender: TObject);
begin
if SaveDialog.Execute then
RichEdit.Lines.SaveToFile(SaveDialog.FileName);
end;
procedure TfMain.btnExitClick(Sender: TObject);
begin
Close;
end;
procedure TfMain.btnConnectClick(Sender: TObject);
begin
case btnConnect.Down of
True:
begin
btnConnect.Caption:='斷開(kāi)';
StatusBar.Panels[0].Text:='狀態(tài):接收中...';
end;
False:
begin
btnConnect.Caption:='接收';
StatusBar.Panels[0].Text:='狀態(tài):斷開(kāi)';
end;
end;
end;
procedure TfMain.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Hide;
Abort;
end;
procedure TfMain.nExitClick(Sender: TObject);
begin
ntid.cbSize := sizeof(TnotifyIconDataA);
ntid.Wnd := Handle;
ntid.uID := iid;
ntid.uFlags := NIF_ICON + NIF_TIP + NIF_MESSAGE;
ntid.uCallbackMessage := icoMsg;
ntid.hIcon := Self.Icon.Handle;
ntid.szTip := '代碼調(diào)試工具';
shell_notifyicona(NIM_DELETE,@ntid);
self.Visible := true;
Application.Terminate;
end;
procedure TfMain.nShowClick(Sender: TObject);
begin
Show;
end;
end.
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -