Fotolijst: code
In de module:
- We onthouden de bestandsnamen vand e foto's, het aantal foto's en het nummer vand e
geselecteerde foto
Global foto(100) As String
Global aantal As Integer
Global actievefoto As Integer
- De lijst doorlopen
Sub tel()
For t = 0 To Form1.lstFotos.ListCount - 1
foto(t) = Form1.lstFotos.ItemData(t)
Next t
End Sub
- Een foto tonen
Sub toon(index As Integer)
frmView.picFoto.Picture = LoadPicture(Form1.lstFotos.List(index))
End Sub
- Op het eerste formulier de knoppen verbergen die niet van toepassing zijn
Sub knoppen()
If actievefoto = 0 Then
frmView.cmdfirst.Enabled = False
frmView.cmdPrevious.Enabled = False
Else
frmView.cmdfirst.Enabled = True
frmView.cmdPrevious.Enabled = True
End If
If actievefoto = aantal Then
frmView.cmdLast.Enabled = False
frmView.cmdNext.Enabled = False
Else
frmView.cmdLast.Enabled = True
frmView.cmdNext.Enabled = True
End If
frmView.HScroll1.Value = actievefoto
End Sub
In het formulier met de lijst:
- Een foto toevoegen
Private Sub cmdAdd_Click()
If aantal > 100 Then
MsgBox "Het maximum is bereikt. Sorry"
Exit Sub
End If
cdlFotoFiles.Filter = "Alle grafische bestanden|*.gif;*.wmf;*.ico;*.bmp|GIF
bestanden|*.gif|Metafile bestanden|*.wmf|Iconen|*.ico|Bitmaps|*.bmp|Alle
bestanden|*.*"
cdlFotoFiles.FileName = ""
cdlFotoFiles.Flags = cdlOFNFileMustExist
cdlFotoFiles.Action = 1
If Not cdlFotoFiles.FileName = "" Then
lstFotos.AddItem (cdlFotoFiles.FileName)
aantal = lstFotos.ListCount
End If
End Sub
- Een foto uit de lijst verwijderen
Private Sub cmdDelete_Click()
If lstFotos.ListIndex = -1 Then Exit Sub
lstFotos.RemoveItem (lstFotos.ListIndex)
lstFotos.Refresh
tel
End Sub
- Een foto hoger in de lijst zetten
Private Sub cmdHigher_Click()
Dim temp As Integer
Dim buffer As String
temp = Form1.lstFotos.ListIndex
Select Case temp
Case -1
MsgBox "Je hebt niets geselecteerd"
Exit Sub
Case 0
MsgBox "Deze foto staat al bovenaan in de lijst"
Exit Sub
Case Else
buffer = Form1.lstFotos.ItemData(temp)
Form1.lstFotos.ItemData(temp - 1) = Form1.lstFotos.ItemData(temp)
Form1.lstFotos.ItemData(temp) = buffer
Form1.lstFotos.Refresh
End Select
End Sub
- Een foto lager in de lijst zetten
Private Sub cmdLower_Click()
Dim temp As Integer
Dim buffer As String
temp = Form1.lstFotos.ListIndex
Select Case temp
Case -1
MsgBox "Je hebt niets geselecteerd"
Exit Sub
Case aantal - 1
MsgBox "Deze foto staat al onderaan in de lijst"
Exit Sub
Case Else
buffer = Form1.lstFotos.ItemData(temp)
Form1.lstFotos.ItemData(temp + 1) = Form1.lstFotos.ItemData(temp)
Form1.lstFotos.ItemData(temp) = buffer
Form1.lstFotos.Refresh
End Select
End Sub
- Het tweede scherm tonen
Private Sub cmdView_Click()
Load frmView
frmView.Show
End Sub
In het formulier met de picturebox:
Private Sub cmdfirst_Click()
actievefoto = 1
knoppen
toon (actievefoto)
End Sub
Private Sub cmdLast_Click()
actievefoto = aantal
knoppen
toon (actievefoto)
End Sub
Private Sub cmdNext_Click()
actievefoto = actievefoto + 1
knoppen
toon (actievefoto)
End Sub
Private Sub cmdPrevious_Click()
actievefoto = actievefoto - 1
knoppen
toon (actievefoto)
End Sub
Private Sub cmdStop_Click()
Unload Me
End Sub
Private Sub Form_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case vbKeyPageUp
cmdNext_Click
Case vbKeyPageDown
cmdPrevious_Click
End Select
End Sub
Private Sub Form_Load()
HScroll1.Min = 1
HScroll1.Max = aantal
If aantal = 1 Then HScroll1.Visible = False
actievefoto = 1
knoppen
toon (actievefoto)
End Sub
Private Sub HScroll1_Change()
actievefoto = HScroll1.Value
knoppen
toon (actievefoto)
End Sub
Private Sub picFoto_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As
Single)
Select Case Button
Case 1 'left
If cmdNext.Enabled = True Then cmdNext_Click
Case 2 'right
If cmdPrevious.Enabled = True Then cmdPrevious_Click
End Select
End Sub
Private Sub picFoto_Resize()
cmdfirst.Top = picFoto.Top + picFoto.Height + 100
cmdLast.Top = picFoto.Top + picFoto.Height + 100
cmdPrevious.Top = picFoto.Top + picFoto.Height + 100
cmdNext.Top = picFoto.Top + picFoto.Height + 100
cmdStop.Top = picFoto.Top + picFoto.Height + 100
'frmView.HScroll1.Top = cdmdstop.Top + 100
End Sub
[VB Web] - [hlrnet] - [copyright]