Zeilenumbruch mit DrawText()
- Mok
- BotHunter
- Beiträge: 1484
- Registriert: 26.12.2005 14:14
- Computerausstattung: MSI GX780R
Intel Core i5-2410M
Nvidia GT 555M
Windows 7 Home Premium 64 bit - Wohnort:
Zeilenumbruch mit DrawText()
Hallo.
Ist es irgendwie möglich im DrawText()-Befehl einen Zeilenumbruch einzufügen? Ich mache gerade einen Splash-Screen und will während der Ladezeit einen "Tipp des Tages" anzeigen (welche in einem Tips.s() Array gespeichert sind). Da 100% der Texte über die Splash-Breite gehen, müsste ich jedesmal für einen Zeilenabsatz ein neues DrawText() aufrufen.
Gruß, Mok.
Ist es irgendwie möglich im DrawText()-Befehl einen Zeilenumbruch einzufügen? Ich mache gerade einen Splash-Screen und will während der Ladezeit einen "Tipp des Tages" anzeigen (welche in einem Tips.s() Array gespeichert sind). Da 100% der Texte über die Splash-Breite gehen, müsste ich jedesmal für einen Zeilenabsatz ein neues DrawText() aufrufen.
Gruß, Mok.
Win 7 Home Premium 64 bit | PureBasic 5.20 - x86 und x86-64 | Firefox [aktuelle stable-Version hier einfügen]
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
Re: Zeilenumbruch mit DrawText()
Wenn CHR(10) nicht funktioniert ( weiß ich nicht mehr ob das geht bei DrawText() ) dann wirst du für jede Zeile DrawText() aufrufen müssen... ich glaube das es nur so geht.
Gruß Andreas
Gruß Andreas
Re: Zeilenumbruch mit DrawText()
Native funktioniert das (noch) nicht, aber im Grunde genommen sollte dir folgender Code dabei helfen:
http://www.purebasic.fr/english/viewtop ... 12&t=35090
http://www.purebasic.fr/english/viewtop ... 12&t=35090
"Menschenskinder, das Niveau dieses Forums singt schon wieder!" — GronkhLP ||| "ich hogffe ihr könnt den fehle endecken" — Marvin133 ||| "Ideoten gibts ..." — computerfreak ||| "Jup, danke. Gruss" — funkheld
Re: Zeilenumbruch mit DrawText()
Code: Alles auswählen
Procedure DrawLBText(image, width, text.s)
line.s=""
y=5
x=5
StartDrawing(ImageOutput(0))
k = CountString(text," ")
For loop = 1 To k
If TextWidth(line + StringField(text,loop," "))<width
line = line + StringField(text,loop," ")+" "
Else
DrawText(x,y,line,$FFFFFF)
y+30
line=StringField(text,loop," ")+" "
EndIf
Next
StopDrawing()
EndProcedure
CreateImage(0,300,500)
DrawLBText(0, 200, "Ist es irgendwie möglich im DrawText()-Befehl einen Zeilenumbruch einzufügen? Ich mache gerade einen Splash-Screen und will während der Ladezeit einen 'Tipp des Tages' anzeigen (welche in einem Tips.s() Array gespeichert sind). Da 100% der Texte über die Splash-Breite gehen, müsste ich jedesmal für einen Zeilenabsatz ein neues DrawText() aufrufen.")
OpenWindow(0,0,0,300,500,"DrawText LineBreak",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
ImageGadget(0,0,0,300,500,ImageID(0))
Repeat:Until WaitWindowEvent()=#PB_Event_CloseWindow
Re: Zeilenumbruch mit DrawText()
Hallo Tom,
danke fürs Teilen, ich konnte dein Code gut gebrauchen. Wenn man bei der Procedure nach der For-Schleife
[quote="TomS"]
nur noch mit
ergänzt, ist alles perfekt!
Häns
danke fürs Teilen, ich konnte dein Code gut gebrauchen. Wenn man bei der Procedure nach der For-Schleife
[quote="TomS"]
Code: Alles auswählen
For loop = 1 To k
If TextWidth(line + StringField(text,loop," "))<width
line = line + StringField(text,loop," ")+" "
Else
DrawText(x,y,line,$FFFFFF)
y+30
line=StringField(text,loop," ")+" "
EndIf
Next
Code: Alles auswählen
line = line + StringField(text,loop," ")+" "
DrawText(x,y,line,$FFFFFF)

Häns
PB 5.6
Windows 7 Professional
Windows 7 Professional
Re: Zeilenumbruch mit DrawText()
da ist ein gewaltiger Bug in Code:
wie kommst du darauf, das alle Schriften gleich groß sind? Richtig wäre, hier die textheigth()-Funktion zu nutzen.
Code: Alles auswählen
y+30
CodeArchiv Rebirth: Deutsches Forum Github Hilfe ist immer gern gesehen!
Re: Zeilenumbruch mit DrawText()
@GPI: Hast du eigentlich nen Besen gefressen?
Ich komme überhaupt nicht drauf. Ich hab nur keine Lust eine simple Frage mit 100% ästhetischem Code zu beantworten. Zumal Mok sich beim letzten mal nicht einmal bedankt oder mitgeteilt hat, dass es ihm geholfen hat...
Er wird wohl selber draufkommen, dass was nicht stimmt, wenn er mit seiner Schrift einen Zeilenabstand von 2.5 oder auch von 0.3 bekommt.
Hab's zwar nicht gestestet, aber afair gibt TextHeight die genaue Höhe aus. Das heißt du hast dann gar keinen Zeilenabstand.
Richtig wäre dann TextHeight()+n
Ich komme überhaupt nicht drauf. Ich hab nur keine Lust eine simple Frage mit 100% ästhetischem Code zu beantworten. Zumal Mok sich beim letzten mal nicht einmal bedankt oder mitgeteilt hat, dass es ihm geholfen hat...
Er wird wohl selber draufkommen, dass was nicht stimmt, wenn er mit seiner Schrift einen Zeilenabstand von 2.5 oder auch von 0.3 bekommt.
Hab's zwar nicht gestestet, aber afair gibt TextHeight die genaue Höhe aus. Das heißt du hast dann gar keinen Zeilenabstand.
Richtig wäre dann TextHeight()+n
Re: Zeilenumbruch mit DrawText()
ne ein Clown. Mein Gott nicht immer alles auf die Goldwage legen.TomS hat geschrieben:@GPI: Hast du eigentlich nen Besen gefressen?
Ich würde dann ein TextHeight()*150/100 (oder sowas, wäre dann die halbe Höhe als Zeilenabstand) einstellenRichtig wäre dann TextHeight()+n

CodeArchiv Rebirth: Deutsches Forum Github Hilfe ist immer gern gesehen!
- Mok
- BotHunter
- Beiträge: 1484
- Registriert: 26.12.2005 14:14
- Computerausstattung: MSI GX780R
Intel Core i5-2410M
Nvidia GT 555M
Windows 7 Home Premium 64 bit - Wohnort:
Re: Zeilenumbruch mit DrawText()
Sofort nachholen...! Danke vielmals, hast mir wieder mal aus der Patsche geholfenTomS hat geschrieben:Zumal Mok sich beim letzten mal nicht einmal bedankt oder mitgeteilt hat, dass es ihm geholfen hat...

Win 7 Home Premium 64 bit | PureBasic 5.20 - x86 und x86-64 | Firefox [aktuelle stable-Version hier einfügen]
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl