home *** CD-ROM | disk | FTP | other *** search
/ Delphi Magazine Collection 2001 / Delphi Magazine Collection 20001 (2001).iso / DISKS / Issue63 / Debug / Demos / ConvertUnit1.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  2000-10-01  |  1.5 KB  |  70 lines

  1. unit ConvertUnit1;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  7.   StdCtrls,
  8.   HVBorDebug,
  9.   BorDebug,
  10.   BorDebugScanners;
  11.  
  12. type
  13.   TScannerTester = class(TForm)
  14.     UnitNameEdit: TEdit;
  15.     AddressEdit: TEdit;
  16.     ToUnitLineBtn: TButton;
  17.     Label1: TLabel;
  18.     Label2: TLabel;
  19.     Label3: TLabel;
  20.     LineNumberEdit: TEdit;
  21.     procedure ToUnitLineBtnClick(Sender: TObject);
  22.     procedure FormCreate(Sender: TObject);
  23.     procedure FormDestroy(Sender: TObject);
  24.   private
  25.     { Private declarations }
  26.   public
  27.     { Public declarations }
  28.     BorDebug: TBorDebug;
  29.     LineNumberScanner: TLineNumberScanner;
  30.   end;
  31.  
  32. var
  33.   ScannerTester: TScannerTester;
  34.  
  35. implementation
  36.  
  37. {$R *.DFM}
  38.  
  39. procedure TScannerTester.FormCreate(Sender: TObject);
  40. begin
  41.   BorDebug := TBorDebug.Create(ParamStr(0));  // Search in our own TD info
  42.   LineNumberScanner := TLineNumberScanner.Create(BorDebug);
  43. end;
  44.  
  45. procedure TScannerTester.FormDestroy(Sender: TObject);
  46. begin
  47.   LineNumberScanner.Free;
  48.   BorDebug.Free;
  49. end;
  50.  
  51. procedure TScannerTester.ToUnitLineBtnClick(Sender: TObject);
  52. var
  53.   Unitname: string;
  54.   Linenumber: TLineNumber;
  55. begin
  56.   // Convert from code-address to unitname/linenumber
  57.   if LineNumberScanner.FindUnitnameLinenumber(StrToInt(AddressEdit.Text), Unitname, Linenumber) then
  58.   begin
  59.     UnitNameEdit.Text := Unitname;
  60.     LineNumberEdit.Text := IntToStr(Linenumber);
  61.   end
  62.   else
  63.   begin
  64.     UnitNameEdit.Text := '<Not found>';
  65.     LineNumberEdit.Text := '';
  66.   end;
  67. end;
  68.  
  69. end.
  70.