Einzelnen Beitrag anzeigen

hboy

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

Re: eigene Konsole -> Readln Problem

  Alt 4. Jan 2005, 00: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