Text brechen?

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

denial

Betreff: Text brechen?

BeitragSa, Jan 24, 2004 12:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

ich möchte einen Text in BB2D in einer bestimmten Breite darstellen, folglich muss der Text umgebrochen werden, damit er in die Breite passt. Wie könnte man das anstellen? Natürlich darf nur an Leerzeichen gebrochen werden.

Wenn nun zum Beispiel die max. Breite 300 Pixel sein darf, was mach ich, wenn ich in der Nähe der maximalen Breite kein Leerzeichen zum Brechen finde? Mhmm.. schwierig Wink

Wer hat Tipps / Ansätze?

Kryan

BeitragSa, Jan 24, 2004 12:43
Antworten mit Zitat
Benutzer-Profile anzeigen
ein bindestrich!!!

TheShadow

Moderator

BeitragSa, Jan 24, 2004 13:02
Antworten mit Zitat
Benutzer-Profile anzeigen
such nach leerzeichen - und dann prüfst du die länge des textes bis Leerzeichen - wenn es 300 übersteigt, dann musst du text bis vorherigen leerzeichen ausgeben - und text ab diesem leerzeichen ausscheiden - dann machst du mit dem ausgeschnittenen text weiter... bis du keinen text mehr hast
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2
 

denial

BeitragSa, Jan 24, 2004 14:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja stimmt, ich denk so'n Algo wärs beste. Ich werd diesen dann auch mal evtl. hier reinstellen, werd' nich der einzige sein, der sowas machen will.

Danke.

bruZard

BeitragSa, Jan 24, 2004 14:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Iss ein Buch und trinke danach Wurstwasser, klappt dann prima mit dem "Text brechen" Wink

Sorry für OT Smile
PIV 2,4GHz - 1GB DDR 333 - ATI Radeon9600 - WinXP - DX9.0c - BMax 1.14 - B3D 1.91 - 1280x1024x32

User posted image
 

girgl

BeitragSa, Jan 24, 2004 16:50
Antworten mit Zitat
Benutzer-Profile anzeigen
hi,
sowas in der art hab ich auch mal gemacht,nur dass keine leerzeichen berücksichtigt wurden.
Ging glaub ich irgendwie so.

Code: [AUSKLAPPEN]

Graphics 800,600,16,2
SetBuffer BackBuffer()


Function TextAusgeben(a$,maxZeichen,x,y)
Local Laenge=Len(a$)
Local c,d
Local i=1

Repeat
 Text x+c*8,y+d*8,Mid$(a$,i,1):Flip
  c=c+1
   If c Mod maxZeichen=0
    c=0:d=d+1
   EndIf
 i=i+1

Until i>Laenge

End Function


While Not KeyDown(1)



TexTausgeben("hdsfhkfdshfksfhf",4,100,100)

Flip
Wend
End


bin mir net sicher ob das jetz funktioniert aber so in etwa hab ich das mit dem zeilenumbruch gemacht.usst halt nur überlegen,wie du da smachst,das e da nen umbruch macht wo du willst,also mit leerzeichen etc.
  • Zuletzt bearbeitet von girgl am Sa, Jan 24, 2004 16:55, insgesamt 2-mal bearbeitet

EPS

BeitragSa, Jan 24, 2004 16:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Schau mal auf meiner Webseite http://www.East-Power-Soft.de unter Blitz 2D / Funktionen. Dort hab ich eine WordWrap Routine. Das sollte genau das sein was du suchts.

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group