AGB  ·  Datenschutz  ·  Impressum  







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

Länge eines Strings auf dem Bildschirm?

Ein Thema von gfjs · begonnen am 17. Nov 2006 · letzter Beitrag vom 17. Nov 2006
Antwort Antwort
gfjs

Registriert seit: 8. Dez 2005
Ort: Hohenkammer
298 Beiträge
 
Delphi 2006 Professional
 
#1

Länge eines Strings auf dem Bildschirm?

  Alt 17. Nov 2006, 09:06
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.
Mein neues Motto (von "Unbekannt"):
Gewinnen: Wenn Du kannst - Verlieren: Wenn Du musst - Aufgeben: NIE!
  Mit Zitat antworten Zitat
hsg

Registriert seit: 24. Apr 2006
Ort: Wustermark
354 Beiträge
 
Delphi 10.3 Rio
 
#2

Re: Länge eines Strings auf dem Bildschirm?

  Alt 17. Nov 2006, 09:08
schau dir mal
Canvas.TextWidth() an
  Mit Zitat antworten Zitat
gfjs

Registriert seit: 8. Dez 2005
Ort: Hohenkammer
298 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Länge eines Strings auf dem Bildschirm?

  Alt 17. Nov 2006, 11:00
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
  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.
Mein neues Motto (von "Unbekannt"):
Gewinnen: Wenn Du kannst - Verlieren: Wenn Du musst - Aufgeben: NIE!
  Mit Zitat antworten Zitat
Jürgen Thomas

Registriert seit: 13. Jul 2006
Ort: Berlin
750 Beiträge
 
#4

Re: Länge eines Strings auf dem Bildschirm?

  Alt 17. Nov 2006, 11:05
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
#D mit C# für NET, dazu Firebird
früher: Delphi 5 Pro, Delphi 2005 Pro mit C# (also NET 1.1)
Bitte nicht sauer sein, wenn ich mich bei Delphi-Schreibweisen verhaue; ich bin inzwischen an C# gewöhnt.
  Mit Zitat antworten Zitat
hsg

Registriert seit: 24. Apr 2006
Ort: Wustermark
354 Beiträge
 
Delphi 10.3 Rio
 
#5

Re: Länge eines Strings auf dem Bildschirm?

  Alt 17. Nov 2006, 11:21
Sorry, hatte nicht gesehen, dass es um .NET geht

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:
Graphics.MeasureString das scheint es zu machen.

Tja: Jürgen Thomas war wohl schneller als ich
Gruß
Jörg
  Mit Zitat antworten Zitat
gfjs

Registriert seit: 8. Dez 2005
Ort: Hohenkammer
298 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Länge eines Strings auf dem Bildschirm?

  Alt 17. Nov 2006, 11:30
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.
Mein neues Motto (von "Unbekannt"):
Gewinnen: Wenn Du kannst - Verlieren: Wenn Du musst - Aufgeben: NIE!
  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:34 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