automatischer Zeilenumbruch nach x zeichen in Messagere....
automatischer Zeilenumbruch nach x zeichen in Messagere....
Hallo,
wie kann ich einen automatischen Zeilenumbruch in einem Messagerequester erzeugen?. Gibt es dafür einen Parameter?
Wichtig wäre für mich das er dann nicht das Wort trennt sondern, ab dem vorhergehenden Leerzeichen den Zeilenumbruch erzeugt, so wie in Word z.B
wie kann ich einen automatischen Zeilenumbruch in einem Messagerequester erzeugen?. Gibt es dafür einen Parameter?
Wichtig wäre für mich das er dann nicht das Wort trennt sondern, ab dem vorhergehenden Leerzeichen den Zeilenumbruch erzeugt, so wie in Word z.B
- Hroudtwolf
- Beiträge: 1416
- Registriert: 30.10.2004 23:33
- Kontaktdaten:
Code: Alles auswählen
MessageRequester ("Hallo","Nachricht1"+chr(10)+"Nachricht2"+chr(10)+"Nachricht3",0)
hallo
danke, aber das habe ich nicht gemeint.
Ich möchte das Abhängig von der Fensterbreite des Messagerequester machen.
Hintergrund: Zum Teil gibt es Informationen zu bestimmten Programmabläufen für den Anwender. Da diese Abhängig von der Sprache unterschiedlich lang ausfallen können, möchte ich immer mit einer definierten Fensterbreite arbeiten und der an der Stelle des letzen Leerzeichens, welches noch in der Zeile vorkommt umgebrochen werden.
Die Strings werden zusammengetragen von unterschiedlichen Übersetzern. Ich wollte mir die Arbeit sparen, das ich jeden String anpacken muss.
Es muss nicht unbedingt der Messagerequester sein. Den hatte ich nur ausgewählt , weil man hier sehr leicht Unterscheidungen zwischen INFO, Fragen, Warnhinweise (Ausrufezeichen) mit entsprechenden Symbolen erzeugen kann.
danke, aber das habe ich nicht gemeint.
Ich möchte das Abhängig von der Fensterbreite des Messagerequester machen.
Hintergrund: Zum Teil gibt es Informationen zu bestimmten Programmabläufen für den Anwender. Da diese Abhängig von der Sprache unterschiedlich lang ausfallen können, möchte ich immer mit einer definierten Fensterbreite arbeiten und der an der Stelle des letzen Leerzeichens, welches noch in der Zeile vorkommt umgebrochen werden.
Die Strings werden zusammengetragen von unterschiedlichen Übersetzern. Ich wollte mir die Arbeit sparen, das ich jeden String anpacken muss.
Es muss nicht unbedingt der Messagerequester sein. Den hatte ich nur ausgewählt , weil man hier sehr leicht Unterscheidungen zwischen INFO, Fragen, Warnhinweise (Ausrufezeichen) mit entsprechenden Symbolen erzeugen kann.
- Green Snake
- Beiträge: 1394
- Registriert: 22.02.2005 19:08
du willst also das der text IMMER centriert ist, und die msgbox IMMER gleich gross ist?
wenn ja, dan mach dir doch selber einen requester.
einfach ein fenster auf, text gadget drauf, und das gewünschte icon mitgeben
wenn du den "orginal" error ton, oder ienen anderen msgbox ton willst, dan such mal im code archiev, ich glaube dort hat es einen code, mit dem man die system sounds abspielen kann
wenn ja, dan mach dir doch selber einen requester.
einfach ein fenster auf, text gadget drauf, und das gewünschte icon mitgeben

wenn du den "orginal" error ton, oder ienen anderen msgbox ton willst, dan such mal im code archiev, ich glaube dort hat es einen code, mit dem man die system sounds abspielen kann

-.-"
@HoDam
Umgekehrt wird ein Schuh draus. Die Messagerequester passen sich automatisch an die Länge der Texte an.Ich möchte das abhängig von der Fensterbreite des Messagerequester machen.
Wenn Du aber aus optischen Gründen eine ungefähre Breite der Requester erreichen willst, dann könnte Dir der folgende Kode möglicherweise helfen.
Code: Alles auswählen
MText.s = "Das ist der Text, der an den Leerzeichen auf eine bestimmte Länge umgebrochen werden soll."
;MText.s = "1234 6789012 456 890123456 890123456 890 234567890 2345678901 345 78 0123456 8901234567890"
MTextL = Len(MText) : MTextU = 10 : Umbr = MTextU : lSpace = 1
For ix.b = 1 To MTextL
If Mid(MText, ix, 1) = Space(1)
If ix => Umbr
MText = Left(MText,lSpace - 1) + #LF$ + Right(MText, MTextL - lSpace)
Umbr + MTextU
EndIf
lSpace = ix ; Debug lspace
EndIf
Next
MessageRequester("Umbruchtest", MText, #MB_OK|#MB_ICONWARNING)
End
Man ist nie zu alt zum lernen, auch wenn man dabei manchmal alt aussieht!
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
@Green Snake
>> wenn du den "orginal" error ton, oder ienen anderen msgbox ton willst
z.B. so
>> wenn du den "orginal" error ton, oder ienen anderen msgbox ton willst
z.B. so
Code: Alles auswählen
MessageBeep_(#MB_ICONINFORMATION)
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

- Green Snake
- Beiträge: 1394
- Registriert: 22.02.2005 19:08
genau
hier sind noch die anderen.
*gibts eigentlich noch mehr?
*

Code: Alles auswählen
MessageBeep_(#MB_ICONINFORMATION)
Delay(1000)
MessageBeep_(#MB_ICONERROR)
Delay(1000)
MessageBeep_(#MB_ICONQUESTION)
Delay(1000)
MessageBeep_(#MB_ICONWARNING)
Delay(1000)
MessageBeep_(#MB_OK)
Delay(1000)
*gibts eigentlich noch mehr?

-.-"
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Hier noch die Icons:
Code: Alles auswählen
iconStop.l = LoadIcon_(WindowID(), #IDI_HAND)
iconQuestion.l = LoadIcon_(WindowID(), #IDI_QUESTION)
iconExclamation.l = LoadIcon_(WindowID(), #IDI_EXCLAMATION)
iconInformation.l = LoadIcon_(WindowID(), #IDI_ASTERISK)
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

- AndyMars
- Beiträge: 141
- Registriert: 08.09.2004 11:59
- Computerausstattung: Win11 Prof 64bit, i5-13500 @ 4.8 GHz, 32GB RAM, Nvidia RTX 4070 TI
- Wohnort: Zürich, Schweiz
- Kontaktdaten:
Zeilenumbruch auf bestimmte Länge
Das mit dem Zeilenumbruch hat mich interessiert - die obige Funktion hat aber noch einen Fehler... Ich hab mal einen anderen Ansatz versucht:
Edit 5.1.2006: Code noch etwas geändert
Code: Alles auswählen
Procedure.s _BreakLines(Text.s, Length.l)
;diese Methode ist vielleicht auch nicht perfekt - aber immerhin
For i=1 To CountString(Text," ")+1
s$=StringField(Text,i," ")
If Len(z$)+Len(s$)>Length
b$+#CRLF$+Trim(z$)
z$=""
EndIf
z$+s$+" "
Next
b$+#CRLF$+Trim(z$)
b$=Right(b$,Len(b$)-2) ;erstes #CRLF$ ist zu viel
ProcedureReturn b$
EndProcedure
If OpenWindow(0,100,100,600,400,#PB_Window_SystemMenu ,"Umbruchtest")
If CreateGadgetList(WindowID(0))
EditorGadget(0,5,5,590,390)
SetGadgetFont(0,LoadFont(0,"Courier",10,0))
EndIf
Else
MessageRequester("Umbruchtest", "Konnte Fenster nicht öffnen!")
End
EndIf
MText.s="It is costly, increasingly regulated in many industries, And as admissible in court as paper documents. Learn more about how you can reduce the cost of your email system And understand which emails are putting you at risk, While supporting compliance initiatives And legal discovery processes as part of a comprehensive"
MTextL = Len(MText) : MTextU = 30 : Umbr = MTextU : lSpace = 1
MText2.s=MText ;für später speichern
For i=1 To MtextU ;Lineal String
Lineal$+Str(i % 10)
Next
Lineal$=ReplaceString(Lineal$,"0"," ") ;find ich übersichtlicher
;erst die alte Methode
For ix.b = 1 To MTextL
If Mid(MText, ix, 1) = Space(1)
If ix => Umbr
MText = Left(MText,lSpace - 1) + #LF$ + Right(MText, MTextL - lSpace)
Umbr + MTextU
EndIf
lSpace = ix ; Debug lspace
EndIf
Next
SetGadgetText(0,Lineal$ + #LF$ + MText)
While WaitWindowEvent()<>#PB_Event_CloseWindow:Wend ;mit Fensterschliessen geht's weiter...
SetGadgetText(0,Lineal$ + #CRLF$ + _BreakLines(MText2, MTextU))
While WaitWindowEvent()<>#PB_Event_CloseWindow:Wend
End
Grüsse von AndyMars