Seite 1 von 2
drawtext rechts ausrichten
Verfasst: 23.08.2005 11:49
von sobi
Hallo Jungs und Mädels,
wie ist es möglich, einen Text über "DrawText" rechts auszurichten?
Liebe Grüße,
Simon
Verfasst: 23.08.2005 12:01
von Pelagio
Hallo sobi,
versuch es doch mal mit Locate, habe leider keine Zeit für längere ausführung, daher ein Codesnipsel als Beispiel:
Code: Alles auswählen
If OpenWindow(0, 10, 10, 100, 100, #PB_Window_SystemMenu|#PB_Window_ScreenCentered, "PureBasic Window")
If StartDrawing(WindowOutput())
Locate(10, 10): DrawText("Teststring")
Locate(48, 30): DrawText("Test")
Locate(40, 50): DrawText("String")
StopDrawing()
EndIf
Repeat
myEvent.l = WaitWindowEvent()
Until (myEvent=#PB_Event_CloseWindow)
EndIf
Verfasst: 23.08.2005 12:02
von Tafkadasom2k5
Als totaler Schwachkopf und Anfänger rate ich mal....
....mit Leerzeichen?
Klappt bestimmt-is bloss umständlich wei dus ausprobioeren musst....
Ich hab ansonsten keine Ahnung....aber versuche dir immerhin zu helfen....

Gr33tz
Tafkadasom2k5

Verfasst: 23.08.2005 12:05
von Green Snake
habs nicht probiert, sollte aber damit zu berechnen sein
Code: Alles auswählen
TextLength()
Syntax
Länge = TextLength(Text$)
Beschreibung
Ermittelt die Länge (in Pixel) des angegebenen Strings, der auf dem aktuellen Ausgabekanal mittels des aktuellen Zeichensatzes dargestellt wird. Diese Funktion ist sehr nützlich, um die tatsächliche Länge eines mit einem nicht-proportionalen Zeichensatz dargestellten Strings zu ermitteln.
Unterstützte OS
All
ps: da die hilfe eine hilfe ist, hilft sie bestimmt immer, wenn jemand hilfe von der hilfe braucht^^
Verfasst: 23.08.2005 12:14
von sobi
Dankeschön, damit müsste es funktionieren!
@Pelagio
danke für deine Antwort. Allerdings brauche ich ihn rechts ausgerichtetet nicht links.
@Tafkadasom2k5
Is ein bisschen Umständlich und wenn ich nur zwei Zeilen hätte, würde ich das auch so machen, aber bei mehr Zeilen...?

[außerdem ist das "nicht so schön]
Liebe Grüße,
Simon
Re: drawtext rechts ausrichten
Verfasst: 23.08.2005 12:34
von sobi
sobi hat geschrieben:
wie ist es möglich, einen Text über "DrawText" rechts auszurichten?
Danke für jeden Hinweis. Ich habe das so gelöst:
Code: Alles auswählen
Procedure DT_rechts(Text$, x, y)
l=TextLength(Text$)
Locate(x-l,y)
DrawingFont(LoadFont (2, "Arial", 10))
DrawText(Text$)
EndProcedure
Verfasst: 23.08.2005 13:11
von shadow
Hmm, um die Länge des Textes in Pixel genau ermitteln zu können, musst du den Font vorher laden und als Zeichenfont setzen

Verfasst: 23.08.2005 13:23
von DarkDragon
shadow hat geschrieben:Hmm, um die Länge des Textes in Pixel genau ermitteln zu können, musst du den Font vorher laden und als Zeichenfont setzen

Er hats doch mittels
gelöst.
Verfasst: 23.08.2005 13:25
von shadow
ja, aber da wird die länge mit dem aktuell geladenen font ermittelt. erst nach dem TextLength() lädt er ja den font und gibt ihn aus. d. h. wenn er von Courier auf Verdana wechselt stimmt die länge nicht mehr.
so meine ich das:
Code: Alles auswählen
Procedure DT_rechts(Text$, x, y)
DrawingFont(LoadFont (2, "Arial", 10))
l=TextLength(Text$)
Locate(x-l,y)
DrawText(Text$)
EndProcedure
Verfasst: 23.08.2005 13:27
von DarkDragon
shadow hat geschrieben:ja, aber da wird die länge mit dem aktuell geladenen font ermittelt. erst nach dem TextLength() lädt er ja den font und gibt ihn aus. d. h. wenn er von Courier auf Verdana wechselt stimmt die länge nicht mehr.
so meine ich das:
Code: Alles auswählen
Procedure DT_rechts(Text$, x, y)
DrawingFont(LoadFont (2, "Arial", 10))
l=TextLength(Text$)
Locate(x-l,y)
DrawText(Text$)
EndProcedure
aso, ja da hast du recht.