Seite 1 von 3

durchlaufender Text im Fenster

Verfasst: 18.04.2006 23:14
von der-sigi
Hallole

ich stehe gerade auf dem Schlauch, vielleicht kann mir ja jemand wieder runter helfen. ;)

Ich brauche ein Textfenster, nur lesbar. Wenn neuer Text kommt, dann soll der UNTEN angehängt werden. Wenn das Fenster voll ist, soll das Übrige OBEN raus wandern.

Nach langem Rumexperimentieren ging nur ein TextGadget, da das den Text umbricht (es kommen auch lange Zeilen vor). Damit das funktioniert, habe ich ein Array mit Anzahl der im Textfenster passenden Strings genommen und schiebe den Text in dem Array immer eines hoch und den neuen Text hinten an. Dann gebe ich alles auf einmal raus.

Das funktioniert soweit auch ganz klasse, wenn keine Zeilen kommen, die länger als das Fenster breit ist, kommen. Ansonsten verschiebt es den Text, so daß man von der letzten neuen Zeile unten nur noch den oberen Streifen sieht. Ist natürlich unschön. Da das Fenster ja umbricht - und nicht ich (ist ja auch gut so) - weiß ich nicht ob das zwei oder mehr Zeilen gibt um das in meinem Array einzupassen. Wie könnte man das lösen?

Oder hat jemand eine ganz andere Idee? Im CodeArchiv habe ich leider nichts Passendes gefunden (oder es übersehen).

Danke mal im voraus für die Hilfe.
Viele Grüße
Sigi

Verfasst: 18.04.2006 23:22
von jear
@der-sigi

Versuch es doch mal mit einem ListViewGadget!

Verfasst: 18.04.2006 23:26
von der-sigi
Hallo jear

Danke, aber ich möchte und brauche keine Auswahlliste. Vielleicht habe ich mich dusselig ausgedrückt, Tschuldigung. Der Inhalt soll nur lesbar sein und soll von unten nach oben durchscrollen (OHNE Scrollbalken). Also unten immer LESBAR das Neueste.

Sigi

Verfasst: 18.04.2006 23:39
von roherter
altertext.s="blblblblb"
neuertext.s="ksksksk"

altertext=altertext+chr(13)+neuertext

setgadgettext(#gadget,altertext)

so in etwa glaube ich.

Verfasst: 19.04.2006 01:02
von der-sigi
Hallo roherter

Danke für die Info, aber so mach ich es ja.

Tipp: "chr(13)" geht nirgends, bei Windows muß "chr(13)+chr(10)" und bei Linux "chr(10)" hin, also per CompilerFlag anpassen. ;)

Viele Grüße
Sigi

Verfasst: 19.04.2006 06:58
von roherter
jetzt weiß ich was du meinst dafür gibts ne sendmessage musste mal im board unter cursor position suchen und die scrollbar kannste auch damit disabeln!

weiß jetzt nur nicht wos steht.

Verfasst: 19.04.2006 09:50
von Kaeru Gaman
du kannst das ganze natürlich auch mit nem stringarray manuell erstellen...

Verfasst: 19.04.2006 10:16
von der-sigi
Hallo ihr netten Helfer

roherter: Habe leider nichts passendes unter den von dir angegebenen Suchbegriffen gefunden. Kannst du dich noch genauer erinnern?

Kaeru Gaman: Hmmm, das mach ich ja. Das Problem entsteht, wenn eine Zeile länger ist als das Fenster breit. Dann gibt es einen automatischen Umbruch (ist ja klasse, wollte ich ja) und dann schiebt sich der Text nicht eine ganze Zeile hoch, sondern nur eine halbe oder weniger (was ich nicht wollte (grins)).

Viele Grüße
Sigi

Verfasst: 19.04.2006 10:29
von Kaeru Gaman
> Hmmm, das mach ich ja.

wohl nicht so wie ich meinte...

in dem stringarray steht eine zeile pro feld. das hinzufügen des von neuem text über eine proc zu verwalten.
wenn die neue zeile zu lang ist, wird sie gesplittet und als 2 zeilen hinzugefügt.
eine weitere proc übergibt den gesamttext an das anzeigeobjekt, was es auch immer sei.

...nur mal so spontan...

Verfasst: 19.04.2006 10:49
von der-sigi
Hallo Kaeru Gaman

na so mach ich es ja im Prinzip. Nur wollte ich das Umbrechen bei langen Zeilen dem Fenster überlassen, was bei dem TextGadget ja auch wunderbar geht. Wenn ich das von Hand stricken muß, muß ich ja die Breite jeden Buchstabens bewerten und dann die Worte checken wo ich trennen kann. Das ist ein erheblicher Aufwand, der nicht sein muß - das TextGadget macht das ja. ;)

Nur, warum schiebt das bei einem chr(13)+chr(10) (bei Windows) um eine Zeile hoch und bei dem eigenen Umbruch nur eine halbe Zeile!?

Zu deinem "... wird sie gesplittet ...": Leider gibt es in PB kein "split", "explode", "implode" oder "join" um sowas sauber in und aus ein Array zu schieben (wenn ich es richtig sehe). Das und dynamische Arrays wären sehr hilfreich.

Viele Grüße
Sigi