fb:porticula NoPaste
Beispiel1
Uploader: | hansholger |
Datum/Zeit: | 25.03.2014 19:08:22 |
#Include "FBForms.bi" ' FBForms.bi immer zuerst - weil :
#Include "FBControls.bi" ' bindet andere Freebasic .bi ein
Dim Shared As FForm form1
Dim Shared As FPanel panel1,panel2,panel3,panel4
Dim Shared As FButton btn1,btn2
Dim Shared As FBmpLabel bmp1
Dim Shared As FHScrollbar HScroll,HScroll1,HScroll2
Dim Shared As FListbox Listbox1
Dim Shared As FComboBox Combo1
Dim Shared As FEdit Edit1
Dim Shared As FRichEdit Edit2
Dim Shared As FCheckbox check1
'Verwendung der Dialogbox
'------------------------
Dim Shared As FDialogBox PTR pDlgBox1
Dim Shared As FPanel PTR pDlgPanel1
Dim Shared As FButton PTR pDlgButton1
Sub Button_onClick
pDlgBox1->Close(0) ' Wert wird von pDlgBox1->Create zurückgegeben
End Sub
Sub dlg1_OnInitdialog(ByVal hWnd As HWND)
' alle Control müssen hier erstellt werden
pDlgPanel1 = New FPanel
pDlgButton1 = New FButton
pDlgPanel1->Create(hWnd,10,10,276,140)
pDlgPanel1->Caption =Chr(13,10)+ " Dialogbox mit FDialogBox " +Chr(13,10)+" hat kein Menü und hat immer ein Dialog-Rahmen"
pDlgPanel1->Border=1
pDlgPanel1->TextAlign=4 ' mehrzeilig mitte
pDlgButton1->Create(hWnd,"OK",100,180,100,26)
pDlgButton1->onClick = @Button_onClick
End Sub
Sub menu_About
Dim As Integer retVal
pDlgBox1 = New FDialogBox
pDlgBox1->Color = &Hefcb90 ' Anders wie bei normaler Form
pDlgBox1->OnInitdialog=@dlg1_OnInitdialog ' Eigenschaften vor!! Create
retVal = pDlgBox1->Create(Form1.Handle,"Info",300,250)
Delete pDlgBox1 ' Speicher bereinigen
Delete pDlgPanel1
Delete pDlgButton1
End Sub
' ------------------- Event - Sub ----------------------------------
Sub menu_neu
panel1.Color = &HFFFFFF
panel2.Color = &H9F9F9F
btn2.Color = &HdFdFdF
btn1.Color = &HFFFFFF
End Sub
Sub menu_Exit
form1.FormClose
End Sub
Sub Form1_onSize(ByVal w As Integer, ByVal h As Integer,ByVal flag As Integer)
panel3.Top = h - 22
panel3.Width = w
panel1.Height = h - 63
panel1.Width = w - 101
panel2.Height = h - 63
panel2.Width = w - 101
panel4.Left = (w-500)/2 ' Überschrift immer Zentriert
HScroll.Width = panel2.ClientWidth-120
HScroll1.Width = panel2.ClientWidth-120
HScroll2.Width = panel2.ClientWidth-120
End Sub
Sub btn1_onClick
panel1.Visible = TRUE
panel2.Visible = FALSE
panel3.Caption = "Panel 1 ist aktiv"
End Sub
Sub btn2_onClick
panel2.Visible = TRUE
panel1.Visible = FALSE
panel3.Caption = "Panel 2 ist aktiv"
End Sub
Sub Check1_onClick
If Check1.Check Then
Edit1.Password = 1
Else
Edit1.Password = 0
EndIf
End Sub
Sub HScroll_Change(ByVal nPos As Integer )
panel2.Color = rgba(HScroll2.position,HScroll1.position,HScroll.position,0)
panel2.Invalidate
End Sub
Sub HScroll1_Change(ByVal nPos As Integer )
panel2.Color = rgba(HScroll2.position,HScroll1.position,HScroll.position,0)
panel2.Invalidate
End Sub
Sub HScroll2_Change(ByVal nPos As Integer )
panel2.Color = rgba(HScroll2.position,HScroll1.position,HScroll.position,0)
panel2.Invalidate
End Sub
'--------------------------------------------------------------------
' Form
'--------------------------------------------------------------------
form1.Create("Testform",0,0,870,720)
Form1.Center
Form1.Color = &Hefcb90
Form1.onSize = @Form1_onSize
'--------------- Menu ----------------------------------------------
Dim As FMenuItem mnNeu,mnSper,mnExit,mnAbout ' Die Menu-Item
form1.menu.Create(form1.Handle) ' Das Menu
form1.menu.CreateSubMenu("Datei") ' Das erste Popup
mnNeu.EventSub =@menu_neu ' Event-Sub
form1.menu.AddItem(@mnNeu,"Neue Farben") ' Zeiger auf das Item , Item Text
form1.menu.Seperator ' Seperator
mnExit.EventSub =@menu_Exit ' Event-Sub
mnExit.addAccel(FCONTROL,Asc("X"),"X") ' Accel dazu, STRG
form1.menu.AddItem(@mnExit,"Exit") ' Zeiger auf das Item , Item Text
form1.menu.CreateSubMenu("Info") ' Das zweite Popup
mnAbout.EventSub =@menu_About ' Event-Sub
mnAbout.addAccel(NULL,112,"F1") ' Accel dazu, F1 ohne Control,Alt oder Shift
form1.menu.AddItem(@mnAbout,"About") ' Zeiger auf das Item , Item Text
'-------------------------- Nur Bild----------------------------------
bmp1.Create(Form1.Handle,"bild1.bmp",20,40)
'-------------------------- Panel 1 ----------------------------------
panel1.Create(form1.Handle,100,40,860,550)
panel1.Color = RGBA(150,180,210,0)
panel1.Border = 1
Panel1.TextAlign = 4 ' mehrzeilig zentriert
Panel1.Caption = Chr(13,10)+"Panel kann als "+Chr(13,10)+" Container oder als Label "+Chr(13,10)+" einzeilig oder mehrzeilig verwendet werden"
Listbox1.Create(panel1.Handle,10,200,120,120)
Listbox1.TextColor = &HFF
Combo1.Create(panel1.Handle,150,200,120,120)
Edit2.Create(panel1.Handle,440,200,300,326)
Edit2.Border = 1
Edit2.Color = &HFFD0A0
Edit2.TextColor = &HFF0000
Edit2.Text = "Multiline Edit/Richedit-Control"
Edit2.ScrollBars = FALSE
Edit1.Create(panel1.Handle,320,250,100,26)
check1.Create(panel1.Handle, "Password",320,200,100,26)
check1.Color = RGBA(150,180,210,0)
Check1.onClick = @Check1_onClick
'-------------------------- Panel 2 ----------------------------------
panel2.Create(form1.Handle,100,40,860,550)
panel2.Color = RGBA(250,190,210,0)
panel2.Border = 1
Panel2.TextAlign = 4 ' mehrzeilig zentriert
Panel2.Caption = Chr(13,10)+"Panel kann Text "+Chr(13,10)+" einzeilig oder mehrzeilig darstellen"
HScroll.Create(panel2.Handle, 50,450,750 ,26 )
HScroll.Color = &HFF
HScroll.Range(0, 255)
HScroll.onChange = @HScroll_Change
HScroll1.Create(panel2.Handle, 50,420,750 ,26 )
HScroll1.Color = &HFF00
HScroll1.Range(0, 255)
HScroll1.onChange = @HScroll1_Change
HScroll2.Create(panel2.Handle, 50,390,750 ,26 )
HScroll2.Color = &HFF0000
HScroll2.Range(0, 255)
HScroll2.onChange = @HScroll2_Change
' Farbe entspr. Position wie panel2.Color = RGBA(250,190,210,0)
HScroll2.position = 250
HScroll1.position = 190
HScroll.position = 210
'-------------------------- Button links ----------------------------------
btn1.Create(form1.Handle,"Panel1",5,160,90,36)
btn1.Color = RGBA(150,180,210,0)
btn1.Tip = "Schaltet auf Panel 1"
btn1.onClick = @btn1_onClick
btn2.Create(form1.Handle,"Panel2",5,196,90,36)
btn2.Color = RGBA(250,190,210,0)
btn2.Tip = "Schaltet auf Panel 2"
btn2.onClick = @btn2_onClick
'-------------------- Statusbar - Nachbildung ------------------------
panel3.Create(form1.Handle,0,690,866,22)
panel3.Color = RGBA(210,210,210,0)
panel3.Border = 1
panel3.Caption = "Das könnte eine einfache Statusbar sein"
'------------------------ Überschrift ---------------------------
panel4.Create(form1.Handle,100,4,500,32)
panel4.Color = &Hefcb90
Panel4.TextColor = &HFF
Panel4.SetFont("Arial",14,1,0,0)
panel4.Caption = "Irgend eine Überschrift"
'---------------------------------------------------------------------
' Initialisierungen Var, array usw. hier
panel2.Visible = FALSE
Listbox1.AddString("Item 1")
Listbox1.AddString("Item 2")
Listbox1.AddString("Item 3")
Combo1.AddString("Item 1")
Combo1.AddString("Item 2")
Combo1.AddString("Item 3")
'--------------------Hintergrundfarbe der MenuBar ändern -------------
#DEFINE MIM_BACKGROUND &H00000002
#DEFINE MNS_AUTODISMISS &H10000000
Dim As MENUINFO mi
mi.cbSize = SizeOf(mi)
mi.hbrBack = CreateSolidBrush(&Hefcb90)
mi.fMask = MIM_BACKGROUND
mi.dwStyle = MNS_AUTODISMISS
If(IsMenu(form1.menu.Handle)) Then
SetMenuInfo(form1.menu.Handle, @mi)
End If
'-----------------------------------------
'------ Show entält MessageLoop - muss immer am Ende sein ------------
form1.Show
End