A:
unit Unit1;
interface
uses
SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
Forms, Dialogs, StdCtrls, Grids;
type
TForm1 = class(TForm)
StringGrid1: TStringGrid;
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure StringGrid1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses ToolHelp;
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
Var
te: TTaskEntry;
MoreTasks: Boolean;
count: Integer;
buffer: Array [0..80] of Char;
begin
With StringGrid1 Do Begin
FixedCols := 0;
Cells[0,0] := 'hTask'; {Headings for the information.}
Cells[1,0] := 'hInst';
Cells[2,0] := 'hModule';
Cells[3,0] := 'ModuleName';
Cells[4,0] := 'Filename';
te.dwSize := Sizeof(te);
count := 1;
MoreTasks := TaskFirst( @te );
While MoreTasks Do Begin
If RowCount <= count Then RowCount
:= count + 1;
Cells[0, count] := '$' + IntToHex( te.hTask,
4 );
Cells[1, count] := '$' + IntToHex( te.hInst,
4 );
Cells[2, count] := '$' + IntToHex( te.hModule,
4 );
Cells[3, count] := StrPas( te.szModule
);
GetModuleFilename( te.hModule, buffer,
81 );
buffer[80] := #0;
Cells[4, count] := StrPas( buffer );
MoreTasks := TaskNext( @te );
inc( count );
end;
end;
end;
procedure TForm1.StringGrid1Click(Sender: TObject);
begin
with StringGrid1 do {To see the strings that don't fit the cell.}
caption := cells[col, row];
end;
end.