Seite 1 von 1

Schriftgröße der Feldgöße anpassen

Verfasst: 03.02.2022, 19:09:54
von a.mann
Ich hatte insbesondere bei Etiketten Probleme den Textinhalt so in die Felder einzupassen, dass sich ein unabgeschnittener Test ergibt auch bei langen Artikelnummern oder Multiline-Texten.

:idea: In ein OnBeforeData-Ereignis des Labels habe ich folgendes eingefügt um das Problem zu beheben.

:arrow: Achtung: Wird in der while-Schleife ein Label Bezeichner vergessen oder falsch eingetippt, schickt man Taxmetall u.U. in eine Endlosschleife beim Druck oder der Vorschau.

Code: Alles auswählen

procedure *LabelName*OnAfterData(Sender: TfrxComponent);
begin
     *LabelName*.Font.Size := 9; //Gibt die Standardschriftgröße an
     while *LabelName*.CalcWidth > *LabelName*.width do *LabelName*.Font.Size := *LabelName*.Font.Size-1; //Verkleinert solange um eine Schriftgröße bis die Textlänge kleiner ist als die Feldlänge
 //  while *LabelName*.CalcHeight > *LabelName*.height do *LabelName*.Font.Size := *LabelName*.Size-1; //Verkleinert solange um eine Schriftgröße bis die Texthöhe kleiner ist als die Feldhöhe - macht nur bei Multilinetext Sinn
end;
Vllt. kann das nochjemand brauchen.