Buchempfehlung
Windows-Programmierung. Das Entwicklerhandbuch zur WIN32-API
Windows-Programmierung. Das Entwicklerhandbuch zur WIN32-API
"Der" Petzold, das über 1000 Seiten starke Standardwerk zum Win32-API - besonders nützlich u. a. bei der GUI-Programmierung in FreeBASIC! [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

fb:porticula NoPaste

Info
Info / Hilfe
Liste
Übersicht / Liste
Neu
Datei hochladen
Suche
Quellcode suchen
Download
Dateidownload

SimpleGUI-Demo.bas....sehr unfertig aber funzt

Uploader:MitgliedMuttonhead
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