![]() |
Fastreport, Variable Fontgrösse abhängig von Anzahl der Buchstaben
Hallo,
möchte gerne beim Ausdruck mit Fastreport, eine Variable, die verschiedene Anzahl von Zeichen enhalten kann aber das Feld eine konst. Grösse hat, die Fontgrösse ändern, damit die Zeichen in dieses Feld passen. Mein Versuch:
Delphi-Quellcode:
ändert nichts.
procedure Doppel7OnBeforePrint(Sender: TfrxComponent);
begin if Length(Doppel7) > 10 then Doppel7.Font.Size := 8 else Doppel7.Font.Size := 10; end; Die nächste Routine macht Fehler beim Aufruf.
Delphi-Quellcode:
"Doppel7" ist die entsprechende Variable. Die Übergabe des Inhaltes funktioniert. Formatierung jedoch nicht.
procedure Doppel7OnBeforePrint(Sender: TfrxComponent);
begin if Length(<frxReportAufstellung."Doppel7">) > 10 then // Doppel7.Font.Size := 8 <frxReportAufstellung."Doppel7">.Font.Size := 8 else // Doppel7.Font.Size := 10; <frxReportAufstellung."Doppel7">.Font.Size := 10; end; Gruß, Luckner |
AW: Fastreport, Variable Fontgrösse abhängig von Anzahl der Buchstaben
Meinst du vielleicht "if Length(Doppel7.Value) > 10 then ..."
|
AW: Fastreport, Variable Fontgrösse abhängig von Anzahl der Buchstaben
Jetzt habe ich es so geändert.
Delphi-Quellcode:
Keine Fehler, jedoch auch keine Änderung der Schrift.
procedure Doppel7OnBeforePrint(Sender: TfrxComponent);
begin if Length(Doppel7.Value) > 10 then Doppel7.Font.Size := 6 // frxReportAufstellung.Variables.Variables['Doppel7'] else Doppel7.Font.Size := 10; //<frxReportAufstellung."Doppel7">.Font.Size := 10; end |
AW: Fastreport, Variable Fontgrösse abhängig von Anzahl der Buchstaben
Springt er in die richtige Bedingung?
|
AW: Fastreport, Variable Fontgrösse abhängig von Anzahl der Buchstaben
Und was für ein Typ hat "Doppel7"?
|
AW: Fastreport, Variable Fontgrösse abhängig von Anzahl der Buchstaben
Ist vielleicht "ParentFont" true?
|
AW: Fastreport, Variable Fontgrösse abhängig von Anzahl der Buchstaben
Wenn diese Prozedur eine Methode der Reportklasse sein soll, müsste dann nicht der Klassenname davor stehn?
Delphi-Quellcode:
Ist das tatsächlich der Fall und du hast das lediglich unterschlagen, ist die Methode dem Ereignis der Komponente zugewiesen?
procedure Txxxxx.Doppel7OnBeforePrint(Sender: TfrxComponent);
begin Entweder bereits in der Entwicklungszeit oder alternativ zur Laufzeit:
Delphi-Quellcode:
Wenn du einen Breakpoint in die Methode setzt, wird die Methode aufgerufen und hält das Programm dann dort an?
{zur Laufzeit}
Doppel7.OnBeforePrint := Doppel7OnBeforePrint; Offensichtlich geht es dir doch um die Länge des Textes, der dargestellt werden soll. Dann muss du dich auch auf den Text der Komponente beziehen. Nun die bereits gestellte spannende Frage: Von welchem Typ ist die Komponente? Davon hängt hab wie du den Text ermitteln kannst. Manche haben ein Property Text oder Caption oder ein Ereignis "OnGetText". |
AW: Fastreport, Variable Fontgrösse abhängig von Anzahl der Buchstaben
Zitat:
|
AW: Fastreport, Variable Fontgrösse abhängig von Anzahl der Buchstaben
Hallo und Danke für die Unterstützung. Das Feld ist "TrfxMemoView"-Feld. Es ist als Variable definiert. Die Übergabe des Inhaltes funktioniert. Ein "Parent Font" finde ich in meiner Version von Fastreport nicht. Ich werde jetzt noch die Variablen in spitze Klammern setzen.
Gruß, Luckner |
AW: Fastreport, Variable Fontgrösse abhängig von Anzahl der Buchstaben
TfrxMemoView hat ein Text-Property.
Das kann man abfragen, wenn die Anzahl der Zeichen im Text das Kriterium ist. Für die Änderung der Darstellung abhängig vom Inhalt ist das OnAfterData-Event vieleicht besser geeignet.
Delphi-Quellcode:
procedure Doppel7OnAfterData(Sender: TfrxComponent);
var iFontSize: Integer; begin if Length(TfrxMemoView(Sender).Text) > 10 then iFontSize := 8 else iFontSize := 10; TfrxMemoView(Sender).Font.Size := iFontSize; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:32 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz