Software > Coding
GFA- Basic - Ausgabe in GEM Fenster?
1ST1:
Was soll es den zu GFA und GEM neues geben? Mit GFA kann man natürlich saubere GEM-Programme schreiben, alle nötigen Systemaufrufe sind in GFA vorhanden. Ich empfehle diverse Bücher zum Thema, z.B. "Vom Anfänger zum GEM-Profi" von den Geiß-Brüdern bzw. hier oder dort - und noch zwei Exemplare.
guest3744:
Ich meinte Atari060, ob er jetzt sein Ziel erreicht hat mit dem GBE.
Ich habe heute meine ganzen Bücher bekommen.
Gruss
1ST1:
Das Buch von den Geiß-Brüdern solltest du dir auch noch besorgen, das ist sehr nützlich!
MJaap:
--- Zitat von: Atari060 am Mi 07.10.2015, 08:14:40 ---Da ich eine kleine Idee für ein Atari Spiel habe, wollte ich fragen, wie ich die Ausgabe in ein GEM Fenster bekomme, so dass das Ganze auch auf der Firebee läuft.
--- Ende Zitat ---
Am Besten du saugst dir die GEM-Spiele von Lonny (Landmine) und Pierre (2048 etc.) runter, die saubere GEM-Spiele mit GFA entwickelt haben. Sollten dann noch Fragen offen sein, kann ich nur empfehlen, sie in der GFA-Facebook-Gruppe zu posten.
--- Zitat ---OPENW #1,100,100,200,200
PRINT "test"
LINE 5,5,150,150
So etwas müsste doch das neue GBE-Basic für den Firebee auch machen?
--- Ende Zitat ---
Openw und die anderen für GFA vereinfachten GEM-Fenster-Befehle sollten vermieden werden, da sie unflexibel sind und fehlerhaft arbeiten - insbesondere unter Multitasking-Umgebungen, für die letztlich GEM-Spiele entwickelt werden. Ab GFA 3.0 stehen auch die "echten", C-ähnlichen GEM-Aufrufe zur Verfügung.
BES_1973:
Ich hab das gleiche Problem mit den Fenstern.
Aus damaliger Zeit weiss ich dass diese gerne zu Fehlern führen.
Damals hab ich mirdann einfach selber Fenster programmiert, diese dann natürlich nicht so schnell waren wie die GEM-Fenster.
Heute hab ich ein GFA-Script gefunden (GFA-Basic 3.6 TT), das könnte sehr hilfreich sein wenn man sich da reingearbeitet hat.
--- Zitat ---' ** window.lst
'
DEFFILL 1,2,4
PBOX 0,19,639,399
DEFFILL 1,0
'
DIM message_buffer%(3) ! 16 Byte
adr_mes%=V:message_buffer%(0)
'
ABSOLUTE word0&,adr_mes%
ABSOLUTE x&,adr_mes%+8
ABSOLUTE y&,adr_mes%+10
ABSOLUTE w&,adr_mes%+12
ABSOLUTE h&,adr_mes%+14
'
handle&=WIND_CREATE(&X101111,0,19,639,380)
'
titel$="Window"
adr_tit%=V:titel$
~WIND_SET(handle&,2,CARD(SWAP(adr_tit%)),CARD(adr_tit%),0,0)
~WIND_OPEN(handle&,100,100,200,100)
~WIND_GET(handle&,4,wx&,wy&,ww&,wh&)
PBOX wx&,wy&,wx&+ww&,wy&+wh&
'
raus!=FALSE
REPEAT
~EVNT_MULTI(&X110000,0,0,0,0,0,0,0,0,0,0,0,0,0,adr_mes%,100,d%,d%,d%,d%,d%,d%)
SELECT word0&
CASE 22 ! WM_CLOSED
raus!=TRUE
CASE 23 ! WM_FULLED
~WIND_SET(handle&,5,1,19,638,380)
~WIND_GET(handle&,4,wx&,wy&,ww&,wh&)
PBOX wx&,wy&,wx&+ww&,wy&+wh&
word0&=0
CASE 27,28 ! WM_SIZED, WM_MOVED
IF w&<100
w&=100
ENDIF
IF h&<80
h&=80
ENDIF
~WIND_SET(handle&,5,x&,y&,w&,h&)
~WIND_GET(handle&,4,wx&,wy&,ww&,wh&)
PBOX wx&,wy&,wx&+ww&,wy&+wh&
word0&=0
ENDSELECT
UNTIL raus!
~WIND_CLOSE(handle&)
~WIND_DELETE(handle&)
--- Ende Zitat ---
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln