AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Hilfe bei Delphi-CRT-Unit für XE/2

Ein Thema von gammatester · begonnen am 21. Jan 2013 · letzter Beitrag vom 22. Jan 2013
Antwort Antwort
gammatester

Registriert seit: 6. Dez 2005
999 Beiträge
 
#1

Hilfe bei Delphi-CRT-Unit für XE/2

  Alt 21. Jan 2013, 12:06
Delphi-Version: XE2
Lieber XE/2-Benutzer,

ich würde mich über Mithilfe bei folgender Situation freuen:

Bei den Anpassungen von MPArith V1.24.23 für Delphi 17 / XE3 und Win64 mußte ich auch meine Delphi-CRT-Unit ändern. Leider ging das nur mit der Methode "Versuch und Irrtum" da selbst die relavanten Online-Hilfen vom Emba nur sagen, daß sie keine Information über das haben, was sie da programmiert haben: zB http://docwiki.embarcadero.com/Libra...xtRec.CodePage oder http://docwiki.embarcadero.com/Libra...Rec.MBCSLength. Zitat: "Embarcadero Technologies does not currently have any additional information. Please help us document this topic by using the Discussion page!"

Ist schon merkwürdig, daß sie User um Hilfe für Ihre Dokumentation bitten, es muß doch Specs und Programmierer dafür geben!

Hier die relevanten Abschnitte in CRT.PAS, fraglich sind die Teile mit {$ifdef TXTREC_CP}:
Delphi-Quellcode:
{$IFDEF CONDITIONALEXPRESSIONS}
  {$IF CompilerVersion >= 23.0}  {D16(XE2)+}
    {$DEFINE UNIT_SCOPE}
  {$IFEND}
  {$IF CompilerVersion >= 23.0}
    {$DEFINE TXTREC_CP}
  {$IFEND}
{$ENDIF}
//..
     fmInOut,
     fmOutput: begin
               OutputHandle := CreateFile('CONOUT$', GENERIC_READ or GENERIC_WRITE, FILE_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING, 0, 0);
               {$ifdef D6PLUS}
                 {Delphi 6 and above default to LF-only line breaks}
                 f.Mode := fmClosed;
                 SetLineBreakStyle(text(f), tlbsCRLF);
               {$endif}
               f.Handle := OutputHandle;
               f.Mode := fmOutput;
               if f.BufPtr=nil then begin
                 f.BufPtr := @f.Buffer;
                 f.BufSize := sizeof(f.Buffer)
               end;
               InitVideo;
               if (GetConsoleScreenBufferInfo(f.Handle, Info)) then begin
                 SetConsoleMode(f.Handle, 0);
                 f.InOutFunc := @CrtOutput;
                 f.FlushFunc := @CrtOutput;
                 f.CloseFunc := @CrtClose;
                 {$ifdef TXTREC_CP}
                   if f.CodePage = 0 then begin
                     if GetFileType(f.Handle) = FILE_TYPE_CHAR then begin
                       {f.Mode=fmOutput}
                       f.CodePage := GetConsoleOutputCP
                     end
                     else f.CodePage := DefaultSystemCodePage;
                   end;
                   f.MBCSLength := 0;
                   f.MBCSBufPos := 0;
                 {$endif}
               end
               else begin
                 Result := GetLastError;
               end;
             end;
//..
Nun ja, für XE3 läuft es jetzt. Allerdings habe ich keinen Zugang zu XE/XE2. Lauft Dokwiki gibt's die CodePage/MBCS-Felder bei XE noch nicht, aber bei XE2 schon. Wenn also jemand verifizieren könnte, ob das die alte Borland CRTDemo.pas aus dem CRT-Archiv als Konsol-Applikation unter XE / XE2 lauft, wäre ich sehr dankbar. (EXE kann ich ja leider nicht erstellen/anhängen)

Gruß und Dank im Voraus
Gammatester
  Mit Zitat antworten Zitat
Benutzerbild von Codewalker
Codewalker

Registriert seit: 18. Nov 2005
Ort: Ratingen
945 Beiträge
 
Delphi XE2 Professional
 
#2

AW: Hilfe bei Delphi-CRT-Unit für XE/2

  Alt 21. Jan 2013, 17:36
Ich habe aus deinem Archiv die rk.exe und die crtdemo getestet. Beide laufen problemlos unter Delphi XE2, sowohl unter 32-Bit als auch unter 64-Bit
  Mit Zitat antworten Zitat
gammatester

Registriert seit: 6. Dez 2005
999 Beiträge
 
#3

AW: Hilfe bei Delphi-CRT-Unit für XE/2

  Alt 22. Jan 2013, 07:59
Beide laufen problemlos unter Delphi XE2, sowohl unter 32-Bit als auch unter 64-Bit
Danke für den Test mit dem positiven Ergebnis!

Noch jemand mit XE? Oder ist das inzwischen praktisch verschwunden?

Gruß Gammatester
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Hilfe bei Delphi-CRT-Unit für XE/2

  Alt 22. Jan 2013, 08:29
Hallo Gammatester,

rk.exe ließ sich mit XE starter ohne Probleme erstellen und konnte auch gestartet werden.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
gammatester

Registriert seit: 6. Dez 2005
999 Beiträge
 
#5

AW: Hilfe bei Delphi-CRT-Unit für XE/2

  Alt 22. Jan 2013, 08:42
rk.exe ließ sich mit XE starter ohne Probleme erstellen und konnte auch gestartet werden.
Danke. Heißt das, das crtdemo nicht funktioniert oder hast Du es nicht getestet? Da es noch ein altes Original von Borland aus BP7-Zeiten ist, hat es noch die PAS-Extension. Also einfach in crtdemo.dpr umbennen.

Bei der Anpassung hatte ich für XE3 die Erfahrung gemacht, daß die normale Textausgabe mit ASCII-zeichen funktioniert, aber nicht nicht Farben, Fenster, Zeilen einfügen etc. RK testet eigentlich nur die Tastatureingabe, interressanter (und deshalb auch im 1. Beitrag genannt) wäre crtdemo.

Aber immerhin habe ich ja schon die Info, daß die Unit unter XE kompiliert werden kann.

Danke und Gruß
Gammatester
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Hilfe bei Delphi-CRT-Unit für XE/2

  Alt 22. Jan 2013, 08:43
[... Heißt das, das crtdemo nicht funktioniert oder hast Du es nicht getestet? Da es noch ein altes Original von Borland aus BP7-Zeiten ist, hat es noch die PAS-Extension. Also einfach in crtdemo.dpr umbennen.
Ich hatte es schlichtweg nicht getestet.

Grüße
Klaus
Klaus
  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 20:21 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz