Zeilenumbruch in Textarea

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

Pebender

Betreff: Zeilenumbruch in Textarea

BeitragSa, März 15, 2014 17:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

ich möchte verschiedene Variabeln einlesen und in einem textarea wiedergeben.
Was ich hier im Forum über die Suche gefunden habe, funktioniert irgendwie nicht z.b CHR$(13)
Mein bisheriger Ansatz ist so:

kl ist global deklariert

Code: [AUSKLAPPEN]
Function Wachstum()
 Local gew$
 Local datum1$
 Local grosse$


 gew$=GadgetText(textfield4)
 datum$=GadgetText(textfield5)
 grosse=GadgetText(textfield6)
Print kl
kl=kl+1
If GadgetText(textfield4)="" Then  AppTitle$="Info"  Notify "Sie müssen ein Gewicht anngeben"
 ActivateGadget(textfield4)

If GadgetText(textfield5)="" Then AppTitle$="Info"  Notify "Sie müssen ein Datum anngeben"
 ActivateGadget(textfield5)

If GadgetText(textfield6)="" Then AppTitle$="Info"  Notify "Sie müssen eine Größe angeben"
 ActivateGadget(textfield6)

  SetGadgetText(listbox,kl + Chr$(9)+gew$ + Chr$(9)+ datum$ +Chr$(9)+ grosse$ +Chr$(13)+Chr$(10))
   SetGadgetText(textfield4,"")
    SetGadgetText(textfield5,"")
    SetGadgetText(textfield6,"")


BMax & MaxGUI

Xeres

Moderator

BeitragSa, März 15, 2014 17:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Ein Zeilenumbruch wird in BlitzMax mit "~n" escaped.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

Pebender

BeitragSa, März 15, 2014 18:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke,

jetzt wo du es sagst, viel es mir wie Schuppen vor die Augen.

mfg
BMax & MaxGUI

Pebender

BeitragSa, März 15, 2014 18:42
Antworten mit Zitat
Benutzer-Profile anzeigen
zu früh gefreut habe die folgende Zeile so umgeändert.

Code: [AUSKLAPPEN]
 SetGadgetText(listbox,kl + Chr$(9)+gew$ + Chr$(9)+ datum$ +Chr$(9)+ grosse$+ "~n")


passiert jedoch nichts.

Wenn ich daten eingebe und den dementsprechenden Button klicke, änder er zwar die Daten, aber überschreibt die altenb wieder in der ersten Zeile.

mfg
BMax & MaxGUI

Xeres

Moderator

BeitragSa, März 15, 2014 18:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Ein Textfield kann überhaupt nur eine Zeile Text enthalten - was du benutzen solltest ist die Textarea.
Was soll Chr$(9) darstellen? Nimm wenigstens aussagekräftige Variablennamen.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

Pebender

BeitragSa, März 15, 2014 18:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,

sorry aber es handelt sich um eine Textarea, und chr$(9) bewirkt einen horizontalen tabulatorvorschub

mfg
BMax & MaxGUI

Xeres

Moderator

BeitragSa, März 15, 2014 18:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Tabulatoren werden mit "~t" escaped.
Was für Daten werden wo überschrieben? Er schreibt das in die Textarea, was du da angibst.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

Pebender

BeitragSa, März 15, 2014 19:08
Antworten mit Zitat
Benutzer-Profile anzeigen
die Variabeln gew$, datum1$l grosse$ werden hintereinander in eine Zeile geschrieben,
diese Variabel werden in Textfeldern eingegeben und bei klick auf einen Button in das Textarea übernommen.
gebe ich erneut was in die Textfelder ein und klicke auf den Button, sollen die neuen eingaben eine Zeile tiefer geschrieben werden, aber sie überschreiben die vorherigen Daten in der ersten zeile.
Im Prinzip soll meine Textarea als ein Listenansicht dienen.


hoffe man versteht das so.

mfg
BMax & MaxGUI

Xeres

Moderator

BeitragSa, März 15, 2014 20:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Na wenn die Variable kl nicht den vorherigen wert der Textarea enthält, musst du erst den aktuellen Wert holen, die neue Zeile hinzufügen und das ganze als neuen Wert setzen.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)
 

PhillipK

BeitragSa, März 15, 2014 21:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Pebender hat Folgendes geschrieben:

Code: [AUSKLAPPEN]
 SetGadgetText(listbox,kl + Chr$(9)+gew$ + Chr$(9)+ datum$ +Chr$(9)+ grosse$+ "~n")



Bin ich der einzige, den der name "listbox" stutzig macht?

Meines wissens ist eine TextArea die einzige möglichkeit, mehrzeiler in blitzmax darzustellen.

Um dir zu zeigen, das es funktioniert:
BlitzMax: [AUSKLAPPEN]
SuperStrict

Import maxgui.drivers

Global window:TGadget = CreateWindow("TextArea test", 5, 5, 200, 400)

Global area1:TGadget = CreateTextArea(0, 0, ClientWidth(window), ClientHeight(window) / 2, window)
Global area2:TGadget = CreateTextArea(0, ClientHeight(window) / 2, ClientWidth(window), ClientHeight(window) / 2, window)


Local text:String = ""
For Local i:Int = 1 To 100
text = text + "Über Variable - Zeile " + i + "~n"
Next

SetGadgetText(area1, text)

For Local i:Int = 1 To 100
SetGadgetText(area2, GadgetText(area2) + "Über Funktion - Zeile " + i + "~n")
Next


Local timer:TTimer = CreateTimer(30)

While True
Local ev:Int = PollEvent()

While ev > 0
Select ev
Case EVENT_WINDOWCLOSE
End
End Select
ev = PollEvent()
Wend

WaitTimer(timer)
Wend

Pebender

BeitragSo, März 16, 2014 10:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

danke ihr zwei, jetzt funktioniert es. Ja das mit der Listbox ist etwas verwirrend, war vorher eine listbox, habe die durch eine Textarea ersetzt, und den Namen einfach gelassen.

aber kurz etwas anderes, dann muß ich nicht direkt einen neuen thread auf machen.

die funktionen wie "~n" und "~t" gibt es noch mehr in der Art, wo findet man die eventuell mit Beschreibung ??

mfg
BMax & MaxGUI
 

PhillipK

BeitragSo, März 16, 2014 11:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Hier mal eine schnelle suche:
http://en.wikibooks.org/wiki/B...e/Literals

Daraus folgt, das folgende existieren:
Zitat:
Escape sequence Equivalent character
~0 Null character (ascii code 0)
~t Tab character (ascii code 9)
~r Return character (ascii code 13)
~n Newline character (ascii code 10)
~q Quote character (ascii code 34)
~~ Tilde character (ascii code 126)


Falls er mehr sind, dann finde ich sie nicht^^ Merke, das "~" wie "\" in anderen sprachen oder zb bei RegEx fungiert. Darum muss man auch "~~" schreiben, wenn man ein normales "~" ausgeben möchte Smile

Pebender

BeitragSo, März 16, 2014 11:32
Antworten mit Zitat
Benutzer-Profile anzeigen
oha,

vielen Dank
BMax & MaxGUI

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group