Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Prism Länge eines Strings auf dem Bildschirm? (https://www.delphipraxis.net/80896-laenge-eines-strings-auf-dem-bildschirm.html)

gfjs 17. Nov 2006 08:06


Länge eines Strings auf dem Bildschirm?
 
Guten Morgen, Allerseits.

Ich möchte gerne die Länge eines Strings auf dem Bildschirm feststellen. Der Grund dafür ist, dass ich die Breite einer TextBox danach festlegen will, welche Bildschirmauflösung, welcher Font und welche Schriftgröße verwendet wird.

Beispielsweise:

1680 x 1050, Courier New, Schriftgröße 10 (Widescreen)
1280 x 1024, Courier New, Schriftgröße 10
1280 x 1024, Arial, Schriftgröße 9

Ist das möglich - und wenn ja, wie?

Wie immer bin ich dankbar für Tipps jeder Art.

Gruß Jürgen.

hsg 17. Nov 2006 08:08

Re: Länge eines Strings auf dem Bildschirm?
 
schau dir mal
Delphi-Quellcode:
Canvas.TextWidth()
an

gfjs 17. Nov 2006 10:00

Re: Länge eines Strings auf dem Bildschirm?
 
Vielen Dank, hsg.

Das sieht mir ja stark nach Grafik-Programmierung aus. Damit habe ich mich bisher noch nie beschäftigt. Ich vermute allerdings, dass sich Canvas auf VCL-Anwendungen bezieht, da ich unter .NET nichts dazu gefunden habe.

Immerhin ist es mir schon gelungen, mit
Delphi-Quellcode:
  e.Graphics.DrawString(str,Panel1.Font,Brushes.black,10,10);
einen String auszugeben. Wie ich auf die Breite des Strings komme, habe ich noch nicht herausgefunden. Vielleicht kannst Du mir da noch einen Tipp geben?

Was ich letztendlich möchte ist: TextBox1.Width := "Breite des Strings auf dem Bildschirm"

Gruß Jürgen.

Jürgen Thomas 17. Nov 2006 10:05

Re: Länge eines Strings auf dem Bildschirm?
 
Hallo Jürgen,

es geht direkter. (Du hast recht: Canvas bezieht sich auf VCL; unter NET ist Graphics zu verwenden; und Du erhältst Zugriff auf Graphics über entsprechende Ereignisse.)

Dein Ziel erreichst Du über Delphi-Referenz durchsuchenGraphics.MeasureString(). Die Bildschirmauflösung spielt keine Rolle, weil sowieso für alles Pixel berechnet werden.

Gruß Jürgen

hsg 17. Nov 2006 10:21

Re: Länge eines Strings auf dem Bildschirm?
 
Sorry, hatte nicht gesehen, dass es um .NET geht :wall:

Canvas.TextWidth() ist der VCL-Wrapper für die WinAPI-Funktion GetTextExtentPoint32.


Kenne mich leider nicht in .NET au, kurzes Suchen lieferte mir folgendes Stichwort:
Delphi-Quellcode:
Graphics.MeasureString
das scheint es zu machen.

Tja: Jürgen Thomas war wohl schneller als ich :thumb:
Gruß
Jörg

gfjs 17. Nov 2006 10:30

Re: Länge eines Strings auf dem Bildschirm?
 
Hallo, Jürgen
hallo, hsg.

Vielen Dank für Eure Hinweise - auf Graphics.MeasureString war ich auch schon gestoßen, konnte aber bisher noch nichts damit anfangen. Wie gesagt: Erster Versuch mit Grafik-Programmierung. Ich werde mal versuchen, damit zurecht zu kommen.

Gruß Jürgen.

PS. Hallo, Jürgen. Schön, mal wieder von Dir zu hören.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:31 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