Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Simplen Texteditor als Konsole programmieren (https://www.delphipraxis.net/134409-simplen-texteditor-als-konsole-programmieren.html)

Delphi_gn7 21. Mai 2009 16:14


Simplen Texteditor als Konsole programmieren
 
Hi,
ich habe leider keine bessere Forenkategorie für meine Frage gefunden, da es sich um ein Konsolenprogramm handelt, bei dem mir einige Aspekte zur Realisierung nicht ganz klar sind:

Ich möchte einen simpeln Texteditor als Konsolenprogramm schreiben (habe noch kein ganzes Jahr Delphi Erfahrung - Schule), mit dem man einen Text schreiben kann, der nach Fertigstellung in einer txt Datei gespeichert wird.
Dabei sollte man auch text mit Strg + V einfügen können, wofür ich nach Hilfe aus dem Internet zu diesem Ergebnis gekommen bin (Programm soll zunächst nur in der Lage sein, auf Tastendruck vom Clipboard zu kopieren):

Code:
program clip;

{$APPTYPE CONSOLE}

uses
  SysUtils, Windows, crt32, Clipbrd;

var
s: string;
c: char;

begin
c:=readkey;
if (ord(c)=22) // Strg-Taste
then if (c='v') or (c='V')
     then if Clipboard.HasFormat(CF_TEXT)
          then begin
               s:= Clipboard.AsText;
               writeln(s);
               end
          else writeln('Clipboard leer oder kein Text');
          readln;

end.
Ich habe erkannt, das ich auf diese Weise nicht mit der Strg taste arbeiten kann und nach Googlen bin ich auf die onkeydown Funktion gestoßen, mit der man das realisieren können soll, jedoch fand ich nichts über die Parameter der Funktion, weiß also nicht wie ich sie verwenden kann.

Kann mit jemand damit helfen - ich möchte realisieren, dass der Druck von Strg + V die Zwischenablage in das Konsolenfenster einfügt!

Mfgn7

BackOrifice 21. Mai 2009 16:20

Re: Simplen Texteditor als Konsole programmieren
 
Halbwissen: Ist die Control-Taste nicht ein Steuerzeichen? Steuerzeichen produzieren 2 Byte im Tastaturpuffer: 1. Byte ist = #0 und 2. Byte das Steuerzeichen.
(Beantwortet natürlich nicht die Frage :D)

Delphi_gn7 26. Mai 2009 14:20

Re: Simplen Texteditor als Konsole programmieren
 
Doh...

Aber noch eine Frage: wie kriege ich es hin, dass ich nach dem Springen in eine neue Zeile wieder mit RETURN zurück in die Zeile darüber springen kann?

Mfgn7

Jakob Ullmann 26. Mai 2009 14:36

Re: Simplen Texteditor als Konsole programmieren
 
Wie hast du denn bis jetzt das Editieren realisiert? Weil in einer Konsole kann man (soweit ich weiß) immer nur in der letzten Zeile schreiben. Lediglich Bildschirm löschen würde gehen.

Phoenix 26. Mai 2009 14:38

Re: Simplen Texteditor als Konsole programmieren
 
Zitat:

Zitat von Delphi_gn7
nach Googlen bin ich auf die onkeydown Funktion gestoßen, mit der man das realisieren können soll

... aber nicht kann. Zumindest nicht in Deinem Anwendungsfall.

OnKeyDown ist ein Event (Ereignis), dass von VCL Controls aufgerufen wird, wenn diese die entsprechende Message von Windows erhalten.

Wenn Du Dich in einer Konsolenanwendung befindest, dann hast Du logischerweise keine Fenster, also auch keine Windows-Messages und somit auch keine OnWasAuchImmer Ereignisse die irgendwie mit Benutzereingaben zu tun haben.

Luckie 26. Mai 2009 14:39

Re: Simplen Texteditor als Konsole programmieren
 
Zitat:

Zitat von Delphi_gn7
Doh...

Aber noch eine Frage: wie kriege ich es hin, dass ich nach dem Springen in eine neue Zeile wieder mit RETURN zurück in die Zeile darüber springen kann?

Mfgn7

Bitte erstell für eine neue Frage einen neuen Thread.

shmia 26. Mai 2009 15:09

Re: Simplen Texteditor als Konsole programmieren
 
Zitat:

Zitat von Delphi_gn7
Ich möchte einen simpeln Texteditor als Konsolenprogramm schreiben

Damit bist du eigentlich schon zum Scheitern verurteilt.
Dir fehlt zunächst die Kontrolle über das Ausgabefenster.
Du kannst Text mit writeln ausgeben aber weder die Ausgabeposition noch die Farbe steuern.
Es gibt zwar Units, mit denen man dies tun kann:
http://www.swissdelphicenter.ch/de/showcode.php?id=1941
aber das ist ein richtiges Gef....!

Delphi_gn7 27. Mai 2009 20:09

Re: Simplen Texteditor als Konsole programmieren
 
Danke für die Antworten.

Reinhard Kern 28. Mai 2009 13:27

Re: Simplen Texteditor als Konsole programmieren
 
Zitat:

Zitat von shmia
Damit bist du eigentlich schon zum Scheitern verurteilt.
Dir fehlt zunächst die Kontrolle über das Ausgabefenster.
Du kannst Text mit writeln ausgeben aber weder die Ausgabeposition noch die Farbe steuern.
...

Hallo,

ist zwar in Vergessenheit geraten, aber das gab es alles schon unter DOS. Die Esc-Sequenzen für Cursor, Farben usw. waren so gut genormt, dass man wie mit Windows arbeiten konnte, eben nur mit einer Schriftgrösse. Mit einer DOS-ähnlichen ANSI-Steuerung oder mit einer Terminalemulation (VT100) kein Problem, ist nur die Frage, wofür sich das lohnen soll.

Gruss Reinhard


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:33 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz