home *** CD-ROM | disk | FTP | other *** search
- unit ConvertUnit1;
-
- interface
-
- uses
- Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
- StdCtrls,
- HVBorDebug,
- BorDebug,
- BorDebugScanners;
-
- type
- TScannerTester = class(TForm)
- UnitNameEdit: TEdit;
- AddressEdit: TEdit;
- ToUnitLineBtn: TButton;
- Label1: TLabel;
- Label2: TLabel;
- Label3: TLabel;
- LineNumberEdit: TEdit;
- procedure ToUnitLineBtnClick(Sender: TObject);
- procedure FormCreate(Sender: TObject);
- procedure FormDestroy(Sender: TObject);
- private
- { Private declarations }
- public
- { Public declarations }
- BorDebug: TBorDebug;
- LineNumberScanner: TLineNumberScanner;
- end;
-
- var
- ScannerTester: TScannerTester;
-
- implementation
-
- {$R *.DFM}
-
- procedure TScannerTester.FormCreate(Sender: TObject);
- begin
- BorDebug := TBorDebug.Create(ParamStr(0)); // Search in our own TD info
- LineNumberScanner := TLineNumberScanner.Create(BorDebug);
- end;
-
- procedure TScannerTester.FormDestroy(Sender: TObject);
- begin
- LineNumberScanner.Free;
- BorDebug.Free;
- end;
-
- procedure TScannerTester.ToUnitLineBtnClick(Sender: TObject);
- var
- Unitname: string;
- Linenumber: TLineNumber;
- begin
- // Convert from code-address to unitname/linenumber
- if LineNumberScanner.FindUnitnameLinenumber(StrToInt(AddressEdit.Text), Unitname, Linenumber) then
- begin
- UnitNameEdit.Text := Unitname;
- LineNumberEdit.Text := IntToStr(Linenumber);
- end
- else
- begin
- UnitNameEdit.Text := '<Not found>';
- LineNumberEdit.Text := '';
- end;
- end;
-
- end.
-