source: trunk/Forms/UFormTerminal.pas

Last change on this file was 1, checked in by chronos, 4 years ago
  • Added: Initial version.
File size: 1.5 KB
Line 
1unit UFormTerminal;
2
3{$mode delphi}
4
5interface
6
7uses
8 Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, ExtCtrls,
9 UTerminal;
10
11type
12
13 { TFormTerminal }
14
15 TFormTerminal = class(TForm)
16 Memo1: TMemo;
17 TimerRedraw: 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 TimerRedrawTimer(Sender: TObject);
24 private
25 RedrawPending: Boolean;
26 procedure Redraw;
27 public
28 Terminal: TTerminal;
29 end;
30
31var
32 FormTerminal: TFormTerminal;
33
34implementation
35
36{$R *.lfm}
37
38{ TFormTerminal }
39
40procedure TFormTerminal.FormCreate(Sender: TObject);
41begin
42 Terminal := TTerminal.Create;
43end;
44
45procedure TFormTerminal.FormDestroy(Sender: TObject);
46begin
47 FreeAndNil(Terminal);
48end;
49
50procedure TFormTerminal.FormShow(Sender: TObject);
51begin
52 Terminal.Run;
53 Redraw;
54end;
55
56procedure TFormTerminal.Memo1KeyPress(Sender: TObject; var Key: char);
57begin
58 Terminal.KeyPress(Key);
59 Redraw;
60end;
61
62procedure TFormTerminal.Memo1KeyUp(Sender: TObject; var Key: Word;
63 Shift: TShiftState);
64begin
65 Terminal.KeyPressCode(Key);
66 Redraw;
67end;
68
69procedure TFormTerminal.TimerRedrawTimer(Sender: TObject);
70begin
71 if RedrawPending then begin
72 RedrawPending := False;
73 Memo1.Lines.Text := Terminal.Output;
74 Memo1.SelStart := Length(Memo1.Lines.Text);
75 end;
76end;
77
78procedure TFormTerminal.Redraw;
79begin
80 RedrawPending := True;
81end;
82
83end.
84
Note: See TracBrowser for help on using the repository browser.