Ignore:
Timestamp:
Nov 2, 2023, 11:18:06 PM (7 months ago)
Author:
chronos
Message:
  • Added: Storage form.
  • Added: Dissasembler form.
  • Added: Debug and release build modes.
  • Added: Support for interface translation.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/ByteArray/Forms/FormMain.pas

    r48 r50  
    66  Classes, SysUtils, Forms, Controls, Graphics, Dialogs, Menus, ActnList,
    77  FormConsole, FormScreen, Machine, Common.PersistentForm, FormSourceEditor,
    8   FormMemory, Common.FormEx;
     8  FormMemory, Common.FormEx, FormDisassembler, FormStorage;
    99
    1010type
     
    1313
    1414  TFormMain = class(TFormEx)
     15    AConsole: TAction;
     16    AScreen: TAction;
     17    AStorage: TAction;
     18    ADisassembler: TAction;
    1519    AFullscreen: TAction;
    1620    AMemory: TAction;
     
    2832    MenuItem6: TMenuItem;
    2933    MenuItem7: TMenuItem;
     34    MenuItem8: TMenuItem;
    3035    PersistentForm1: TPersistentForm;
    3136    Separator1: TMenuItem;
     
    3439    MenuItemViewStorage: TMenuItem;
    3540    MenuItemViewConsole: TMenuItem;
     41    procedure AConsoleExecute(Sender: TObject);
    3642    procedure ADebuggerExecute(Sender: TObject);
     43    procedure ADisassemblerExecute(Sender: TObject);
    3744    procedure AExitExecute(Sender: TObject);
    3845    procedure AFullscreenExecute(Sender: TObject);
    3946    procedure AMemoryExecute(Sender: TObject);
     47    procedure AScreenExecute(Sender: TObject);
    4048    procedure ASourceEditorExecute(Sender: TObject);
     49    procedure AStorageExecute(Sender: TObject);
    4150    procedure FormCreate(Sender: TObject);
    4251    procedure FormDestroy(Sender: TObject);
    4352    procedure FormShow(Sender: TObject);
    44     procedure MenuItemViewConsoleClick(Sender: TObject);
    45     procedure MenuItemViewScreenClick(Sender: TObject);
    4653  private
    4754    FormScreen: TFormScreen;
     
    4956    FormMemory: TFormMemory;
    5057    FormSourceEditor: TFormSourceEditor;
     58    FormDisassembler: TFormDisassembler;
     59    FormStorage: TFormStorage;
    5160    Machine: TMachine;
    5261    procedure InitMachine;
     
    7079begin
    7180  DockForm(FormScreen, Self);
    72   Machine.Run;
     81  Machine.PowerOn;
    7382end;
    7483
     
    8493end;
    8594
    86 procedure TFormMain.AExitExecute(Sender: TObject);
    87 begin
    88   Close;
    89 end;
    90 
    91 procedure TFormMain.AFullscreenExecute(Sender: TObject);
    92 begin
    93   PersistentForm1.SetFullScreen(not PersistentForm1.FormFullScreen);
    94 end;
    95 
    96 procedure TFormMain.AMemoryExecute(Sender: TObject);
    97 begin
    98   if not Assigned(FormMemory) then begin
    99     FormMemory := TFormMemory.Create(nil);
    100     FormMemory.Memory := Machine.Memory;
    101   end;
    102   FormMemory.Show;
    103 end;
    104 
    105 procedure TFormMain.ADebuggerExecute(Sender: TObject);
    106 begin
    107 
    108 end;
    109 
    110 procedure TFormMain.ASourceEditorExecute(Sender: TObject);
    111 begin
    112   if not Assigned(FormSourceEditor) then begin
    113     FormSourceEditor := TFormSourceEditor.Create(nil);
    114   end;
    115   FormSourceEditor.Show;
    116 end;
    117 
    11895procedure TFormMain.FormDestroy(Sender: TObject);
    11996begin
     
    12299  if Assigned(FormConsole) then FreeAndNil(FormConsole);
    123100  if Assigned(FormMemory) then FreeAndNil(FormMemory);
     101  if Assigned(FormDisassembler) then FreeAndNil(FormDisassembler);
     102  if Assigned(FormStorage) then FreeAndNil(FormStorage);
    124103  FreeAndNil(Machine);
    125104end;
    126105
    127 procedure TFormMain.MenuItemViewConsoleClick(Sender: TObject);
     106procedure TFormMain.AExitExecute(Sender: TObject);
     107begin
     108  Close;
     109end;
     110
     111procedure TFormMain.AFullscreenExecute(Sender: TObject);
     112begin
     113  PersistentForm1.SetFullScreen(not PersistentForm1.FormFullScreen);
     114end;
     115
     116procedure TFormMain.AMemoryExecute(Sender: TObject);
     117begin
     118  if not Assigned(FormMemory) then begin
     119    FormMemory := TFormMemory.Create(nil);
     120    FormMemory.Memory := Machine.Memory;
     121  end;
     122  FormMemory.Show;
     123end;
     124
     125procedure TFormMain.AScreenExecute(Sender: TObject);
     126begin
     127  FormScreen.Show;
     128end;
     129
     130procedure TFormMain.ADebuggerExecute(Sender: TObject);
     131begin
     132end;
     133
     134procedure TFormMain.AConsoleExecute(Sender: TObject);
    128135begin
    129136  FormConsole.Show;
    130137end;
    131138
    132 procedure TFormMain.MenuItemViewScreenClick(Sender: TObject);
    133 begin
    134   FormScreen.Show;
     139procedure TFormMain.ADisassemblerExecute(Sender: TObject);
     140begin
     141  if not Assigned(FormDisassembler) then
     142    FormDisassembler := TFormDisassembler.Create(nil);
     143  FormDisassembler.Disassembler.Memory := Machine.Memory;
     144  FormDisassembler.Show;
     145end;
     146
     147procedure TFormMain.ASourceEditorExecute(Sender: TObject);
     148begin
     149  if not Assigned(FormSourceEditor) then begin
     150    FormSourceEditor := TFormSourceEditor.Create(nil);
     151    FormSourceEditor.Machine := Machine;
     152  end;
     153  FormSourceEditor.Show;
     154end;
     155
     156procedure TFormMain.AStorageExecute(Sender: TObject);
     157begin
     158  if not Assigned(FormStorage) then begin
     159    FormStorage := TFormStorage.Create(nil);
     160    FormStorage.Storage := Machine.Storage;
     161  end;
     162  FormStorage.Show;
    135163end;
    136164
Note: See TracChangeset for help on using the changeset viewer.