fb:porticula NoPaste
EWH_Test.bas
Uploader: | ThePuppetMaster |
Datum/Zeit: | 18.03.2009 10:21:35 |
'###################################################################################################################################
'### E W H - Extendet Window Handel
'###################################################################################################################################
'###################################################################################################################################
'### Date of Idea: 2008.11.14 - 03:45:09
'### Autor: DeltaLab's Germany [Experimental Computing]
'### Martin Wiemann
'### Contact: Admin@MLN.ath.cx / IRC://MLN.ath.cx/#mln
'###################################################################################################################################
'###################################################################################################################################
#include once "ewh.bi" 'Das Fenster-Handling-Modul includieren
'###################################################################################################################################
Dim Shared XWin as EWH_Window 'Variable für das Fenster
'Variablen für die Controls
Dim Shared XButtonLeft as EWH_Control
Dim Shared XButtonRight as EWH_Control
Dim Shared XLabel as EWH_Control
Dim Shared XCheck as EWH_Control
Dim Shared XPBar as EWH_Control
Dim Shared XHScroll as EWH_Control
Dim Shared XVScroll as EWH_Control
Dim Shared XText as EWH_Control
Dim Shared XList as EWH_Control
Dim Shared XTree as EWH_Control
'###################################################################################################################################
'Ein Callback für den Linken Button
Sub XButtonLeft_Click(ByVal V_ID as UInteger)
Print "[Click] Button_Left:"; V_ID
XCheck.Value = 1
End Sub
'###################################################################################################################################
'Ein Callback für den Rechten Button
Sub XButtonRight_Click(ByVal V_ID as UInteger)
Print "[Click] Button_Right:"; V_ID
XCheck.Value = 0
End Sub
'###################################################################################################################################
'Ein Callback für den Rechten Button
Sub XMenu_Beenden(ByVal V_ID as UInteger)
Print "[Click] Menu_Exit"
'Hier entladen wir die Form einfach. Dadurch wird auch die hauptschleife im Programm beendet,
'da sich keine Fenster mehr im EWH befinden.
XWin.UnloadMe
End Sub
'###################################################################################################################################
'Hier erzeugen wir eine Abfrage-Box (ThenBox), welche eine kleine Frage ausgeben kann.
'Anhand der Antwort (0 = No / 1 = Yes) wählen wir anschliessend den Text für die Narichten-Box (MsgBox).
'Diese Fenster müssen nicht von hand erzeugt und verwaltet werden. Dies wird von EWH übernommen.
'If EWH_ThenBox("Click on 'Yes' or 'No'") = 0 Then
' EWH_MsgBox("You clicked on 'No'!")
'Else
' EWH_MsgBox("You clicked on 'Yes'!")
'End If
'Ein neues Fesnter erzeugen (hier wurde am ende eine 0 gesetzt,welche angibt, das das Fenster NICHT angezeigt werden soll)
'das Anzeigen wird später gemacht. Das sorgt dafür, das kein Flimmern beim Laden der Controls entsteht)
XWin = EWH_Win_Create("Window-1", 400, 400, 1100, 100, 0)
'Ein paar Controls auf diesem Fenster erzeugen
'Beim erzeugen können einige Parameter direkt übergeben werden. Das spart später das nachträgliche setzen dieser Wete
XButtonLeft = XWin.Control_Create(EWH_Control_Button, 80, 25, 10, 10, , "Checked", EWH_Callback(,,,,,,,,,@XButtonLeft_Click))
XButtonRight = XWin.Control_Create(EWH_Control_Button, 80, 25, 100, 10, , "UnChecked")
'Eine andere Variante das Callback zu setzen
XButtonRight.SetEvent(EWH_Event_Click, @XButtonRight_Click)
XLabel = XWin.Control_Create(EWH_Control_Label, 80, 25, 10, 40, , "Label")
XCheck = XWin.Control_Create(EWH_Control_Check, 80, 25, 10, 70, , "Check")
XPBar = XWin.Control_Create(EWH_Control_PBar, 150, 20, 10, 100, , "0%")
XHScroll = XWin.Control_Create(EWH_Control_HScroll, 150, 20, 10, 130, , "")
XVScroll = XWin.Control_Create(EWH_Control_VScroll, 20, 150, 170, 40, , "")
XText = XWin.Control_Create(EWH_Control_Text, 150, 20, 10, 170, , "Textfield")
XList = XWin.Control_Create(EWH_Control_List, 150, 120, 10, 200)
XTree = XWin.Control_Create(EWH_Control_Tree, 200, 320, 200, 10)
'EWH_INT_Control_PictureLoad(1, "test.bmp")
'end
'Einige Parameter der Controls festlegen
XPBar.Max = 50
XPBar.Value = 0
XHScroll.Max = 10
XHScroll.Value = 5
XHScroll.ShowValue = 1
XVScroll.Max = 10
XVScroll.Value = 5
'Print xwin.width
'Eine kleine Menü-struktur auf dem Fenster erzeugen
Dim TMenu as EWH_Menu
Dim TTMenu as EWH_Menu
TMenu = XWin.Menu_Add("Application", 0)
TTMenu = XWin.Menu_SubAdd(TMenu, "Duplicate", 1, 0)
TTMenu = XWin.Menu_SubAdd(TMenu, "Open new window", 1, 0)
TTMenu = XWin.Menu_SubAdd(TMenu, "-", , 0)
TTMenu = XWin.Menu_SubAdd(TMenu, "Informations", 1, 0)
TTMenu = XWin.Menu_SubAdd(TMenu, "-", , 0)
TTMenu = XWin.Menu_SubAdd(TMenu, "Webside", 1, 0)
TTMenu = XWin.Menu_SubAdd(TMenu, "Another", 1, 0)
TTMenu = XWin.Menu_SubAdd(TMenu, "-", , 0)
'Hier registrieren wir zusätzlich noch ein Callback auf eine Funktion, mit der wir das Programm beenden können
TTMenu = XWin.Menu_SubAdd(TMenu, "Exit", 0, @XMenu_Beenden)
TMenu = XWin.Menu_Add("File", 0)
TTMenu = XWin.Menu_SubAdd(TMenu, "New", 1, 0)
TTMenu = XWin.Menu_SubAdd(TMenu, "-", , 0)
TTMenu = XWin.Menu_SubAdd(TMenu, "Open...", 1, 0)
TTMenu = XWin.Menu_SubAdd(TMenu, "Reopen", 1, 0)
TTMenu = XWin.Menu_SubAdd(TMenu, "-", , 0)
TTMenu = XWin.Menu_SubAdd(TMenu, "Open in new window...", 1, 0)
TTMenu = XWin.Menu_SubAdd(TMenu, "-", , 0)
TTMenu = XWin.Menu_SubAdd(TMenu, "Save", 1, 0)
TTMenu = XWin.Menu_SubAdd(TMenu, "Save as...", 1, 0)
TMenu = XWin.Menu_Add("Edit", 0)
TTMenu = XWin.Menu_SubAdd(TMenu, "Select all", 1, 0)
TTMenu = XWin.Menu_SubAdd(TMenu, "-", , 0)
TTMenu = XWin.Menu_SubAdd(TMenu, "Copy", 1, 0)
TTMenu = XWin.Menu_SubAdd(TMenu, "Cut", 1, 0)
TTMenu = XWin.Menu_SubAdd(TMenu, "Paste", 1, 0)
TTMenu = XWin.Menu_SubAdd(TMenu, "-", , 0)
TTMenu = XWin.Menu_SubAdd(TMenu, "Paste in new window...", 1, 0)
TMenu = XWin.Menu_Add("View", 0)
TTMenu = XWin.Menu_SubAdd(TMenu, "Toolbar", 1, 0)
TTMenu = XWin.Menu_SubAdd(TMenu, "Statebar", 1, 0)
TMenu = XWin.Menu_Add("Help", 0)
TTMenu = XWin.Menu_SubAdd(TMenu, "About all", 1, 0)
TTMenu = XWin.Menu_SubAdd(TMenu, "Function", 1, 0)
TTMenu = XWin.Menu_SubAdd(TMenu, "Using", 1, 0)
TMenu = XWin.Menu_Add("Foo", 0)
TTMenu = XWin.Menu_SubAdd(TMenu, "Bar", 0, 0)
TTMenu = XWin.Menu_SubAdd(TMenu, "Bo", 0, 0)
TTMenu = XWin.Menu_SubAdd(TMenu, "BaBiBoBarBoLa", 0, 0)
TTMenu = XWin.Menu_SubAdd(TMenu, "0123456789", 0, 0)
TTMenu = XWin.Menu_SubAdd(TMenu, "abcdefghijklmnopqrstuvwxyz", 0, 0)
TTMenu = XWin.Menu_SubAdd(TMenu, "abcdefghijklmnopqrstuvwxyz", 0, 0)
TTMenu = XWin.Menu_SubAdd(TMenu, "-", 0, 0)
TTMenu = XWin.Menu_SubAdd(TMenu, "-", 0, 0)
TTMenu = XWin.Menu_SubAdd(TMenu, "-", 0, 0)
TTMenu = XWin.Menu_SubAdd(TMenu, "asdfghjkl", 0, 0)
TTMenu = XWin.Menu_SubAdd(TMenu, "-", 0, 0)
TTMenu = XWin.Menu_SubAdd(TMenu, "#*?!""$%&/()=?\}][{°", 0, 0)
'und jetzt kann das Fenster angezeigt werden
XWin.Show
'Eine Hauptschleife die solange arbeitet, bis alle Fenster geschlossen wurden.
Dim C as UInteger
Dim XTot as Double
Do until EWH_IsFree = 1
Sleep 1, 1
If XTot < Timer Then
'Ein wenig animation hinein bringen, wenn die Checkbox aktiviert ist.
If XCheck.Value = 1 Then
C += XHScroll.Value
XLabel.Text = "Label: " & Str(C)
If XPBar.Value >= XPBar.Max Then XPBar.Value = 0
XPBar.Value = XPBar.Value + XHScroll.Value
End If
XTot = Timer + (0.01 * XVScroll.Value)
End If
Loop
'is eigentlich unnötig, da kein Fenster mehr da ist, wenn doch, dann das Fenster entladen (ist nicth zwngend nötig)
XWin.UnloadMe
'app beenden (wenn noch fenster vorhanden sein sollten, werden diese jetzt automatisch entladen)
end 0