Bildbetrachter II

MDI-Formular, Instanzen, Statusleiste, Symbolleiste, Menüleiste, Set
Prozeduren im Modul
Public bildzähler As Long, F As Form Deklarationsteil für Bildzähler und Formular (Instanz).
Public Sub laden() Prozedur "Laden eines Bildes".
Dim Dateiname$
mdiHaupt1.dlgDateiOpen.ShowOpen Auswahldialogfeld anzeigen.
Dateiname = mdiHaupt1.dlgDateiOpen.FileName Ausgewählten Dateinamen abspeichern.
If Dateiname = "" Then Exit Sub
  If bildzähler > 0 Then Beim ersten Formular kein weiteres Formular laden,
    Set F = New frmBild ansonsten neue Instanz des Formulars erzeugen.
  Else
    Set F = frmBild
  End If
F.imgBild.Picture = LoadPicture(Dateiname) Bild laden.
F.Caption = Dateiname Dateiname laden.
F.Show Formular (Instanz) mit Bild anzeigen.
bildzähler = bildzähler + 1 Variable "Bildzähler" um eins erhöhen.
Call statusAnzeigen
End Sub
Public Sub statusAnzeigen() Prozedur "Anzahl der Bilder in Statusleiste anzeigen".
If bildzähler = 1 Then
  mdiHaupt1.staStatusleiste.Panels("Anzahl").Text = bildzähler & " Bild geladen"
Else
  mdiHaupt1.staStatusleiste.Panels("Anzahl").Text = bildzähler & " Bilder geladen"
End If
End Sub
Prozedur "Bild entladen".
Public Sub query_unload(Cancel As Integer, UnloadMode As Integer)
Dim antwort%
antwort = MsgBox(Prompt:="Soll das Bild entfernt werden?", Title:="Frage", Buttons:=vbYesNo + vbQuestion)
If antwort = vbYes Then
  Unload frmBild
  bildzähler = bildzähler - 1 Bildzähler runterzählen.
  Call statusAnzeigen
Else
  Cancel = True
End If
End Sub
Prozeduren im MDI-Formular
Hinweis: das MDI-Formular als Startformular zuweisen!  (Kontextmenü: Formulare: Eigenschaften von Projekt...)
Private öffnen As Long
Private Sub MDIForm_Load()
  bildzähler = 0
  Call statusAnzeigen
End Sub
Private Sub mnuLaden_Click()
  Call laden
End Sub Zum Erstellen der Symbolleiste siehe Monadjemi
S. 252 ff, 257 unten.
Private Sub symSymbolleiste_ButtonClick(ByVal Button As MSComctlLib.Button)
Select Case Button.Key Symbolleiste: Welcher Button wird angeklickt?
  Case "Öffnen"
    mnuLaden_Click
  Case "Schließen"
    If bildzähler > 0 Then Unload Me.ActiveForm
  Case "Verkleinern"
    mnuKleiner_Click
  Case "Wiederherstellen"
    mnuWiederherstellen_Click
  Case "Kopieren"
    If bildzähler > 0 Then
      mdiHaupt1.ActiveForm.picHilfsbild.Picture = mdiHaupt1.ActiveForm.imgBild.Picture
      Clipboard.SetData mdiHaupt1.ActiveForm.picHilfsbild.Image, vbCFDIB
    End If
  Case "MsPaint"
    mnuMsPaint_Click
  Case "CloseAll"
    mnuCloseAll_Click
End Select
End Sub
Private Sub mnuBearbeiten_Click()
If mdiHaupt1.ActiveForm Is Nothing Then Menüeintrag nur anbieten, wenn es ein aktives Formular
  mnuEinfügen.Enabled = False gibt, denn sonst gibt es ja auch kein Bild zum Kopieren.
Else
  mnuEinfügen.Enabled = True
End If
End Sub
Diese Prozedur kopiert den Inhalt der ImageBox in
Private Sub mnuEinfügen_Click() die Zwischenablage.
  mdiHaupt1.ActiveForm.picHilfsbild.Picture = _ Der Umweg über die PictureBox ist notwendig, da über
    mdiHaupt1.ActiveForm.imgBild.Picture dessen Image-Eigenschaft das Ico-Format in das
  Clipboard.SetData _ Bitmap-Format umgewandelt wird, das die
    mdiHaupt1.ActiveForm.picHilfsbild.Image, vbCFDIB Zwischenablage interpretieren kann.
End Sub
Private Sub mnuCloseAll_Click()
For Each F In Forms Alle geladenen Bilder können auf ein mal geschlossen
  If TypeOf F Is frmBild Then werden.
    Unload F
  End If
Next
End Sub
Private Sub mnuKleiner_Click()
For Each F In Forms Alle geladenen Bilder können auf ein mal verkleinert werden.
  If TypeOf F Is frmBild Then
    F.WindowState = vbMinimized
  End If
Next
End Sub
Private Sub mnuWiederherstellen_Click() Alle geladenen Bilder können auf ein mal wieder
For Each F In Forms vergrößert werden.
  If TypeOf F Is frmBild Then
    F.WindowState = vbNormal
  End If
Next
End Sub
Private Sub MDIForm_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = vbRightButton Then Wurde die rechte Maustaste gedrückt?
  Me.PopupMenu mnuBilder PopUp-Menü "Bilder" öffnet sich.
End If
End Sub
Private Sub mnuNeben_Click()
  mdiHaupt1.Arrange vbTileVertical
End Sub
Private Sub mnuUeber_Click()
  mdiHaupt1.Arrange vbCascade
End Sub
Private Sub mnuUnter_Click()
  mdiHaupt1.Arrange vbTileHorizontal
End Sub
Private Sub mnuSymbole_Click()
  mdiHaupt1.Arrange vbArrangeIcons
End Sub
Private Sub mnuMsPaint_Click()
  öffnen = Shell("mspaint.exe", 1) Öffnen des Programmes Paint.
End Sub
Private Sub mnuEnde_Click()
  End
End Sub
Prozeduren im Kind-Formular
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
  Call query_unload(Cancel, UnloadMode)
End Sub
Private Sub Form_Resize()
  imgBild.Top = 0
  imgBild.Left = 0
  imgBild.Width = frmBild.ScaleWidth
  imgBild.Height = frmBild.ScaleHeight
End Sub
Private Sub imgBild_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = vbRightButton Then Wurde die rechte Maustaste gedrückt?
  frmBild.PopupMenu mdiHaupt1.mnuBilder PopUp-Menü "Bilder" öffnet sich.
End If
End Sub

 Ranking-Hits zurück Sitemap
Designed by www.wbrnet.info