AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

eigene Konsole -> Readln Problem

Ein Thema von hboy · begonnen am 3. Jan 2005 · letzter Beitrag vom 5. Jan 2005
Antwort Antwort
Seite 1 von 3  1 23      
hboy

Registriert seit: 16. Jan 2004
364 Beiträge
 
#1

eigene Konsole -> Readln Problem

  Alt 3. Jan 2005, 17:34
Hi Leute

Ich steh mal wieder vor einem kleinen Problemchen und bevor es mich wieder die ganze Nacht kostet hoff ich dass ihr mir da weiterhelfen könnt ^^

"Wird F weggelassen, wird die globale Variable Output verwendet, die auf die Standardausgabedatei der Prozesse zugreift. Beim Einsatz von Output in GUI-Anwendungen muss auf ein spezielles Vorgehen geachtet werden."

"spezielles Vorgehen" ? Also wie stell ich dass an eigene Prozeduren fürs Schreiben und Lesen umzusetzen ? Was hat es mit dieser Dateivariable auf sich ?

Edit: Die Hilfe meint noch weiter:
"Unter Windows haben die meisten Prozesse keine Standardausgabedatei und das Schreiben in Output löst einen Fehler aus. Wenn Delphi-Programme als Konsolenanwendungen gelinkt sind, verfügen sie über eine Standardausgabedatei."

Nur wie stellt delphi das an ? Ich hätte da gern meine eigene Konsole ^^
Power is nothing without TControl
  Mit Zitat antworten Zitat
scp

Registriert seit: 31. Okt 2003
1.120 Beiträge
 
Delphi 7 Personal
 
#2

Re: eigene Konsole -> writeln output ?

  Alt 3. Jan 2005, 17:48
Dies dürfte entweder über Pipes, nachzuschlagen unter Hier im Forum suchenCreatepipe und Hier im Forum suchenTStartUpInfo funktionieren, oder wie anno dazumal über Assign(OUTPUT, ), zu letzterem steht unter Assign etwas in der Hilfe.

PS: Fürdie Standardkonsole reicht wentweder {$APPTYPE CONSOLE} oder eine Kombination von AllocConsole und FreeConsole.
  Mit Zitat antworten Zitat
hboy

Registriert seit: 16. Jan 2004
364 Beiträge
 
#3

Re: eigene Konsole -> writeln output ?

  Alt 3. Jan 2005, 17:51
cool thx gleich mal gucken... btw state-of-the-art is ne nonvcl-kompo die so ausschaut ^^
Miniaturansicht angehängter Grafiken
err_123.jpg  
Power is nothing without TControl
  Mit Zitat antworten Zitat
scp

Registriert seit: 31. Okt 2003
1.120 Beiträge
 
Delphi 7 Personal
 
#4

Re: eigene Konsole -> writeln output ?

  Alt 3. Jan 2005, 17:56
Wie hast du das bwerkstelligt? Das Problem bei Pipes ist nämlich, das die zunächst nur zweifarbig funktionieren.
  Mit Zitat antworten Zitat
hboy

Registriert seit: 16. Jan 2004
364 Beiträge
 
#5

Re: eigene Konsole -> writeln output ?

  Alt 3. Jan 2005, 18:00
bis jetzt wird die Konsole noch als Objekt angesprochen und nicht über die Standardausgabedatei, da bin ich gerade dabei, aber ich werds in ne Unit packen und dann kann man die Farbparameter über das Objekt anpassen. Mal sehn wie weit ich jetzt komm stay tuned
Power is nothing without TControl
  Mit Zitat antworten Zitat
hboy

Registriert seit: 16. Jan 2004
364 Beiträge
 
#6

Re: eigene Konsole -> writeln output ?

  Alt 3. Jan 2005, 18:13
noch n btw: jemand lust mir bei meiner component library zu helfen ^^ awas kleiner Scherz
Power is nothing without TControl
  Mit Zitat antworten Zitat
hboy

Registriert seit: 16. Jan 2004
364 Beiträge
 
#7

Re: eigene Konsole -> writeln output ?

  Alt 3. Jan 2005, 20:47
sodele... es beginnt zu funktionieren..



Delphi-Quellcode:
  write('testing, testing.... *hust*');
  TextColor := $FF0000;
  write('.... everything seems to be in order');
  TextColor := $00FF00;
  BackgroundColor := $505050;
  write('Console test done.');

ich weiß... Zeilenumbrüche fehlen halt ^^ gemach gemach
Jetzt wie mach ich Readln ? läuft doch bestimmt auch wieder über InOut ?

schaut dann so aus:
Miniaturansicht angehängter Grafiken
console_303.jpg  
Power is nothing without TControl
  Mit Zitat antworten Zitat
hboy

Registriert seit: 16. Jan 2004
364 Beiträge
 
#8

Re: eigene Konsole -> writeln output ?

  Alt 3. Jan 2005, 21:15
danke erst mal das ich so weit gekommen bin.

und weiter gehts mit der fragerei ^^

Also bei ReadLn wird wohl die Open-Prozedur aufgerufen... nur was muss ich ändern/zurückgeben damit die "datei" als lesbar gilt ?

kleiner Einblick in den Code :

Delphi-Quellcode:
unit CCONSOLE;

interface

var TextColor, BackgroundColor: Cardinal;

implementation
  uses ConsoleWnd;

var
  ConsoleWin : TConsoleWnd;
  killed: Boolean;

Function DevOpen(var F: TTextRec): Integer;
begin
  // und was geht hier ???
  result :=0;
end;

Function DevInOut(var F: TTextRec): Integer;
begin
  case f.Mode of
    fmOutput:
      begin
        if not killed then ConsoleWin.proto.AddLine(F.Buffer,BackgroundColor,TextColor);
      end;
    fmInput:
      begin

      end;
    fmInOut:
      begin

      end;
  end;
  result :=0;
end;

Function DevFlush(var F: TTextRec): Integer;
begin
  case f.Mode of
    fmOutput:
      begin
        DevInOut(F);
        FillChar(F.Buffer,F.BufPos-1,0);
        F.BufPos := 0;
      end;
    fmInput:
      begin
      end;
    fmInOut:
      begin
      end;
  end;
  result :=0;
end;

Function DevClose(var F: TTextRec): Integer;
begin
  result :=0;
end;


procedure AssignDev(var F: Text);
begin
  with TTextRec(F) do
  begin
    Mode := fmClosed;
    BufSize := SizeOf(Buffer);
    BufPtr := @Buffer;
    OpenFunc := @DevOpen;
    InOutFunc := @DevInOut;
    FlushFunc := @DevFlush;
    CloseFunc := @DevClose;
    Name[0] := #0;
  end;
end;

initialization
  ConsoleWin := TConsoleWnd.Create(0);
  ConsoleWin.Caption := system.ParamStr(0)+ ' - NVConsole';
  ConsoleWin.Show;
  ConsoleWin.proto.AddLine('NonVCL Console by hbw-technology 2005 ',$0,$00C000);
  ConsoleWin.proto.AddLine('',0,0);
  AssignDev(Output);
finalization
  killed:= true;
end.
Power is nothing without TControl
  Mit Zitat antworten Zitat
hboy

Registriert seit: 16. Jan 2004
364 Beiträge
 
#9

Re: eigene Konsole -> writeln output ?

  Alt 4. Jan 2005, 00:17
ja leute ich bin imma noch nich weiter hiiiiiiiiiiiiiiiiiilfeeee ^^
Power is nothing without TControl
  Mit Zitat antworten Zitat
Benutzerbild von Sprint
Sprint

Registriert seit: 18. Aug 2004
Ort: Edewecht
712 Beiträge
 
Delphi 5 Professional
 
#10

Re: eigene Konsole -> writeln output ?

  Alt 4. Jan 2005, 00:38
Zitat von hboy:
Also bei ReadLn wird wohl die Open-Prozedur aufgerufen... nur was muss ich ändern/zurückgeben damit die "datei" als lesbar gilt ?
Zitat:
ja leute ich bin imma noch nich weiter hiiiiiiiiiiiiiiiiiilfeeee ^^
Vielleicht solltest du dich mal klar und deutlich ausdrücken wo dein Problem liegt.

Delphi-Quellcode:
var
  S: String;
begin
  Readln(S);
end;
Ciao, Sprint.

"I don't know what I am doing, but I am sure I am having fun!"
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:00 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz