Autor Beitrag
WasWeißDennIch
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 653
Erhaltene Danke: 160



BeitragVerfasst: Do 04.07.13 15:53 
Mir erschließt sich der Zusammenhang zwischen einem Konsolenprogramm, das etwas berechnen soll und der CRT-Unit nicht. Um z.B. eine Addition durchzuführen, brauche ich doch weder clrscr noch GoToXY oder sonst irgend eine der alten TP-CRT-Routinen.
Gammatester
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 328
Erhaltene Danke: 101



BeitragVerfasst: Do 04.07.13 16:02 
user profile iconMeierZwoo hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconGammatester hat folgendes geschrieben Zum zitierten Posting springen:
Hier gibt es eine funktionierende Delphi-CRT Unit.

Diese CRT-Unit ist im Gegensatz zu der von Ziegler-Soft (kostenpflichtig) leider nicht mit der Turbo-Pascal CRT kompatibel. Sie funktioniert wunderbar, nur beim Umstellen alter TP/BP-Quellcodes muß doch einiges grundsätzlich überarbeitet werden.
Würde mich schwer wundern :!: Was funktionert denn nicht ohne 'grundsätzliche Überarbeitung'?
MeierZwoo
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 94
Erhaltene Danke: 11

Win 7, DOS5
Delphi 2007 Architect, BP7/TP5, LISP, PS
BeitragVerfasst: Do 04.07.13 20:13 
Ich habe mir vorkurzem mal die CRT-Unit von wolfgang-ehrhardt.de angesehen. Ich selbst benutze die CRT-Unit von Ziegler mit eigener Pflege über D2007 hinaus.

Mir ist bei der CRT-Unit von wolfgang-ehrhardt.de folgendes wesentliches aufgefallen:

Die Funktion KeyPressed und die Funktion ReadKey unterscheiden sich zwar "äußerlich" nicht von der BP/TP-CRT, aber sehr wohl "intern". Und wenn man selber die Tasten-Lese-Funktionen intensiv nutzt und verfeinert hat, muß man dort Anpassungen vornehmen, wenn man alte TP/BP-DOS-Programme auf Win-Console umstellen will.

KeyPressed ist bei TP/BP eine einfache boolche Funktion, die nur feststellt, ob etwas im Tastaturpuffer vorhanden ist - egal was. Ansonsten faßt sie den Tastaturpuffer nicht an (mit Ausnahme BREAK, aber nur, wenn dies so geschaltet ist). Die Funktion liefert auch "nach Jahren" immer weiter TRUE zurück, solange niemand anderes den Tastaturpuffer leert. Dies übernimmt normal Readkey (KeyRead bis 3.0), sowohl für das Zeichen (und ScanCode) wie auch den Status.

Bei der CRT-Unit von wolfgang-ehrhardt.de ist es intern genau umgekehrt - zwar liefern beide Funktionen extern dieselben Funktionsergebnisse (KeyPressed : bool, ReadKey : AnsiChar) aber hier werden alle Tastaturwerte, ScanCode und Status intern von KeyPressed gelesen und global (auch für ReadKey) zur Verfügung gestellt.

Wenn man die beiden Funktionen nur so benutzt hat ohne weiterer Werte auszulesen, sich also auf die Zeichen beschränkt hat, macht es keinen Unterschied - wenn man dagegen aber ScanCodes und Status benutzt, muß man dies umstellen. Das wären im Normalfall zwar auch nur ein bis zwei Kernroutinen, aber ohne Umstellung stolpert man.

Weitere Unterschiede habe ich mir (noch) nicht angesehen, da ich ja meine funzende, gepflegte CRT benutze.

Knackpunkte wären z.B. noch: Führt ein Beschreiben des letzten Feldes (Unterste Zeile, ganz rechte Schreibstelle) zum Scrollen des gesamten Feldes oder nicht. Wie verhält sich die Codepage vorallem beim Zurücklesen?
Phil24696 Threadstarter
Hält's aus hier
Beiträge: 11



BeitragVerfasst: Sa 06.07.13 09:56 
Ich bezog mich bei meiner Aussage, es sei eine Konsolenanwendung, da in Delphi 7 (mit dem ich übrigens programmiere) bei einem Button "Konsolenanwendung" geschrieben steht, nachdem man eingegebenen hat, dass man ein neue Datei erstellen will.

Zitat:
Du solltest wirklichmal einen ScreenShot hochladen ...


Bitteschön. Einmal von dem Programm selbst und dann einmal von der "Programmieroberfläche"(weiß leider den Fachbegriff nicht)

Was ist der Unterschied zwischen Console-Programm und Dos-Programm?
Einloggen, um Attachments anzusehen!
MeierZwoo
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 94
Erhaltene Danke: 11

Win 7, DOS5
Delphi 2007 Architect, BP7/TP5, LISP, PS
BeitragVerfasst: Sa 06.07.13 10:16 
Korrekt, es ist ein Konsolenprogramm.

Der Unterschied zwischen einem Windows-Consolenprogramm und eine DOS-Programm ist das, was der Name schon sagt: Ein DOS Programm läuft unter DOS (bei heutigen Wins im DOS-Emulator, besser 16-Bit-Subsystem, ab Win 64bit nicht mehr enthalten) und ein Windows-Konsolenprogramm läuft unter Windows und ist ein völlig normales Windows-Programm, nur ohne GUI (Grafische Benutzer Oberfläche, Grafics User Interface). Nur wird diese Textbasierte Oberfläche von Delphi nur rudimentär unterstützt.

Und was davon soll nun unbedingt gespeichert werden, so daß Du auch einen Speicherauszug in Erwägungs zogst?

Das Programm startet doch neu ganz leer. Außer den Abfragen am Anfang, Anzeige ... und so evtl.. Die paar Parameter kannst Du doch locker in einer simplen INI ablegen und, wenn eine INI vorhanden ist, dann nur noch abfragen, ob die Vorgabewerte (mit Anzeige der Vorgabewerte aus der INI) benutzt werden sollen oder alles neu abgefragt werden soll.
Phil24696 Threadstarter
Hält's aus hier
Beiträge: 11



BeitragVerfasst: Mo 08.07.13 18:25 
Wenn ich deine Aussage richtig verstanden habe, dann kann ich mit den Ini-Dateien exakt das machen was ich machen will.
Ich will nämlich das Ergebnis eines "Programmdurchlaufes" bevor man beendet, speichern, wenn gewollt, und das Ergebnis dann bei dem neuen Start, sprich Programm schließen und wieder starten, wieder abfragen und mit diesem weiter berechnen.

Sobald ich Zeit gefunden habe, was leider noch nicht so ganz der Fall war, dann werde ich, dies mit den Ini-Dateien in mein vorhandenes "Testprogramm" einbauen. Sollte etwas nicht funktionieren oder ich kapiere nicht wie es funktioniert, dann werde ich mich wieder melden und hoffe das ihr wieder Zeit habt und mir wieder helft.

Danke für eure Hilfe! :zustimm: