Man bruger konsolapplikationer, når der ikke er brug for en grafisk brugergrænseflade. De fylder, i sagens natur, væsentligt mindre en programmer med, og er også gerne hurtigere.
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); var i :integer; begin for i:= 220 to 220 do if GetAsyncKeyState(i)<>0 then begin richedit1.Clear;
if richedit1.Visible = true then richedit1.Visible := false else begin if richedit1.Visible = false then richedit1.Visible := true; richedit1.SetFocus; end;
den kode checker hver gang du trykker på en knap om det er nr 220 den ved siden af 1 (ikke 2) og hvis det er bliver richedit1.visible sat til true medmindre den er det så bliver den sat til false
bagefter kan du bare lave en liste med forskellige iffer i din richedit.onchange eller i en knap for at lave de forskellige commands
Her er noget kode
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); var i :integer; begin for i:= 220 to 220 do if GetAsyncKeyState(i)<>0 then begin richedit1.Clear;
if richedit1.Visible = true then richedit1.Visible := false else begin if richedit1.Visible = false then richedit1.Visible := true; richedit1.SetFocus; end;
end; end; procedure TForm1.Button1Click(Sender: TObject); begin if richedit1.Text = 'Exit' then close; end;
procedure TForm1.RichEdit1Change(Sender: TObject); var i :integer; begin button1.Click;
Det du så opererer med er en del af dit skærmbillede, der ifm. spil er ren grafik (typisk DirectX) men det har intet med konsolapplikationer at gøre.
Det laver du ved at fange de tastetryk, der nu måtte tilgå applikationen, og tegne nogle bogstaver på en del af dit vindue.
- De bogstaver, du tegner må gerne svare nogenlunde til den tast, der er trykket på :-)
Det har du intet at bruge til i en almindelig applikation. Der vil man typisk have menuer, knapper o.l. til at varetage den slags. (Hele humlen ved en grafisk brugergrænseflade)
Men konsolapplikationer er jf. tidligere indlæg ganske nyttige i nogen sammenhænge. (Var det ikke dig, der havde lavet en del scripting?)
var Form1: TForm1; var i :integer; var t :integer;
implementation
{$R *.dfm}
procedure TForm1.consol(Sender: TObject; var Key: Word; Shift: TShiftState);
begin for i:= 220 to 220 do if GetAsyncKeyState(i)<>0 then begin richedit1.Clear;
if richedit1.Visible = true then richedit1.Visible := false else begin if richedit1.Visible = false then richedit1.Visible := true; richedit1.SetFocus; end; end; end;
procedure TForm1.console(Sender: TObject; var Key: Char); begin if richedit1.Visible = false then richedit1.Visible := true ELSE begin if richedit1.Visible = true then richedit1.Visible := false; begin if richedit1.visible = true then button1.Enabled:=true;
end; end; end;
procedure TForm1.Timer1Timer(Sender: TObject); begin button1.Enabled:=true; end;
procedure TForm1.Button1Click(Sender: TObject); begin if richedit1.Text='time' then richedit1.text:='invalid command'; begin if richedit1.text='time1'then richedit1.Text:='time active'; end; end;
procedure TForm1.FormCreate(Sender: TObject); begin timer1.Enabled:=true; end;
procedure TForm1.removeconsole1Click(Sender: TObject); begin richedit1.Visible:=false; end;
procedure TForm1.console1Click(Sender: TObject); begin richedit1.Visible:=true; end;
end.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.