| Function, DirListBox, DriveListBox, FileListBox, Timer |
| |
| API-Funktion für blinkende Titelleiste. |
| Private Declare Function FlashWindow Lib "user32" (ByVal hwnd As Long, ByVal bInvert As Long) As Long |
| Dim blink As Boolean | |
| Dieses Beispiel verwendet die Drag-Methode, um den |
| Private Sub Form_Load() | Dateinamen einer Bitmap-Datei in ein Bildfeld zu ziehen, |
| Me.Show | in dem die Bitmap dann angezeigt wird. |
| blink = Not blink | Vier Zeilen zur Blinkenden Titelleiste. |
| Timer1.Interval = 500 | |
| Timer1.Enabled = blink | |
| FlashWindow Me.hwnd, False | |
| | |
| Label1.Visible = 0 | Bezeichnung des Labels ausblenden. |
| File1.Pattern = "*.bmp;*.gif;*.jpg;*.wmf" | Dateimuster setzen (ohne Leerfelder eingeben!). |
| Form1.Left = Screen.Width - Form1.Width - 100 | Position des ersten Formulars: |
| Form1.Top = Screen.Height - Form1.Height - 500 | rechte untere Bildschirmecke. |
| End Sub | |
| |
| Private Sub Dir1_Change() | |
| File1.Path = Dir1.Path | Jede Änderung der DirListBox in FileListBox übernehmen. |
| End Sub | |
| |
| Private Sub Drive1_Change() | |
| On Error GoTo ERR | |
| Dir1.Path = Drive1.Drive | Jede Änderung der DriveListBox in DirListBox übernehmen. |
| Exit Sub | |
| ERR: | |
| MsgBox "Legen Sie einen Datenträger ein." | Fehler abfangen, wenn keine Diskette im Laufwerk. |
| End Sub | |
| |
| Private Sub File1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) |
| Dim dy | |
| dy = TextHeight("A") | Höhe des Bezeichnungsfeldes bestimmen. |
| Label1.Move File1.Left, File1.Top + Y - dy / 2, File1.Width, dy | Kontur des Bezeichnungsfeldes. |
| Label1.Drag | |
| End Sub | |
| |
| Private Sub File1_Click() | |
| File1.SetFocus | |
| End Sub | |
| |
| Private Sub File1_KeyDown(KeyCode As Integer, Shift As Integer) |
| Select Case KeyCode | Bild-Auswahl, wenn die CursorUp oder -Down-Tasten |
| Case 33, 34, 38, 40: Call anzeigen | benutzt werden. |
| Case Else: KeyCode = 0 | |
| End Select | |
| End Sub | |
| |
| Private Sub File1_DblClick() | |
| On Error Resume Next | |
| Call anzeigen | Bild-Auswahl durch DoubleClick-Ereignis. |
| End Sub | |
| |
| Private Sub File1_DragOver(Source As Control, X As Single, Y As Single, State As Integer) |
| On Error Resume Next | Source ist das gezogene Steuerelement; State ist eine |
| If State = 0 And Right$(File1.FileName, 4) = ".ICO" Then | Ganzzahl, die dem Zustand des gezogenen Elements |
Label1.DragIcon = LoadPicture(File1.Path + "\" + _ File1.FileName) | entspricht. "Ziehen"-Symbol verwenden. |
| ElseIf State = 1 Then | |
| Label1.DragIcon = LoadPicture() | Kein "Ziehen"-Symbol verwenden. |
| End If | |
| End Sub | |
| |
| Private Sub Dir1_DragOver(Source As Control, X As Single, Y As Single, State As Integer) |
| Call status(Source, X, Y, State) | siehe Modul_1 |
| End Sub | |
| |
| Private Sub Drive1_DragOver(Source As Control, X As Single, Y As Single, State As Integer) |
| Call status(Source, X, Y, State) | |
| End Sub | |
| |
| Private Sub Form_DragOver(Source As Control, X As Single, Y As Single, State As Integer) |
| Call status(Source, X, Y, State) | |
| End Sub | |
| |
| Private Sub Timer1_Timer() | |
| FlashWindow Me.hwnd, True | Blinkende Titelleiste. |
| End Sub | |
| |
| Private Sub Dir1_Click() | |
| Timer1.Enabled = False | Bei Auswahl aus DirListBox wird der Timer ausgeschaltet. |
| End Sub | |
| |
| Private Sub Form_Unload(Cancel As Integer) | |
| Unload Form2 | |
| End Sub | |
| |
| Ab hier Formular_2: | |
| |
| Private Sub Form_Load() | |
| Top = 0: Left = 0 | Position des zweiten Formulars: linke obere Ecke. |
| Picture1.AutoSize = -1 | AutoSize einschalten. |
| End Sub | |
| |
| Private Sub Picture1_DragDrop(Source As Control, X As Single, Y As Single) |
| On Error Resume Next | |
| Call anzeigen | Bild-Auswahl durch Drag & Drop-Ereignis. |
| End Sub | |
| |
| Ab hier Modul_1: | |
| |
| Public Sub anzeigen() | |
| Dim oldx#, oldy#, newx#, newy# | Deklarationen für alte und neue Formular-Breiten / -Höhen. |
| On Error Resume Next | |
| With Form2 | |
| .Show | Wichtig, um das Formular immer komplett anzuzeigen. |
| oldx = .Picture1.Width | Alte Bildgröße merken. |
| oldy = .Picture1.Height | |
.Picture1.Picture = LoadPicture(Form1.File1.Path + "\" + _ Form1.File1.FileName) | Bild wird geladen |
| newx = .Picture1.Width | Neue Bildgröße merken. |
| .Width = .Width + newx - oldx | Formular an neue Bildgröße anpassen. |
| newy = .Picture1.Height | |
| .Height = .Height + newy - oldy | |
| .Caption = Form1.File1.Path + "\" + Form1.File1.FileName | |
| End With | |
| Form1.File1.SetFocus | |
| End Sub | |
| |
| Public Sub status(Source As Control, X As Single, Y As Single, State As Integer) |
| If State = 0 Then Source.MousePointer = 12 | Zeiger in Nicht-Ablegen-Zeiger ändern. |
| If State = 1 Then Source.MousePointer = 0 | Standard-Mauszeiger verwenden. |
| End Sub | |
| |
| Verfahren zur Laufwerksauswahl siehe: |
| http://www.wbrnet.info/db/0059.html |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| . |
| |