Avatar billede dl Nybegynder
14. august 2003 - 13:05 Der er 9 kommentarer og
1 løsning

konsol iet program

Hvordan kan man lave en konsol og hvad kan man bruge dem til ?

//dl
Avatar billede dl Nybegynder
14. august 2003 - 13:07 #1
UPS. overskriften skulle være : konsol i et program

//dl
Avatar billede kustoden Nybegynder
14. august 2003 - 13:19 #2
Afhængig af din Delphi version

File->New-Other og vælg Console Application

eller
File->New og vælg Console Application.

Du bruger dem til applikationer, der ikke skal bruge en TForm, men et konsolvindue.

M.a.o. til applikationer uden grafisk brugergrænseflade.
Avatar billede dl Nybegynder
14. august 2003 - 13:27 #3
jeg har set man bruger det meget i spil ( consol ).. men i et program, hvad kan man bruge den til ?
Avatar billede kustoden Nybegynder
14. august 2003 - 13:32 #4
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.
Avatar billede bananjoe Nybegynder
14. august 2003 - 16:10 #5
Ja men når du siger konsol mener du så ikke en som man kan se i fx Counter strike  eller Americas army og lign som du kan skrive commands i...?
Avatar billede dl Nybegynder
14. august 2003 - 19:41 #6
ja, fx
Avatar billede bananjoe Nybegynder
14. august 2003 - 22:35 #7
noget du kan gøre er dette

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;

end;
Avatar billede kustoden Nybegynder
14. august 2003 - 22:44 #8
OK, så er det et helt andet spørgsmål.

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?)
Avatar billede dl Nybegynder
15. august 2003 - 13:00 #9
scripting.. nej det tror jeg ikke...
Men hvad handler det om ?
Avatar billede baxos Nybegynder
15. august 2003 - 16:01 #10
Du kan osse lave det med højreklik hvis du vil : unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls, Buttons, ExtCtrls, Menus;

type
  TForm1 = class(TForm)
    RichEdit1: TRichEdit;
    Button1: TButton;
    Timer1: TTimer;
    PopupMenu1: TPopupMenu;
    console1: TMenuItem;
    removeconsole1: TMenuItem;
    procedure consol(Sender: TObject; var Key: Word; Shift: TShiftState);
    procedure console(Sender: TObject; var Key: Char);
    procedure Timer1Timer(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure removeconsole1Click(Sender: TObject);
    procedure console1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

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.
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester