Entwickler-Ecke
Multimedia / Grafik - Schriftgröße berechnen
mimi - So 29.06.03 18:16
Titel: Schriftgröße berechnen
Hallo,
habe da ein problem: wie kann ich unter openGL die schriftgröße berechnen? habe nur TFont zuverfügung :( ich nutze die GLXTreem komponenten.....
Moderiert von
Tino: Absätze entfernt.
Aya - So 29.06.03 19:40
Hi,
das hast du doch schonmal gefragt irgendwann, oder???
Und es geht immernoch genauso wie damals, entweder mit TCanvas.TextWidth oder mit GetTextExtentPoint32.
Au'revoir,
Aya~
mimi - So 29.06.03 20:02
ist möglich. und wie rufe ich diese fuktion auf? könntes du mal ein beispiel posten?
Moderiert von
Tino: Absätze entfernt.
Aya - So 29.06.03 20:25
Hi,
so:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| var S: SIZE; begin GetTextExtentPoint32(hDC,'Hallo',Length('Hallo'),S); end; |
Au'revoir,
Aya~
mimi - So 29.06.03 20:39
funktioniert leider nicht. der wer ist zu klein, der zurück gegeben wird :(
gibt es noch ander möglichkeiten ?
Tweafis - So 29.06.03 21:05
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| function getStringSize(DaFont: TFont; text: string): TSize; var tmpCanvas: TCanvas
begin tmpCanvas := TCanvas.Create(Self); try tmpCanvas.Font := DaFont; Result := tmpCanvas.textExtent(text); finally tmpCanvas.free; end; end; |
dann kannst du mit
getStringSize in ein TSize dingens reinschreiben und mit
cx und cy die größe abfragen...
mimi - So 29.06.03 22:52
danke, werde ich mal teste:)
mimi - Di 01.07.03 13:43
geht leider nicht. die größe íst immer noch zu klein. die ich rauß habe. gibt es noch andere möglichkeiten ?
Aya - Di 01.07.03 13:48
Ne, die ist schon richtig... nur wenn du mit z.B. glScale deine Schrift vergrößerst, oder mit glTranslate ganz nah herangehst, klappt das natürlich nicht... da müßtest du noch den ZoomFaktor etc mit einberechnen.
Wofür genau brauchst du es denn?
Au'revoir,
Aya~
mimi - Di 01.07.03 14:01
ich brauche es für eine menu steuerung.
ich gebe die menuItems per eine TFont komponenten von glxTRemm aus.
wenn ich jetzt die items makiere muss ich wissen wie lang die items sind damit ich erechnen kann wo die entpunkte sind, das habe ich so versucht:
MenuItems[0].x1:=MenuItems[0].x+size.cx
aber leider hatte er jetzt den maus curse nicht mehr verändert. als ich es wieder geänder hatte, hat alles problem los funktioniert:)
mimi - Do 03.07.03 13:09
geht immer noch nicht, gibt es keine andere winapi funktion ?
MathiasH - Do 03.07.03 19:55
du musst natürlich sämtliche skalierungen, die glxtreem und die Matrix machen, auch mit deinen pixelgrößen machen, denn auf dem weg zum screen wird etliche male skaliert:
1. bei der generierung der textur
2. bei der skalierung der matrix
3. bei der größe/position der QUADS, auf denen die textur ist
4. bei der rasterization(rendern)
erst, wenn du alle diese skalierungen nachmachst kriegst du vernünftige zahlen raus
Wie genau das geht kann ich dir leider auch net sagen
Io-sys/MathiasH
mimi - Do 03.07.03 19:59
gut, dann muss ich mir was andes einfallen lassen. um die endwerte von den texten rauß zu bekommen.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!