home *** CD-ROM | disk | FTP | other *** search
- unit SpyViewer;
-
- interface
-
- uses
- Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
- StdCtrls, ComCtrls, ExtCtrls;
-
- type
-
- TfrmSpyViewer = class(TForm)
- pnlButtons: TPanel;
- pnlMessages: TPanel;
- btnConfigure: TButton;
- btnStart: TButton;
- btnClear: TButton;
- btnSave: TButton;
- btnClose: TButton;
- reMessages: TRichEdit;
- sdSave: TSaveDialog;
- procedure btnClearClick(Sender: TObject);
- procedure btnCloseClick(Sender: TObject);
- procedure btnConfigureClick(Sender: TObject);
- procedure btnSaveClick(Sender: TObject);
- procedure btnStartClick(Sender: TObject);
- private
- FSpying: Boolean;
- procedure SetSpying(V: Boolean);
- public
- procedure AddLine(const Line: String);
- property Spying: Boolean read FSpying write SetSpying;
- end;
-
- implementation
-
- {$R *.DFM}
-
- uses
- SpyEngine,
- SpyConfigure;
-
- procedure TfrmSpyViewer.AddLine(const Line: String);
- begin
- try
- reMessages.Lines.Add(Line);
- reMessages.Perform(EM_SCROLLCARET, 0, 0);
- except
- reMessages.Lines.Clear;
- reMessages.Lines.Add(Line);
- end;
- end;
-
- procedure TfrmSpyViewer.btnClearClick(Sender: TObject);
- begin
- reMessages.Lines.Clear;
- end;
-
- procedure TfrmSpyViewer.btnCloseClick(Sender: TObject);
- begin
- Close;
- end;
-
- procedure TfrmSpyViewer.btnConfigureClick(Sender: TObject);
- var
- Configurer: TfrmSpyConfigure;
- Hookee: TControl;
- begin
- Configurer := TFrmSpyConfigure.Create(Owner);
- try
- Configurer.ShowModal;
- finally
- Configurer.Free;
- Hookee := TMessageSpy(Owner).Hookee;
- btnStart.Enabled := Hookee <> nil;
- if Hookee = nil then
- Caption := 'Message Spy'
- else if (Hookee.Owner <> nil) and (Hookee.Owner.Name <> '') then
- Caption := 'Message Spy - ' + Hookee.Owner.Name + '.' + Hookee.Name
- else
- Caption := 'Message Spy - ' + Hookee.Name
- end;
- end;
-
- procedure TfrmSpyViewer.btnSaveClick(Sender: TObject);
- begin
- if sdSave.Execute then
- reMessages.Lines.SaveToFile(sdSave.FileName);
- end;
-
- procedure TfrmSpyViewer.btnStartClick(Sender: TObject);
- begin
- SetSpying(not FSpying);
- end;
-
- procedure TfrmSpyViewer.SetSpying(V: Boolean);
- begin
- FSpying := V;
- if FSpying then
- begin
- btnStart.Caption := 'Stop';
- btnConfigure.Enabled := False;
- end
- else
- begin
- btnStart.Caption := 'Start';
- btnStart.Enabled := TMessageSpy(Owner).Hookee <> nil;
- btnConfigure.Enabled := True;
- end;
- TMessageSpy(Owner).SetHookActive(FSpying);
- end;
-
- end.
-