AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Konsolenanwendung - crt.pas - Console Library
Thema durchsuchen
Ansicht
Themen-Optionen

Konsolenanwendung - crt.pas - Console Library

Ein Thema von arcticwolf · begonnen am 26. Jun 2023 · letzter Beitrag vom 27. Jul 2023
Antwort Antwort
Andreas13

Registriert seit: 14. Okt 2006
Ort: Nürnberg
722 Beiträge
 
Delphi XE5 Professional
 
#1

AW: Konsolenanwendung - crt.pas - Console Library

  Alt 28. Jun 2023, 21:32
Hallo Wolfgang,

Du hast recht: Auch Demo01_Minimal_Console_App.dpr läßt sich nicht kompilieren:
Delphi-Quellcode:
[dcc32 Fehler] Demo01_Minimal_Console_App.dpr(13): E2003 Undeklarierter Bezeichner: 'Console'
[dcc32 Fehler] Demo01_Minimal_Console_App.dpr(13): E2035 Nicht genügend wirkliche Parameter
Die erste Zeile Console.Window(80,25); verursacht die Probleme.

Versehentlich hatte ich am Nachmittag eine Kopie von Demo01_Minimal_Console_App.dpr von gestern kompiliert...
Grüße, Andreas
Wenn man seinem Nächsten einen steilen Berg hinaufhilft, kommt man selbst dem Gipfel näher. (John C. Cornelius)
  Mit Zitat antworten Zitat
Benutzerbild von arcticwolf
arcticwolf

Registriert seit: 3. Aug 2021
Ort: Erfurt
41 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Konsolenanwendung - crt.pas - Console Library

  Alt 29. Jun 2023, 08:09
Hallo Andreas,

irgendwie macht das keinen Sinn. Wenn Du sagst
Zitat:
Nun lassen sich mit XE5 alle 9 Units der Bibliothek kompilieren.
der Compiler aber dann die "Var Console" nicht findet, die in der Crt.pas in Zeile 78 deklariert ist, dann würde ich vermuten, dass bei Dir irgendwas mit den Pfaden nicht stimmt. Im Projekt ist der Suchpfad auf das Parent-Directory ".." eingestellt. Also oberhalb von \Demo. Wenn Du an den Pfaden nichts geändert hast, sollte er die (meine) crt.pas finden und damit auch die "Var Console". Räum doch bitte mal auf und lösche alles was nicht mit dem GitHub Repository kommt. Also vor allem die Verzeichnisse .\Demo\Win32\ und .\Demo\Win64\ um zu vermeiden, dass der Compiler da eine alte crt.dcu findet.

Oder der Compiler findet noch irgendeine andere crt.pas oder crt.dcu? Schau mal im globalen Suchpfad, siehe "Tools -> Optionen -> Delphi -> Bibliothek" o.ä. je nach Delphi-Version. Das würde erklären, warum der dann in der Unit Crt keine "Var Console" findet.
Wolfgang
  Mit Zitat antworten Zitat
Andreas13

Registriert seit: 14. Okt 2006
Ort: Nürnberg
722 Beiträge
 
Delphi XE5 Professional
 
#3

AW: Konsolenanwendung - crt.pas - Console Library

  Alt 29. Jun 2023, 08:47
Hallo Wolfgang,
ich habe gerade die Lösung für mein Compiler-Problem gefunden: Bei mir gibt es noch eine andere Unit namens Crt.pas und diese Unit steht bei mir im Suchpfad und wird zuerst gefunden.

Weil ich die Directory-Struktur Deiner Console-Master Library nicht geändert habe, klappt es bei mir mit den Demos erst, wenn ich den Pfad für Dein Crt.pas wie folgt ändere:
Delphi-Quellcode:
...
uses
  Crt in '..\Crt.pas',
;
...
oder z.B. in Ply.Crt.pas umbenenne.

Tolle & nützliche Bibliothek!
Danke!
Grüße, Andreas
Wenn man seinem Nächsten einen steilen Berg hinaufhilft, kommt man selbst dem Gipfel näher. (John C. Cornelius)
  Mit Zitat antworten Zitat
Benutzerbild von arcticwolf
arcticwolf

Registriert seit: 3. Aug 2021
Ort: Erfurt
41 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Konsolenanwendung - crt.pas - Console Library

  Alt 30. Jun 2023, 16:54
Hallo Andreas,

Zitat:
Tolle & nützliche Bibliothek! Danke!
Vielen Dank!

Da war ich ja schon auf der richtigen Spur, dass da eine andere crt.pas im Spiel ist. Ich habe deinen Vorschlag

Zitat:
Delphi-Quellcode:
uses
  Crt in '..\Crt.pas',
in die Demos übernommen, damit andere Nutzer das Problem künftig nicht mehr haben, dass eine andere crt.pas zuerst gefunden wird. Ply.Crt.Pas habe ich mit Absicht nicht genommen, weil das den Aufwand deutlich erhöhen würde, wenn jemand ein altes Programm mit vielen Units hat, welche die crt.pas nutzen. So muss der Nutzer nur sicherstellen, dass meine crt.pas zuerst (oder besser als einzige) gefunden wird und nicht in jeder Unit das "uses crt" anpassen. Das hat/hatte auch historischen Eigennutzen. Ich hatte ganz lange Code im Einsatz, den ich parallel mit Borland Pascal 7.0 und Delphi (5.0 und später auch XE6) compilieren musste.
________________________

Ich habe heute das "Demo09_BuiltIn_Features" dem GitHub-Repository hinzugefügt. Das Demo soll die Funktionsweise einiger eingebauten Funktionen erklären, welche ohne extra Code automatisch zur Verfügung stehen sobald meine crt.pas bzw. Ply.Console.Extended.pas im Uses steht.
Wolfgang
  Mit Zitat antworten Zitat
Andreas13

Registriert seit: 14. Okt 2006
Ort: Nürnberg
722 Beiträge
 
Delphi XE5 Professional
 
#5

AW: Konsolenanwendung - crt.pas - Console Library

  Alt 30. Jun 2023, 21:41
Vielen Dank, Wolfgang!

[Edit]
PS:
Im Demo09_BuiltIn_Features.dpr ist in Zeile 50 eine Inline-Deklaration
  Var FrameAttr := TTextAttr.Create(White, Red); welche ältere Delphi-Versionen (auch XE5) noch nicht verstehen. Aber das läßt sich einfach umschreiben.
Grüße, Andreas
Wenn man seinem Nächsten einen steilen Berg hinaufhilft, kommt man selbst dem Gipfel näher. (John C. Cornelius)

Geändert von Andreas13 (30. Jun 2023 um 22:36 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:27 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