fb:porticula NoPaste
SimpleGUI-Demo.bas....sehr unfertig aber funzt
Uploader: | Muttonhead |
Datum/Zeit: | 20.10.2008 22:20:20 |
' simpleGUI
#INCLUDE "fbgfx.bi"
'!!!Wichtig !!! folgende Variablen sollten gedimt und gesetzt sein, da SimpleGUI.bi diese zum Teil
' auch benötigt
dim shared as integer scrwidth,scrheight,scrdepth,fontheight
scrwidth=400
scrheight=400
scrdepth=32 ' 16 und 32bpp
fontheight=14 '8,14,16
#include "SimpleGUI.bi"
screenres scrwidth,scrheight,scrdepth,,&H04 'kein Fullscreen erlaubt
width scrwidth\8,scrheight\fontheight 'Fonthöhe setzen - siehe http://www.freebasic-portal.de/index.php?s=tutorials&id=44&seite=2
color cblack,cbackground
cls
'output nach console
Dim as integer ff= FREEFILE
OPEN CONS FOR OUTPUT AS #ff
'Buttons,Buttons,Buttons..... überall Buttons!!!
'Wir bauen die Bedienoberfläche!!
'mit den Adds... werden die Gadgets zur GadgetList hinzugefügt im mode 0 (unsichtbar und nicht anwählbar)
draw string (10,0),"Simple"
AddSimpleGadget (1,10,20,120,40,"Weiter")
draw string (10,80),"TextOption"
AddTextOptionGadget (2,10,100,90,20,"Banana")
draw string (10,160),"HTrackbar"
AddHTrackbar (3,10,180,350)
SetPot(3,&H547F) 'Setzt den Knop auf &H547F/&HFFFF * Höchstwert
'hiermit werden die Gadgets sichtbar
ChangeGadgetMode(1,1)
ChangeGadgetMode(2,2)
ChangeGadgetMode(3,1)
'Oberfläche fertisch!!!
dim as integer mx,my,gadget,mevent,exitprog
gadget=0
mevent=0
ExitProg=0
'MainLoop
'siehe FreeBASIC Referenz unter -> SCREENEVENT modifizierte Version des dort gezeigten Event Handle
DIM AS FB.EVENT PTR event
event = ALLOCATE(20)
DO
if (SCREENEVENT(event)) then
SELECT CASE event->type
CASE FB.EVENT_MOUSE_MOVE
mx=event->x
my=event->y
CASE FB.EVENT_MOUSE_BUTTON_PRESS
if (event->button = FB.BUTTON_LEFT) then
mevent=1
end if
CASE FB.EVENT_MOUSE_DOUBLE_CLICK
if (event->button = FB.BUTTON_LEFT) then
mevent=2
end if
CASE FB.EVENT_MOUSE_BUTTON_RELEASE
if (event->button = FB.BUTTON_LEFT) then
mevent=3
end if
CASE FB.EVENT_WINDOW_CLOSE
exitprog=1
END SELECT
end if
if exitprog=1 then exit do
gadget=GadgetControl(mevent,mx,my)
' hier kommt jetzt unser eigenes GadEvent
select case gadget
case 1
print #ff,"Gadget Nr:";gadget,"<Weiter>","<HTrackbar> Potentiometer auf &H7FFF"
SetPot (3,&H7FFF)
DrawGadget(3)
case 2
if GetGadgetMode(gadget)=1 then
ChangeGadgetMode(1,3)
print #ff,"Gadget Nr:";gadget,"<Banana> unselect","<Weiter> locked"
end if
if GetGadgetMode(gadget)=2 then
ChangeGadgetMode(1,1)
print #ff,"Gadget Nr:";gadget,"<Banana> select","<Weiter> unlocked"
end if
case 3
print #ff,"Gadget Nr:";gadget,"<HTrackbar> Potentiometerwert: &H";HEX(GetPot(gadget))
end select
gadget=0
sleep 1
loop
CLOSE #ff
DEALLOCATE( event ) 'aufräumen nicht vergessen!!!
end