GLBasic forum

Other languages => GLBasic - de => Topic started by: Veritas on 2008-Sep-08

Title: ein "Programm" im Programm möglich? (skriptteile durch Funktion ersetzen)
Post by: Veritas on 2008-Sep-08
Hi Leute,
ich hab folgende Frage:
Ist es möglich eine Art Prozedur zu schreiben die ermöglicht zu erkennen ob gewisse Befehle benutzt wurden?

Ich habe ein "Programm" mit ein paar Viewports. Zum Bearbeiten deaktiviere ich die Viewports häufiger um eben ALLES zu sehen.

Code (glbasic) Select

FELDX=0
FELDY=0

VIEWPORT 250, 100, B,H
DRAWRECT FELDX, FELDY, B, H, RGB(255, 255, 255)


So sähe es im Normalfall aus. "Deaktiviere" ich die Viewports, muss ich natürlich alle Koordinaten der grafischen Folgebefehle anpassen.

Code (glbasic) Select

FELDX=250
FELDY=100

//VIEWPORT 250, 100, B,H
DRAWRECT FELDX, FELDY, B, H, RGB(255, 255, 255)


Zurück zur Frage. Das soll automatisiert werden. Ich hätte es also gerne so das Der Viewport solange aktiv ist wie die Werte FELDY und FELDX=0 sind. Verändert man diese soll der Viewport deaktiviert werden.

Ich bräuchte also etwas das dann automatisch Viewport=//Viewport setzt und umgekehrt. Es gibt zwar Befehle wie REPLACE$(), die funktionieren ja aber so weit ich weiß nur mit TEXT und nicht innerhalb des Skripts.

Hat jemand ne Idee?

LG Veritas
Title: Re: ein "Programm" im Programm möglich? (skriptteile durch Funktion ersetzen)
Post by: Tenorm on 2008-Sep-08
QuoteIch hätte es also gerne so das Der Viewport solange aktiv ist wie die Werte FELDY und FELDX=0 sind. Verändert man diese soll der Viewport deaktiviert werden.

=

IF FELDY=0 AND FELDX=0
    viewport=1
ELSE
    viewport=0
ENDIF

Gruß

Tenorm
Title: Re: ein "Programm" im Programm möglich? (skriptteile durch Funktion ersetzen)
Post by: Veritas on 2008-Sep-09
Hi Danke Tenorm,
leider hat das einen Syntax-Error zur Folge.
Viewport=1 oder Viewport=0 geht nicht. Es wird als Befehl erkannt und erwartet, das man es mit der korekten Anzahl seiner Parameter aufruft.

Irgendeine andere Idee?
Title: Re: ein "Programm" im Programm möglich? (skriptteile durch Funktion ersetzen)
Post by: Tenorm on 2009-May-02
Immer  =D :
Code (glbasic) Select

LOCAL viewport_id

IF FELDY=0 AND FELDX=0
    viewport_id=1
ELSE
    viewport_id=0
ENDIF

IF viewport_id=1
    VIEWPORT parameter...
ENDIF
Title: Re: ein "Programm" im Programm möglich? (skriptteile durch Funktion ersetzen)
Post by: Hamburgo on 2009-May-02
IF FELDY=0 AND FELDX=0
    VIEWPORT ViewportX, ViewportY, ViewportBreite, ViewportHoehe
ELSE
    VIEWPORT 0,0,0,0      // Zur?cksetzen
ENDIF

So setze ich das ein und es funktioniert.