source: branches/textos/UFormMain.pas

Last change on this file was 53, checked in by chronos, 6 months ago
  • Added: Experimental textos computer.
File size: 1.6 KB
Line 
1unit UFormMain;
2
3{$mode delphi}{$H+}
4
5interface
6
7uses
8 Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, ExtCtrls,
9 UKernel;
10
11type
12
13 { TFormMain }
14
15 TFormMain = class(TForm)
16 Memo1: TMemo;
17 Timer1: TTimer;
18 procedure FormCreate(Sender: TObject);
19 procedure FormDestroy(Sender: TObject);
20 procedure FormShow(Sender: TObject);
21 procedure Memo1KeyPress(Sender: TObject; var Key: char);
22 procedure Memo1KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
23 procedure Timer1Timer(Sender: TObject);
24 private
25 procedure KernelOutput(Text: string);
26 public
27 Kernel: TKernel;
28 end;
29
30var
31 FormMain: TFormMain;
32
33implementation
34
35{$R *.lfm}
36
37uses
38 UShell, UCalculator, UBootLoader;
39
40{ TFormMain }
41
42procedure TFormMain.FormShow(Sender: TObject);
43begin
44end;
45
46procedure TFormMain.Memo1KeyPress(Sender: TObject; var Key: char);
47begin
48 Kernel.Input(Key);
49end;
50
51procedure TFormMain.Memo1KeyUp(Sender: TObject; var Key: Word;
52 Shift: TShiftState);
53begin
54 Kernel.InputKey(Key);
55end;
56
57procedure TFormMain.Timer1Timer(Sender: TObject);
58begin
59 Timer1.Enabled := False;
60 Kernel.Start;
61end;
62
63procedure TFormMain.KernelOutput(Text: string);
64begin
65 Memo1.Text := Memo1.Text + Text;
66 Memo1.SelStart := Length(Memo1.Lines.Text);
67end;
68
69procedure TFormMain.FormCreate(Sender: TObject);
70begin
71 Kernel := TKernel.Create;
72 Kernel.OnOutputText := KernelOutput;
73 //Kernel.AddApp('BootLoader', TAppBootLoader);
74 Kernel.AddApp('Shell', TAppShell);
75 Kernel.AddApp('Calculator', TAppCalculator);
76end;
77
78procedure TFormMain.FormDestroy(Sender: TObject);
79begin
80 FreeAndNil(Kernel);
81end;
82
83end.
84
Note: See TracBrowser for help on using the repository browser.