Fenster Beispiel (unlimitet)

Übersicht BlitzBasic BlitzPlus

Neue Antwort erstellen

Mathias-Kwiatkowski

Betreff: Fenster Beispiel (unlimitet)

BeitragDi, Nov 28, 2006 7:25
Antworten mit Zitat
Benutzer-Profile anzeigen
hallo habe hier mal etwas geproggt und möchte es euch mal geben, vieleicht braucht es der eine oder andere, miit diesem prog ist es möglich belibig viele fenster zu erstellen, und indem grafische oder auch gui elemente darzustellen. kopiert es euch und testet es mal, ihr könnt mir ja eure mitteilung hierzu schreben.

Code: [AUSKLAPPEN]

; Hi, habe eine lange Zeit hierfür gebraucht, vieleicht gefällt es ja den einen oder anderen, in der Funktion
; window_funktionen() könnt ihr etwas im fenster darstellen lasen
; di anderen functionen sind nur für Vortgeschrittene BB+ Progger die anderen Funktionen sind eigentlich nur dazu da
; um ein fenster zu erstellen oder um den hintergrund darzustellen, naja und das master Fenster eben, des mit dem menu
;
; Ich werde das Programm noch erweitern, MFG Mathias Kwiatkowski http://purechannel.ath.cx/purechannel
; msn: mathiasamiga@msn.com
; icq: 287245050


Global master_background
Global window_gesammt
Global event
Global deskw=ClientWidth(Desktop())
Global deskh=ClientHeight(Desktop())
Global master_window=CreateWindow("PureChannel Online Portal",0,0,deskw,deskh-30,Desktop(),0)
Global master_canvas=CreateCanvas(0,0,deskw,deskh-30,master_window)
Global window.window

Global menu_datei=CreateMenu("Datei",1,WindowMenu(master_window))
Global menu_neu=CreateMenu("Neues Fenster", 2,menu_datei)
Global menu_beenden=CreateMenu("Beenden",3,menu_datei)

UpdateWindowMenu master_window

Type window
   Field window
   Field canvas
   Field background
End Type

master_win()

New_Window("PureChannel",10,10,300,500,"0",17)   ;so kann man fenster erschaffen
New_Window("PureChannel Chat",10,10,400,500,"0",3) ; so auch

Repeat
   event=WaitEvent(0)
   update_masterwindow()
   update_window()
   
   Delay 10
Until KeyDown(1)
End


Function New_Window(titel$,x,y,w,h,gruppe$,style)
window.window=New window
window\window=CreateWindow(titel$,x,y,w,h,master_window,style)
window\canvas=CreateCanvas(0,0,w,h,window\window)
window\background=CreateImage(256,256)
SetGadgetLayout window\canvas,1,1,1,1
SetBuffer CanvasBuffer (window\canvas)
vt=255
For t=0 To 255
   Color 0,vt,vt
   vt=vt-1
   Line 0,t,255,T
Next
GrabImage window\background,0,0
ResizeImage window\background,w,h
Cls
FlipCanvas window\canvas
window_gesammt=window_gesammt+1
End Function

Function update_window()
For window.window=Each window
   SetBuffer CanvasBuffer (window\canvas)
   DrawImage window\background,0,0

   window_funktionen()

   FlipCanvas window\canvas
   If event=$803 Then
      If ActiveWindow() =window\window Then
         FreeGadget ActiveWindow ()
         Delete window.window
         window_gesammt=window_gesammt-1
         Delay 100
         Goto ok
      EndIf
   EndIf
Next
.ok
End Function

Function master_win()
SetBuffer CanvasBuffer (master_canvas)
master_background=CreateImage(256,256)
For t=0 To 255
   Color 0,0,T   
   Line 0,t,255,T
Next
GrabImage master_background,0,0
ResizeImage master_background,deskw,deskh-30
End Function

Function update_masterwindow()
If event=$1001 Then
      Select EventData()
        Case 3
           value=MenuChecked(menu_beenden)
           If value=0 Then End
           UpdateWindowMenu master_window
      Case 2
           value=MenuChecked(menu_neu)
           If value=0 Then New_Window("Neues Fenster ( "+window_gesammt+" )",10,30,400,500,"0",3)
           UpdateWindowMenu master_window
        End Select
   EndIf
   SetBuffer CanvasBuffer (master_canvas)
   DrawImage master_background,0,0
   FlipCanvas master_canvas
End Function

Function window_funktionen()
   If GadgetText (window\window)="PureChannel" Then
                                          ;|
                                          ;\
                                          ; -Hier den Fensternamen Eingeben
         SetBuffer CanvasBuffer (window\canvas)
         Text 100,100,"Hallo"
         ; Und hierher alles was in dem Fenster Vorkommen soll. wenn mann mehrere Fenster hat dann einfach diese IF anweisung kopieren
         ; und unter EndIF wieder einfügen, den Tittel eingeben und naja ich denke ihr versteht es dann schon :D
         FlipCanvas window\canvas
   EndIf
End Function

Neue Antwort erstellen


Übersicht BlitzBasic BlitzPlus

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group