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 2 von 3     12 3      
hboy

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

Re: eigene Konsole -> writeln output ?

  Alt 4. Jan 2005, 00:45
hab gedacht das hier reicht...

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

weil bei ReadLn Fehler 6 auftritt. Und genau dieses Readln tut eben nicht. *grübeö* wwwiiiessooo
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
 
#12

Re: eigene Konsole -> writeln output ?

  Alt 4. Jan 2005, 01:00
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 ? "
Mit diesem Satz kann ich überhaupt nichts anfangen.
Ciao, Sprint.

"I don't know what I am doing, but I am sure I am having fun!"
  Mit Zitat antworten Zitat
hboy

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

Re: eigene Konsole -> writeln output ?

  Alt 4. Jan 2005, 01:04
sorry. Also es geht darum dass ein Fehler bei Readln auftritt. Ich weiß nicht wie ich ein Lesen realisieren soll. Testweise könnte man auch 'Test' in den Buffer schreiben.
Ich weiß allerdings nicht wo das Programm mit dem Fehler abbricht. Kleine Änderung:

Delphi-Quellcode:
Function ConsoleIn(var F: TTextRec): Integer;
begin
  // ???
  Result := 0;
end;

Function ConsoleOut(var F: TTextRec): Integer;
begin
  if not killed then ConsoleWin.proto.AddLine(F.Buffer,BackgroundColor,TextColor);
  FillChar(F.Buffer,F.BufPos-1,0);
  F.BufPos := 0;
  Result := 0;
end;

Function ConsoleIgnore(var F: TTextRec): Integer;
begin
  Result := 0;
end;


Function DevOpen(var F: TTextRec): Integer;
begin
  with F do begin
    BufPos := 0;
    BufEnd := 0;
    case Mode of
      fmInput: begin
        InOutFunc := @ConsoleIn;
        FlushFunc := @ConsoleIgnore;
      end;
      fmOutput: begin
        InOutFunc := @ConsoleOut;
        FlushFunc := @ConsoleOut;
      end;
      fmInOut: begin
        Mode := fmOutput;
        InOutFunc := @ConsoleOut;
        FlushFunc := @ConsoleOut;
      end;
    else
      Result := 1;
      Exit;
    end;
  end;
  Result := 0;
end;
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
 
#14

Re: eigene Konsole -> writeln output ?

  Alt 4. Jan 2005, 01:06
Bin ich blind oder kommt in deinem geposteten Beispiel kein Readln vor?
Ciao, Sprint.

"I don't know what I am doing, but I am sure I am having fun!"
  Mit Zitat antworten Zitat
hboy

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

Re: eigene Konsole -> writeln output ?

  Alt 4. Jan 2005, 01:07
ich hab bis jetzt nur den Konsolencode gepostet. okay und das Prog schaut so aus:

Delphi-Quellcode:
program Project1;

uses
  Windows,messages,CConsole;
var msg:TMsg;
  a: string;
begin

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

  sleep(1000);

  readln(a);

  write('Readln Successful !!!');

  while GetMessage(msg,0,0,0) do // aufhängen^^
  begin
    TranslateMessage(msg);
    DispatchMessage(msg);
    if not IsWindowVIsible(msg.hwnd) then break; // bis das Konsolenfenster geschlossen ist
  end;


end.
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
 
#16

Re: eigene Konsole -> writeln output ?

  Alt 4. Jan 2005, 01:15
Ich kann in deinem Code kein {$APPTYPE CONSOLE} finden. Ist das Ausgabe-Fenster kein Windows-Konsolenfenster, sondern dein eigenes Fenster? Wenn ja, hast du StdInput- StdOutput Handle gesetzt?
Ciao, Sprint.

"I don't know what I am doing, but I am sure I am having fun!"
  Mit Zitat antworten Zitat
hboy

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

Re: eigene Konsole -> Readln Problem

  Alt 4. Jan 2005, 01:59
Richtig. Ich will mein eigenes Konsolenfenster verwenden, und wie in dem 2. Screenshot zu sehen ist funktioniert es über die Standardausgabedatei Output recht gut. Das Schreiben zumindest. Zum schreiben wird über Umwege ( F.FlushFunc enthält die Funktion, die folgendes aufruft : )

Delphi-Quellcode:
Function ConsoleOut(var F: TTextRec): Integer;
var IsLn: Boolean;
begin
  if (F.Buffer[F.BufPos-2] = #13) and (F.Buffer[F.BufPos-1] = #10) then
  begin
    IsLn := true; // future purpose
    F.Buffer[F.BufPos-2] := #0;
  end;
  if not killed then ConsoleWin.proto.AddLine(F.Buffer,BackgroundColor,TextColor);
  FillChar(F.Buffer,F.BufPos-1,0);
  F.BufPos := 0;
  Result := 0;
end;
beim Initiaisieren der Unit wird ein Fenster mit der Komponente erzeugt und in dieses wird der Buffer ausgegeben
Nur ein Lesen könnte man über Abfangen der WM_KEYDOWN messages in einem Loop realisieren, jedoch wird die Leseprozedur
Function ConsoleIn(var F: TTextRec): Integer;

nicht aufgerufen. Es wird nichtmal die InOutFunc aufgerufen oder die FlushFunc. OpenFunc auch nicht. Also frag ich mich was da geschieht das das Programm mit einem Fehler abbricht. Vielleicht muss ich auch F.Flags setzen ( wenn ich wüsste welche Flags zu setzen wären )


Also Wo steckt der Fehler ?

E/A Fehler 6
Power is nothing without TControl
  Mit Zitat antworten Zitat
hboy

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

Re: eigene Konsole -> Readln Problem

  Alt 4. Jan 2005, 02:00
au meine fresse... sag nich es gibt extra input... neeiiiinn.... mom
Power is nothing without TControl
  Mit Zitat antworten Zitat
hboy

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

Re: eigene Konsole -> Readln Problem

  Alt 4. Jan 2005, 02:05
okay also die Blindheit geht mal heute klar an mich ^^
Delphi-Quellcode:
  AssignDev(Output);
  AssignDev(Input);
bleibt jetzt nur noch das Problem, dass nichts gelesen wird
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
 
#20

Re: eigene Konsole -> Readln Problem

  Alt 4. Jan 2005, 03:02
Zitat von hboy:
bleibt jetzt nur noch das Problem, dass nichts gelesen wird
Musst die Werte nach BufPtr schieben. Dabei auf BufSize, BufPos & BufEnd achten.
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 2 von 3     12 3      


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 22:52 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