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.... :lol:


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 :wink:

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

Code: Alles auswählen

Länge = TextLength(Text$) 
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 :wink:

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 :wink:
Er hats doch mittels

Code: Alles auswählen

TextLength(Text$)
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.