ich1506 hat folgendes geschrieben: |
Hallo!
Ich wollte ein Label haben, dass am Besten eine feste Buchstabenbreite hat, doch mit jeder beliebigen Schrift (also nicht nur z.B Courier).
Aber mit Label1.Font.Pitch:=fpFixed funktioniert das ja nicht immer.
Also es würde auch erstmal reichen, wenn einfach zwischen den Zeichen etwas mehr Platz ist.
Aber mit setTextCharacterExtra(Label1.Font.Handle,5); tut sich auch nix an der Schrift.
Wer kann mir helfen? |
Hallo,
Funktionen wie SetTextCharacterExtra sollten mit der Markierung NID versehen sein - Not in Delphi. Dazu braucht man einen Windows-DC und muss den Text mit der entsprechenden Windows-Fuktion ausgeben. Die Labelkomponente dagegen setzt den Font wie sie ihn gespeichert hat (da steht nix von extra spacings) und schreibt den Text, daher läuft so etwas wie SetTextCharacterExtra völlig an der Komponente vorbei.
Ein Font ist fixed oder eben nicht, man kann die Eigenschaft nicht setzen, sondern nur den Font danach auswählen.
Ich sehe da nur die ganz grosse Lösung: OwnerDraw bzw. Paint abfangen und die Buchstaben einzeln in konstantem Abstand schreiben.
Gruss Reinhard
Nachtrag: der Aufruf war sowieso falsch, SetTextCharacterExtra braucht das DC-Handle, nicht den Font.