Einzelnen Beitrag anzeigen

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