Einzelnen Beitrag anzeigen

Benutzerbild von alphaflight83
alphaflight83

Registriert seit: 5. Jun 2008
Ort: Würzburg
148 Beiträge
 
Delphi 12 Athens
 
#4

AW: Rave Reports Schriftgröße anpassen

  Alt 8. Jun 2010, 17:32
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
  Mit Zitat antworten Zitat