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