Positionieren im Textfenster?


Positionieren im Textfenster?

von FlorianD » Di 7. Mär 2017, 00:20
ich steh grad aufm Schlauch... Wenn ich GRAPHICS 2 mit Textfenster mache, kann ich dann irgendwie auf im Textfenster die PRINT Befehle positionieren?

Code: Alles auswählen
10 GR.2
20 POS.10,10:?#6;"HALLO": REM geht als grosse Buchstaben ins Hauptfenster
30 POS.10,13:? "ABBUC":REM soll ins Textfenster ab Spalte 10, kommt aber immer ab Spalte 0

auch mit vorangestelltem POKE 82,SPALTE geht das nicht, irgendwie nimmt der das immer erst ab dem nächsten PRINT Befehl.
Wer weiss Hilfe?

Re: Positionieren im Textfenster?

von eda70 » Di 7. Mär 2017, 13:40
Profibuch hat geschrieben:656 $290 TXTROW
Dies ist die Reihe des Cursors im Textfenster. Der Wert kann zwischen 0
und 3 liegen, da das Textfenster nur 4 Zeilen hoch ist.
657,658 $291,$292 TXTCOL
Spalte des Cursors im Textfenster. Da das Textfenster grundsätzlich in
der Grafikstufe 0 ist, kann hierbei der Wert zwischen 0 und 39 ($27) rangieren,
Speicherstelle 658 ist deshalb immer 0. Da der POSITION-Befehl
von BASIC sich immer auf den Grafikteil des Bildschirms bezieht, muss
bei einer Veränderung der Cursorposition im Textfenster direkt in TXTCOL
und TXTROW geschrieben werden.

Re: Positionieren im Textfenster?

von Sleepy » Di 7. Mär 2017, 14:29
Ah, dann also anstelle POS.x,y einfach POKE 657,x:POKE 656,y nehmen...

Mein erster Gedanke war die Bildschirmadresse des Textfensters zu ermitteln und den Text direkt in den Bildschirmspeicher zu poken, was aber sehr umständlich wäre... :mrgreen:

Sleepy

Re: Positionieren im Textfenster?

von eda70 » Di 7. Mär 2017, 14:42
Sollte so gehen, ich habe es nicht ausprobiert.
Konnte mich nur daran erinnern, beim Korrekturlesen des Profibuches mal was in der Richtung gelesen zu haben... :)

Re: Positionieren im Textfenster?

von FlorianD » Fr 17. Mär 2017, 12:57
geht hervorragend. Beispiel in Action!

Code: Alles auswählen
PROC WINPOS(BYTE X,Y)
 BYTE TXTROW=$290,TXTCOL=$291
 ;
 TXTROW=Y
 TXTCOL=X
RETURN


Aufrufen mit
Code: Alles auswählen
WINPOS([X-Wert],[Y-Wert])
statt
Code: Alles auswählen
POSITION(X,Y)