source: trunk/Forms/FormMemory.pas

Last change on this file was 147, checked in by chronos, 11 months ago
  • Modified: Code cleanup.
File size: 1.9 KB
Line 
1unit FormMemory;
2
3interface
4
5uses
6 Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
7 ComCtrls, Math;
8
9const
10 RowSize = 16;
11
12type
13
14 { TFormMemory }
15
16 TFormMemory = class(TForm)
17 Label6: TLabel;
18 ListViewMemory: TListView;
19 procedure FormCreate(Sender: TObject);
20 procedure ListViewMemoryData(Sender: TObject; Item: TListItem);
21 public
22 procedure Reload;
23 end;
24
25
26implementation
27
28{$R *.lfm}
29
30uses
31 Core, TargetInterpretter;
32
33{ TFormMemory }
34
35procedure TFormMemory.Reload;
36begin
37 if Core.Core.CurrentTarget is TTargetInterpretter then
38 with TTargetInterpretter(Core.Core.CurrentTarget) do begin
39 if MemoryChanged then begin
40 MemoryChanged := False;
41 ListViewMemory.Items.Count := Ceil((MemoryMaxUsedAddr + 1) / RowSize);
42 ListViewMemory.Refresh;
43 end;
44 end;
45end;
46
47procedure TFormMemory.ListViewMemoryData(Sender: TObject; Item: TListItem);
48var
49 Row: string;
50 I: Integer;
51 Text: string;
52 Address: Integer;
53begin
54 if Core.Core.CurrentTarget is TTargetInterpretter then
55 with TTargetInterpretter(Core.Core.CurrentTarget) do
56 if (Item.Index >= 0) and (Item.Index <= Trunc((MemoryMaxUsedAddr + 1) / RowSize)) then begin
57 Item.Caption := IntToHex(Item.Index * RowSize, 8);
58 Row := '';
59 Text := Default(string);
60 SetLength(Text, RowSize);
61 for I := 0 to RowSize - 1 do begin
62 Address := Item.Index * RowSize + I;
63 if Address < (MemoryMaxUsedAddr + 1) then begin
64 Row := Row + ' ' + IntToHex(Memory[Address], 2);
65 if Memory[Address] > Ord(' ') then Text[I + 1] := Chr(Memory[Address])
66 else Text[I + 1] := ' ';
67 end else Text[I + 1] := ' ';
68 end;
69 Item.SubItems.Add(Row);
70 Item.SubItems.Add(Text);
71 end;
72end;
73
74procedure TFormMemory.FormCreate(Sender: TObject);
75begin
76 Core.Core.Translator.TranslateComponentRecursive(Self);
77 Core.Core.ThemeManager.UseTheme(Self);
78end;
79
80end.
81
Note: See TracBrowser for help on using the repository browser.