AGB  ·  Datenschutz  ·  Impressum  







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

Alternative zu Canvas.TextWidth

Ein Thema von Alex_ITA01 · begonnen am 3. Dez 2004 · letzter Beitrag vom 3. Dez 2004
Antwort Antwort
Alex_ITA01

Registriert seit: 22. Sep 2003
1.123 Beiträge
 
Delphi 12 Athens
 
#1

Alternative zu Canvas.TextWidth

  Alt 3. Dez 2004, 11:25
Hallo erstmal,
ich wollte mal wissen, ob es eine Möglichkeit gibt, auf die "Textweite" zu kommen ohne Canvas.TextWidth?!
Ich befinde mich in einer Komponente die keine Canvas-Eigenschaft hat daher wollte ich wissen ob es da vielleicht irgendwas anderes gibt, oder eine eigene Funktion geschrieben werden muss?!

MFG Alex
Let's fetz sprach der Frosch und sprang in den Mixer
  Mit Zitat antworten Zitat
Benutzerbild von Orbmu2k
Orbmu2k

Registriert seit: 29. Nov 2004
Ort: Erfurt
254 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Alternative zu Canvas.TextWidth

  Alt 3. Dez 2004, 11:51
japp bau dir doch ne Funktion der du deinen Font§Text übegibst die das auf einen Selbsterstellten Canvas anwendet und die TextWidth auswertet und zurückgibt.
  Mit Zitat antworten Zitat
OLLI_T

Registriert seit: 13. Okt 2003
Ort: Nähe Wetzlar / Hessen
143 Beiträge
 
Delphi 5 Enterprise
 
#3

Re: Alternative zu Canvas.TextWidth

  Alt 3. Dez 2004, 12:18
Wozu Canvas? Die VCL nutzt auch nur die WINAPI Funktion: GetTextExtentPoint32
No Pain No Gain!
  Mit Zitat antworten Zitat
Alex_ITA01

Registriert seit: 22. Sep 2003
1.123 Beiträge
 
Delphi 12 Athens
 
#4

Re: Alternative zu Canvas.TextWidth

  Alt 3. Dez 2004, 13:23
GetTextExtentPoint32 <-- genau sowas suchte ich...
Wusste nur nicht wie die Funktion in der API heißt..
MFG ALex
Let's fetz sprach der Frosch und sprang in den Mixer
  Mit Zitat antworten Zitat
Benutzerbild von eddy
eddy

Registriert seit: 4. Jan 2003
Ort: Sachsen
573 Beiträge
 
Delphi 5 Professional
 
#5

Re: Alternative zu Canvas.TextWidth

  Alt 3. Dez 2004, 14:49
Hallo OLLI_T,

hast Du mal auch noch einen Programmschnipsel als Beispiel für die Benutzung? (Der Hilfetext hilft mir nicht so richtig weiter)

mfg
eddy
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Alternative zu Canvas.TextWidth

  Alt 3. Dez 2004, 14:52
Du wirst ein Fonthandle etc. verwenden müssen da die Textbreite von der Schriftart, -größe etc. abhängt. In der Codelib befindet sich dazu auch eine funktion der du den Text übergibst und ein TFont-Object
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#7

Re: Alternative zu Canvas.TextWidth

  Alt 3. Dez 2004, 15:10
Delphi-Quellcode:
function TrueFontWidth(fnt: TFont; const text:string): Integer;
var
   dc: hdc;
   tsize : Windows.TSize;
begin
   dc := GetDC(0);
   SelectObject(DC, fnt.Handle);
   GetTextExtentPoint32(dc, PChar(text), Length(text), tsize);
   ReleaseDC(0, DC);
   Result := tsize.cx;
end;
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von eddy
eddy

Registriert seit: 4. Jan 2003
Ort: Sachsen
573 Beiträge
 
Delphi 5 Professional
 
#8

Re: Alternative zu Canvas.TextWidth

  Alt 3. Dez 2004, 16:15
Hallo shmia,

vielen Dank für das Beispiel. Damit kann ich doch mehr anfangen.

mfg
eddy
  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 18:00 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