Hallo,
von Delphi her kenne ich die Funktion LongMonthNames die ich jetzt mit FPC 2.6.4 in einem StringGrid übernommen hatte.
Ein Hinweis zeigt mir an, dass diese Methode veraltet (deprecated) ist.
Die Monatsnamen werden mir aber alle in der ersten Spalte des Grids in deutsch angezeigt.
Es gibt aber eine Besonderheit beim Monat März:
der Umlaut ä wird nicht angezeigt, stattdessen wird ein ? ausgegeben, so M?rz.
1. Frage: Ist das jetzt ein Fehler der aus der veralterten Funktion entstanden sein könnte?
2. Frage: Wenn ja, müsste ich ein neues Array (Monatsnamen) deklarieren?
3. Frage: Wie würde eine kleines Code-Beispiel für die erste Spalte eines Grid mit den deutschen Monatsnamen aussehen?
Oder kann es andere Ursachen haben wie z.B. Utf-8 o.ä. ?
___________________________________________
Windows10 Pro - amd64 - Lazarus 1.4.2 FPC 2.6.4
Danke wenn mir jemand helfen könnte oder Hinweise zu Hilfen mitteilt.
Gruß
derWitte
Lange Monatsnamen im StringGrid
-
- Beiträge: 5
- Registriert: Di 15. Sep 2015, 13:23
- OS, Lazarus, FPC: W10, FPC 2.6.4
- CPU-Target: 64Bit
Lange Monatsnamen im StringGrid
- Dateianhänge
-
- Stringgrid1.Cells[x0,y].PNG (4.09 KiB) 557 mal betrachtet
Re: Lange Monatsnamen im StringGrid
Die Systemeinstellungen sind seit einiger Zeit im Record FormatSettings (oder DefaultFormatSettings) zusammengefasst, da findest du auch die Monatsnamen und z.B. das Dezimaltrennzeichen.
Das falsche Zeichen für das "ä" im März rührt bei deiner (veralteten) Lazarus/fpc-Version davon her, dass der alte fpc die Zeichen aus der System-Codepage genommen hat, Lazarus dagegen aus utf8, eine automatische Umwandlung fand nicht statt. Wenn du die Funktion SysToUtf8 aufrufst, kannst du das nachholen:
Oder du upgradest auf das demnächst herauskommende Lazarus 1.6 mit dem neuen fpc 3.0, bei dem die Strings einfacher zu handhaben sind.
Das falsche Zeichen für das "ä" im März rührt bei deiner (veralteten) Lazarus/fpc-Version davon her, dass der alte fpc die Zeichen aus der System-Codepage genommen hat, Lazarus dagegen aus utf8, eine automatische Umwandlung fand nicht statt. Wenn du die Funktion SysToUtf8 aufrufst, kannst du das nachholen:
Code: Alles auswählen
var
i: Integer;
begin
for i:=1 to 12 do
StringGrid1.Cells[0, i] := SysToUtf8(DefaultSettings.LongMonthNames[i]);
end;
-
- Beiträge: 5
- Registriert: Di 15. Sep 2015, 13:23
- OS, Lazarus, FPC: W10, FPC 2.6.4
- CPU-Target: 64Bit
Re: Lange Monatsnamen im StringGrid
Hallo wp_xyz!
Danke für die schnelle Antwort.
Hat wunderbar geklappt.
Musste nur noch die Methode ergänzen auf DefaultFormatSettings(LongMonthNames).
Gruß derWitte
Danke für die schnelle Antwort.
Hat wunderbar geklappt.
Musste nur noch die Methode ergänzen auf DefaultFormatSettings(LongMonthNames).
Gruß derWitte