durchlaufender Text im Fenster

Anfängerfragen zum Programmieren mit PureBasic.
der-sigi
Beiträge: 39
Registriert: 07.04.2006 12:22

durchlaufender Text im Fenster

Beitrag 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
Benutzeravatar
jear
Beiträge: 288
Registriert: 17.10.2004 01:59
Wohnort: Ammerland

Beitrag von jear »

@der-sigi

Versuch es doch mal mit einem ListViewGadget!
Man ist nie zu alt zum lernen, auch wenn man dabei manchmal alt aussieht!
der-sigi
Beiträge: 39
Registriert: 07.04.2006 12:22

Beitrag 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
Benutzeravatar
roherter
Beiträge: 1407
Registriert: 10.04.2005 18:58
Kontaktdaten:

Beitrag von roherter »

altertext.s="blblblblb"
neuertext.s="ksksksk"

altertext=altertext+chr(13)+neuertext

setgadgettext(#gadget,altertext)

so in etwa glaube ich.
Purebasic 5.0 32bit und 64 bit

I'm back from hell
der-sigi
Beiträge: 39
Registriert: 07.04.2006 12:22

Beitrag 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
Benutzeravatar
roherter
Beiträge: 1407
Registriert: 10.04.2005 18:58
Kontaktdaten:

Beitrag 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.
Purebasic 5.0 32bit und 64 bit

I'm back from hell
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

du kannst das ganze natürlich auch mit nem stringarray manuell erstellen...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
der-sigi
Beiträge: 39
Registriert: 07.04.2006 12:22

Beitrag 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
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
der-sigi
Beiträge: 39
Registriert: 07.04.2006 12:22

Beitrag 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
Antworten