Einzelnen Beitrag anzeigen

Kurt Wallander

Registriert seit: 11. Mai 2020
Ort: Freiberg
35 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: ThousansSeparator - nur ein Mythos?

  Alt 14. Apr 2022, 18:54
Hallo Uwe,
vielen Dank für deine Anregungen. Habe sie sogleich in mein Programm eingebaut. Die Ausgabe mit dem 1000er-Trennzeichen erfolgt immer in einer if ... else if Struktur, die insgesamt 6 Ebenen umfaßt. Und dort wird jeweils die erste der möglichen Outputs angekrittelt mit AFormatSettings als unbekannt. Aber das ganze kann nicht kompiliert werden.
Nun habe ich dein Konsolen-Beispiel in eine VCL-Fassung gebracht und kann alles normal übersetzen, linken und exekutieren. Nun erscheint der Runtime-Error 217 (bei der Adresse 619834). alles komisch.

Code:
unit Test_1000_Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs;

type
  TForm1 = class(TForm)
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}


var
  AFormatSettings: TFormatSettings;

const
  Zahl: Extended = 1234567890;

begin
  try
    AFormatSettings := TFormatSettings.Create;
    AFormatSettings.ThousandSeparator := #32; // Oder auch so ' '
    Writeln(Format('%n', [Zahl], AFormatSettings));
    Readln;
  except
    on E: Exception do
      Writeln(E.ClassName, ': ', E.Message);
  end;
end.
Vielleicht kommt der Fehler vom writeln-Befehl. Welchen Message-Dialog müßte da stehen?
Und noch eine andere Frage. In meinen Programm verwende ich einen Aufzählungstyp
Code:
type
   TZ = (ab,bc,cd,de,ef,fg)
Nun wollte ich zu Testzwecken den aktuellen Wert von TZ ausgeben. Es scheint aber kein Format dafür zu geben. Oder ist so ein Konstrukt ein integer-Subtyp?
Einen fleißigen Osterhasen (für die Enkel).
Kurt
  Mit Zitat antworten Zitat