source: branches/bigint/Forms/FormMemory.pas

Last change on this file was 8, checked in by chronos, 3 months ago
  • Added: Common package.
  • Added: Memory form to show content of memory.
File size: 1.4 KB
Line 
1unit FormMemory;
2
3interface
4
5uses
6 Classes, SysUtils, Forms, Controls, Graphics, Dialogs, ComCtrls, ExtCtrls,
7 IntMemory, FormEx, Int;
8
9type
10
11 { TFormMemory }
12
13 TFormMemory = class(TFormEx)
14 ListViewMemory: TListView;
15 Timer1: TTimer;
16 procedure FormShow(Sender: TObject);
17 procedure ListViewMemoryData(Sender: TObject; Item: TListItem);
18 procedure Timer1Timer(Sender: TObject);
19 public
20 Memory: TIntMemory;
21 procedure Reload;
22 end;
23
24const
25 ItemsPerLine = 16;
26
27
28implementation
29
30{$R *.lfm}
31
32procedure TFormMemory.Reload;
33begin
34 ListViewMemory.Items.Count := Memory.Size div ItemsPerLine;
35 ListViewMemory.Refresh;
36end;
37
38procedure TFormMemory.ListViewMemoryData(Sender: TObject; Item: TListItem);
39var
40 Line: string;
41 I: Integer;
42 Text: string;
43 One: TInt;
44begin
45 if Item.Index < Memory.Size div ItemsPerLine then begin
46 Line := '';
47 Text := '';
48 for I := 0 to ItemsPerLine - 1 do begin
49 One := Memory.Read(Item.Index * ItemsPerLine + I);
50 Line := Line + IntToHex(One, 2) + ' ';
51 if One >= 32 then Text := Text + Char(One)
52 else Text := Text + ' ';
53 end;
54 Item.Caption := IntToHex(Item.Index * ItemsPerLine, 8);
55 Item.SubItems.Add(Line);
56 Item.SubItems.Add(Text);
57 end;
58end;
59
60procedure TFormMemory.FormShow(Sender: TObject);
61begin
62 Reload;
63end;
64
65procedure TFormMemory.Timer1Timer(Sender: TObject);
66begin
67 if Visible then Reload;
68end;
69
70end.
71
Note: See TracBrowser for help on using the repository browser.