AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Rave Reports Schriftgröße anpassen

Ein Thema von DanielO · begonnen am 8. Jun 2010 · letzter Beitrag vom 8. Jun 2010
Antwort Antwort
DanielO

Registriert seit: 8. Jun 2010
2 Beiträge
 
#1

Rave Reports Schriftgröße anpassen

  Alt 8. Jun 2010, 11:49
Hallo alle zusammen,

ich habe einen Rave Report angelegt und will mit diesem Report Namensschilder in Kartengröße ausdrucken. Da jedoch manche Namen zu lange sind werden diese abgeschnitten. Wie kann ich es bewerkstelligen, dass bei Namen, die größer sind als die Druckfläche, die Schriftgröße verkleinert wird?
Vielen Dank für eure Antworten.
Daniel
  Mit Zitat antworten Zitat
rawi

Registriert seit: 16. Mär 2010
Ort: im Westen Deutschlands
38 Beiträge
 
Delphi 2010 Professional
 
#2

AW: Rave Reports Schriftgröße anpassen

  Alt 8. Jun 2010, 12:23
Hallo DanielO,

sieh dir mal das hier an.

Musst Du jetzt nur noch auf deinen Text umbauen.

mit var MeinText : TRaveCustomText; und MeinText.Font.Size := 78; sollte es funktionieren
Gruß Rainer
  Mit Zitat antworten Zitat
DanielO

Registriert seit: 8. Jun 2010
2 Beiträge
 
#3

AW: Rave Reports Schriftgröße anpassen

  Alt 8. Jun 2010, 15:26
Vielen Dank rawi,

leider ist das nicht die Lösung die ich gesucht habe. Das Problem ist, dass die Parameter dynamisch gesetzt werden. Will ich dann MeinText.width abfragen, erhalte ich leider immer nur die Breite des zuvor im Report gesetzten Rahmens und nicht die Breite des eigentlichen Texts. Gibt es eine Möglichkeit die "wahre" Breite des Textes abzufragen?
Danke vielmals.
  Mit Zitat antworten Zitat
Benutzerbild von alphaflight83
alphaflight83

Registriert seit: 5. Jun 2008
Ort: Würzburg
147 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Rave Reports Schriftgröße anpassen

  Alt 8. Jun 2010, 16: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
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:56 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz