Mit dieser Funktion (
Entwickler-Forum, ungetestet) könntest du die Länge des Texts vor der Übergabe checken.
Code:
uses graphics, windows;
function TextDimensions(const Text: String; Font: TFont = nil): TSize;
var
DC: hDC;
F: hFont;
R: TRect;
begin
F := 0;
DC := GetDC(0);
try
if Font <> nil then
F := SelectObject(
DC, Font.Handle);
if not GetTextExtentPoint32(
DC, PChar(Text), Length(Text), Result) then begin
Result.cx := 0;
Result.cy := 0;
end;
finally
if F <> 0 then
SelectObject(
DC, F);
ReleaseDC(0,
DC);
end;
end;
Die Referenzgröße nimmst du aus deinem Rave-Formular.
Wenn dann die ermittelte x-Komponente von TSize größer ist als dein Referenzwert, verringerst du die Schriftgröße.
Das machst du dann solange bis es passt ... oder so
Make me a sandwich! - What? Make it yourself. - Sudo make me a sandwich! - Okay