Announcement

Collapse
No announcement yet.

Terminal-Fenster in Win32-Formular

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Terminal-Fenster in Win32-Formular

    Hallo zusammen,<p>
    vielleicht kann mir jemand sagen, ob es eine Komponente gibt, mit der man<br>
    auf einem Formular (mit Buttons, ...) eine Art DOS-Fenster unterbringt, in<br>
    dem die Eingaben und Ausgaben erfolgen sollen. In dieses "TERMINAL"-Fenster<br>
    sollte man Text so positionieren können, wie man das noch unter Turbo-Pascal 5<br>
    gewohnt war.<p>
    Gibt es so eine Komponente oder kann man dieses Problem anderweitig lösen?<p>
    Bin für Vorschläge offen. Ich verwende Delphi 4 Client/Server.<p>
    Vielen dank im Voraus.<p>
    Stephan Jäger

  • #2
    Ich habe es so gelösst:<br>
    Mit Assign() wird die Standard-Eingabe und Ausgabe einer Text-Variablen zugewiesen. Nun solche Typen können durch einen eigenen "Device"-Treiber erzeugt werden. Man bastelt sozusagen ein eigenes Assign(). Mein Assign(), eg. AssignConsole() verknüpft eine solche Text Variable mit einen TEdit/TMemo/TRichEdit Control. In diesem Moment kann man mit ReadLn(F, ) und WriteLn(F, ) aus diesem Edit lesen oder schreiben. Ruft man nun AssignConsole(Input, MyRichEdit) und AssignConsole(Output, MyRichEdit) auf werden die Standard Ein-/Ausgabe mit diesem Control verküpft. Nun kann man mit WriteLn(...) und ReadLn() ohne Angabe der Text Variablen aufs Control zugreifen.<bR>

    Gruß Hage

    Comment


    • #3
      Hallo Hagen,<p>
      vielen Dank für deine schnelle Antwort. Leider verstehe ich das noch<br>
      nicht so ganz. Wäre es möglich, daß du mir ein kleines Quellcode-<br>
      Beispiel schickst? Meine E-Mail-Adresse ist [email protected]<p>
      Vielen Dank<p>
      Stephan Jäge

      Comment


      • #4
        Also, schau mal in unit System.pas den Typ TTextRec. Alle Variablen der Form <b>var F: Text</b> sind intern eigenlich solche TTextRec's. Im TTextRec findest Du Zeiger auf Funktionen wie OpenFunc, InOutFunc usw. Du schreibst also nun eine eigene AssignXXX(var F: Text) procedure die F typcasested nach TTextRec und alle Werte richtig initialisiert, d.h. hauptsächlich eben diese Functionszeiger auf eigene functions setzt. Nun kann man mit WriteLn(F, 'XYZ') den String "XYZ" über TTextRec(F).InOutFunc an einen beliebigen Output weiterleiten. Für Dateien und die Standardconsole ist dies ja schon fertig. <br>

        Der Teufel steckt im Detail, hat man sich aber erst mal eingearbeitet kann man sehr einfach sehr flexible Ausgaben die an alte BP Zeiten erinnern ermöglichen.<br>

        Gruß hage

        Comment

        Working...
        X