AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Textgrösse auf Fenstergrösse anpassen
Thema durchsuchen
Ansicht
Themen-Optionen

Textgrösse auf Fenstergrösse anpassen

Ein Thema von needatip · begonnen am 11. Jan 2004 · letzter Beitrag vom 11. Jan 2004
Antwort Antwort
Seite 1 von 2  1 2      
needatip

Registriert seit: 11. Jan 2004
246 Beiträge
 
Delphi 10.4 Sydney
 
#1

Textgrösse auf Fenstergrösse anpassen

  Alt 11. Jan 2004, 14:44
Hallo, wer kann mir helfen?

Ich möchte einen Monitor als Nummernanzeige verwenden. d.h. die Nummern, die aus einer Datenbank kommen, sollen so gross wie das jeweilige Fenster angezeigt werden. Die Nummern haben je nach dem 1-4 Stellen.
Die Textausgabe soll sich in Abhängigkeit der String-Länge an das aktuelle Fenster anpassen.
Bei einer Auflösung von 800x600 soll eine 1-stellige Nummer in der max. Größe gezeichnet werden. Wenn dann die Nummern 2-stellig werden halt eben etwas kleiner, damit sie ins Fenster passt. (usw. bei 3 u. 4 Stellen).

Wäre euch dankbar für einen Code-Schnipsel. Versuche seit Tagen weiterzukommen, muss aber passen.
  Mit Zitat antworten Zitat
Giantics

Registriert seit: 17. Nov 2003
Ort: Langenbrettach
99 Beiträge
 
#2

Re: Textgrösse auf Fenstergrösse anpassen

  Alt 11. Jan 2004, 15:30
Mit den Funktionen TextWidth und TextHeight von TCanvas kannst du die Textbreite bzw. Höhe eines best. Textes mit eingestellter Schrift bekommen.
d.h. mach eine Schleife, in der du jedes mal die Schriftgröße kleiner machst, und sobald es passt, kannste es zeichen.
Also quasi so ungefähr:
Delphi-Quellcode:
for i:=100 downto 1 do
begin
  Canvas.Font.Size:=i;
  if ((Canvas.TextHeight(TheText)<TheHeight) and (Canvas.TextWidth(TheText)<TheWidth)) then
  break;
end;
T. Dieffenbach
"Delphi"-Version: Lazarus 0.9.22

Was ist der Unterschied zwischen Bill Gates und Gott?
-->Gott hält sich nicht für Bill Gates!
  Mit Zitat antworten Zitat
woki

Registriert seit: 29. Mär 2003
563 Beiträge
 
Delphi 2006 Architect
 
#3

Re: Textgrösse auf Fenstergrösse anpassen

  Alt 11. Jan 2004, 16:10
Hi,

vielleicht hilft Dir ja auch die Methode ScaleBy weiter.

Grüsse
Woki
  Mit Zitat antworten Zitat
needatip

Registriert seit: 11. Jan 2004
246 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Textgrösse auf Fenstergrösse anpassen

  Alt 11. Jan 2004, 16:29
Vielen Dank, das ging ja schnell;
Leider bin ich zu blöd um das umzusetzen.
Hab zum Beispiel ein Formular mit einem Label darauf mit dem Text '1234'.

Wäre dankbar für weitere Hilfe.
  Mit Zitat antworten Zitat
Giantics

Registriert seit: 17. Nov 2003
Ort: Langenbrettach
99 Beiträge
 
#5

Re: Textgrösse auf Fenstergrösse anpassen

  Alt 11. Jan 2004, 16:45
Zitat:
Hab zum Beispiel ein Formular mit einem Label darauf mit dem Text '1234'.
Da musste gar nicht mehr so viel ändern:
Delphi-Quellcode:
for i:=100 downto 1 do
begin
  Canvas.Font.Size:=i;
  if ((Canvas.TextHeight('1234')<ClientHeight) and (Canvas.TextWidth('1234')<ClientWidth)) then
  break;
end;
Label1.Font.Size:=i;
T. Dieffenbach
"Delphi"-Version: Lazarus 0.9.22

Was ist der Unterschied zwischen Bill Gates und Gott?
-->Gott hält sich nicht für Bill Gates!
  Mit Zitat antworten Zitat
needatip

Registriert seit: 11. Jan 2004
246 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: Textgrösse auf Fenstergrösse anpassen

  Alt 11. Jan 2004, 16:54
Super. Kannst Du mir noch beibringen wie man das ganze dann noch zentriert auf dem Screen ausgibt? - Danke im voraus.
  Mit Zitat antworten Zitat
Giantics

Registriert seit: 17. Nov 2003
Ort: Langenbrettach
99 Beiträge
 
#7

Re: Textgrösse auf Fenstergrösse anpassen

  Alt 11. Jan 2004, 17:01
Zitat von needatip:
Super. Kannst Du mir noch beibringen wie man das ganze dann noch zentriert auf dem Screen ausgibt? - Danke im voraus.
Ich würde sagen so:
Delphi-Quellcode:
  Label1.Left:=(ClientWidth-Label1.Width) div 2;
  Label1.Top:=(ClientHeight-Label1.Height) div 2;
T. Dieffenbach
"Delphi"-Version: Lazarus 0.9.22

Was ist der Unterschied zwischen Bill Gates und Gott?
-->Gott hält sich nicht für Bill Gates!
  Mit Zitat antworten Zitat
needatip

Registriert seit: 11. Jan 2004
246 Beiträge
 
Delphi 10.4 Sydney
 
#8

Re: Textgrösse auf Fenstergrösse anpassen

  Alt 11. Jan 2004, 17:19
Zitat von Giantics:
Zitat von needatip:
Super. Kannst Du mir noch beibringen wie man das ganze dann noch zentriert auf dem Screen ausgibt? - Danke im voraus.
Ich würde sagen so:
Delphi-Quellcode:
  Label1.Left:=(ClientWidth-Label1.Width) div 2;
  Label1.Top:=(ClientHeight-Label1.Height) div 2;
Verstehe das Prinzip, funzt aber noch nicht so ganz.
Habe es so versucht. Mein Fenster 800x600 und dann folgendes probiert.

procedure TForm1.Button1Click(Sender: TObject);
var i : Integer;
begin
Label1.Left:=(Form1.ClientWidth-Label1.Width) div 2;
Label1.Top:=(Form1.ClientHeight-Label1.Height) div 2;
for i:=400 downto 1 do
begin
Canvas.Font.Size:=i;
if ((Canvas.TextHeight(Label1.Caption)<Form1.ClientHe ight) and (Canvas.TextWidth(Label1.Caption)<Form1.ClientWidt h)) then
break;
end;
Label1.Font.Size:=i;
end;
end.
  Mit Zitat antworten Zitat
Giantics

Registriert seit: 17. Nov 2003
Ort: Langenbrettach
99 Beiträge
 
#9

Re: Textgrösse auf Fenstergrösse anpassen

  Alt 11. Jan 2004, 18:10
Top und Left darfste natürlich erst anpassen, nachdem die Größe festgelegt wurde (sonst zentriert er es für die Ausgangsschriftgröße).
Die beiden Zeilen also erst nach "Label1.Font.Size:=i;" einfügen.
Dann sollte es funktionieren.
T. Dieffenbach
"Delphi"-Version: Lazarus 0.9.22

Was ist der Unterschied zwischen Bill Gates und Gott?
-->Gott hält sich nicht für Bill Gates!
  Mit Zitat antworten Zitat
needatip

Registriert seit: 11. Jan 2004
246 Beiträge
 
Delphi 10.4 Sydney
 
#10

Re: Textgrösse auf Fenstergrösse anpassen

  Alt 11. Jan 2004, 19:04
Jetzt funktionierts. Hab aber jetzt noch eine Frage mit dem zugewiesenen Font.
Bei 'Font = Arial' schaut es gut aus, nur bei 'Font = Arial Black' schneidet es die Ziffern ab.
Vielleich kannst Du mir auch hier weiterhelfen.
Danke.
  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 20: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