AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Fastreport, Variable Fontgrösse abhängig von Anzahl der Buchstaben
Thema durchsuchen
Ansicht
Themen-Optionen

Fastreport, Variable Fontgrösse abhängig von Anzahl der Buchstaben

Ein Thema von Luckner · begonnen am 1. Okt 2021 · letzter Beitrag vom 6. Okt 2021
Antwort Antwort
Seite 1 von 2  1 2      
Luckner

Registriert seit: 28. Nov 2006
Ort: Berlin
418 Beiträge
 
Delphi 7 Enterprise
 
#1

Fastreport, Variable Fontgrösse abhängig von Anzahl der Buchstaben

  Alt 1. Okt 2021, 10:31
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:
procedure Doppel7OnBeforePrint(Sender: TfrxComponent);
begin
  if Length(Doppel7) > 10 then
    Doppel7.Font.Size := 8
  else
    Doppel7.Font.Size := 10;
end;
ändert nichts.

Die nächste Routine macht Fehler beim Aufruf.
Delphi-Quellcode:
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;
"Doppel7" ist die entsprechende Variable. Die Übergabe des Inhaltes funktioniert. Formatierung jedoch nicht.

Gruß, Luckner

Geändert von Luckner ( 1. Okt 2021 um 11:06 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Olli73
Olli73

Registriert seit: 25. Apr 2008
Ort: Neunkirchen
662 Beiträge
 
#2

AW: Fastreport, Variable Fontgrösse abhängig von Anzahl der Buchstaben

  Alt 1. Okt 2021, 11:05
Meinst du vielleicht "if Length(Doppel7.Value) > 10 then ..."
  Mit Zitat antworten Zitat
Luckner

Registriert seit: 28. Nov 2006
Ort: Berlin
418 Beiträge
 
Delphi 7 Enterprise
 
#3

AW: Fastreport, Variable Fontgrösse abhängig von Anzahl der Buchstaben

  Alt 1. Okt 2021, 11:14
Jetzt habe ich es so geändert.
Delphi-Quellcode:
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
Keine Fehler, jedoch auch keine Änderung der Schrift.
  Mit Zitat antworten Zitat
Benutzerbild von Olli73
Olli73

Registriert seit: 25. Apr 2008
Ort: Neunkirchen
662 Beiträge
 
#4

AW: Fastreport, Variable Fontgrösse abhängig von Anzahl der Buchstaben

  Alt 1. Okt 2021, 11:16
Springt er in die richtige Bedingung?
  Mit Zitat antworten Zitat
Benutzerbild von Olli73
Olli73

Registriert seit: 25. Apr 2008
Ort: Neunkirchen
662 Beiträge
 
#5

AW: Fastreport, Variable Fontgrösse abhängig von Anzahl der Buchstaben

  Alt 1. Okt 2021, 11:19
Und was für ein Typ hat "Doppel7"?
  Mit Zitat antworten Zitat
Benutzerbild von Olli73
Olli73

Registriert seit: 25. Apr 2008
Ort: Neunkirchen
662 Beiträge
 
#6

AW: Fastreport, Variable Fontgrösse abhängig von Anzahl der Buchstaben

  Alt 1. Okt 2021, 11:23
Ist vielleicht "ParentFont" true?
  Mit Zitat antworten Zitat
Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.429 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Fastreport, Variable Fontgrösse abhängig von Anzahl der Buchstaben

  Alt 1. Okt 2021, 12:05
Wenn diese Prozedur eine Methode der Reportklasse sein soll, müsste dann nicht der Klassenname davor stehn?
Delphi-Quellcode:
procedure Txxxxx.Doppel7OnBeforePrint(Sender: TfrxComponent);
begin
Ist das tatsächlich der Fall und du hast das lediglich unterschlagen, ist die Methode dem Ereignis der Komponente zugewiesen?
Entweder bereits in der Entwicklungszeit oder alternativ zur Laufzeit:
Delphi-Quellcode:
{zur Laufzeit}
Doppel7.OnBeforePrint := Doppel7OnBeforePrint;
Wenn du einen Breakpoint in die Methode setzt, wird die Methode aufgerufen und hält das Programm dann dort an?

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".
  Mit Zitat antworten Zitat
Frickler

Registriert seit: 6. Mär 2007
Ort: Osnabrück
563 Beiträge
 
Delphi XE6 Enterprise
 
#8

AW: Fastreport, Variable Fontgrösse abhängig von Anzahl der Buchstaben

  Alt 1. Okt 2021, 17:42
Wenn diese Prozedur eine Methode der Reportklasse sein soll, müsste dann nicht der Klassenname davor stehn?
Delphi-Quellcode:
procedure Txxxxx.Doppel7OnBeforePrint(Sender: TfrxComponent);
begin
Wenn er das in Delphi macht, ja. Aber in der Pascal-Scriptsprache von Fastreport stehen vor den Methoden keine Klassennamen.
  Mit Zitat antworten Zitat
Luckner

Registriert seit: 28. Nov 2006
Ort: Berlin
418 Beiträge
 
Delphi 7 Enterprise
 
#9

AW: Fastreport, Variable Fontgrösse abhängig von Anzahl der Buchstaben

  Alt 2. Okt 2021, 06:36
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

Geändert von Luckner ( 2. Okt 2021 um 11:17 Uhr)
  Mit Zitat antworten Zitat
Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.429 Beiträge
 
Delphi 10.4 Sydney
 
#10

AW: Fastreport, Variable Fontgrösse abhängig von Anzahl der Buchstaben

  Alt 2. Okt 2021, 14:56
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;
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 14:57 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