|
| Autor |
Nachricht |
acr_ Newbie

Anmeldedatum: 20.07.2007 Beiträge: 2
|
vb form
Verfasst am: 21.07.2007, 12:38 |
|
|
hallo,
ich habe einen projekt erstellt und möchte nun das die form anhand einer schleife langsamer geladen wird. das heißt die visibility beim starten immer steigern lassen
könnte da jemand behilflich sein?
danke im vorraus
gruß acr |
|
| |
|
 |
Marduk_ « Moderator »

Anmeldedatum: 17.06.2007 Beiträge: 389
|
Verfasst am: 21.07.2007, 13:04 |
|
|
| Code: | for i = 0 to 100 step 1
form.visibility = i
next i |
Bin jetzt net im Vb6 Geschäft aktuell und weiss net ob die Eigenschaft so heisst,, aber im Grunde ist der Sinn der Sache getroffen. Die Sichtbarkeit steigt in der Schleife von 0% bis 100%. Ist halt sehr schnell. Um es langsamer zu machen benutz i = 0 to 100000 form.visi = i / 1000 musst ein bisschen testen. Aber je länger die Schleife, desto unterschiedlicher die Ladezeiten bei deinen Usern. |
|
| |
|
 |
acr_ Newbie

Anmeldedatum: 20.07.2007 Beiträge: 2
|
Verfasst am: 21.07.2007, 14:00 |
|
|
funktioniert nicht  |
|
| |
|
 |
Marduk_ « Moderator »

Anmeldedatum: 17.06.2007 Beiträge: 389
|
Verfasst am: 21.07.2007, 14:02 |
|
|
Was genau funktioniert nicht?
An welcher Stelle kommt den ein fehler? |
|
| |
|
 |
killer110_ Poster


Anmeldedatum: 16.04.2007 Beiträge: 165
|
Verfasst am: 21.07.2007, 16:51 |
|
|
API:
| Code: | ' zunächst die benötigten API-Deklarationen
Private Declare Function AnimateWindow Lib "user32" ( _
ByVal hwnd As Long, _
ByVal Time As Long, _
ByVal Flags As Long) As Long
Private Const AW_ACTIVATE = &H20000
Private Const AW_BLEND = &H80000
Private Const AW_CENTER = &H10
Private Const AW_SLIDE = &H40000
Private Const AW_HIDE = &H10000
Private Const AW_HOR_POSITIVE = &H1
Private Const AW_HOR_NEGATIVE = &H2
Private Const AW_VER_POSITIVE = &H4
Private Const AW_VER_NEGATIVE = &H8
Private Const WM_PAINT = &HF
Enum FensAnimArt
EINBLENDEN
AUSBLENDEN
End Enum
Enum FensAnimEffekt
DIMMEN
ROLLEN_SEITE
ROLLEN_MITTE
SCHIEBEN
End Enum
Enum FensAnimRichtung
N
NO
O
SO
S
SW
W
NW
End Enum
Private Sub FensAnim( _
ByVal Fenster As Form, _
ByVal Art As FensAnimArt, _
ByVal Effekt As FensAnimEffekt, _
ByVal Richtung As FensAnimRichtung, _
ByVal Dauer_ms As Integer)
' Fehlerbehandlung aktivieren
On Error Resume Next
Dim Flags As Long
Flags = 0
' Flag Ein/Ausblenden
Select Case Art
Case FensAnimArt.EINBLENDEN
Flags = Flags + AW_ACTIVATE
Case FensAnimArt.AUSBLENDEN
Flags = Flags + AW_HIDE
End Select
' Effect-Flag addieren
Select Case Effekt
Case FensAnimEffekt.ROLLEN_SEITE
Flags = Flags + 0
Case FensAnimEffekt.ROLLEN_MITTE
Flags = Flags + AW_CENTER
Case FensAnimEffekt.SCHIEBEN
Flags = Flags + AW_SLIDE
Case FensAnimEffekt.DIMMEN
Flags = Flags + AW_BLEND
End Select
' Richtungs-Flags addieren
Select Case Richtung
Case FensAnimRichtung.N
Flags = Flags + AW_VER_NEGATIVE
Case FensAnimRichtung.NO
Flags = Flags + AW_VER_NEGATIVE + AW_HOR_POSITIVE
Case FensAnimRichtung.O
Flags = Flags + AW_HOR_POSITIVE
Case FensAnimRichtung.SO
Flags = Flags + AW_VER_POSITIVE + AW_HOR_POSITIVE
Case FensAnimRichtung.S
Flags = Flags + AW_VER_POSITIVE
Case FensAnimRichtung.SW
Flags = Flags + AW_VER_POSITIVE + AW_HOR_NEGATIVE
Case FensAnimRichtung.W
Flags = Flags + AW_HOR_NEGATIVE
Case FensAnimRichtung.NW
Flags = Flags + AW_VER_NEGATIVE + AW_HOR_NEGATIVE
End Select
' Animation ausführen
' (Programm/Thread ist solange pausiert)
AnimateWindow Fenster.hwnd, Dauer_ms, Flags
' sicherheits Fenster anzeigen/verstecken
' (falls Animation fehlschlägt!)
Select Case Art
Case FensAnimArt.EINBLENDEN
Fenster.Show
Case FensAnimArt.AUSBLENDEN
Fenster.Hide
End Select
' sicherheitshalber Neuzeichnen
' (um Grafikfehler zu vermeiden)
Fenster.Refresh
End Sub |
Aufruf:
| Code: | Private Sub Form_Load()
' Einblenden
FensAnim Me, EINBLENDEN, SCHIEBEN, W, 500
End Sub
Private Sub Form_Unload(Cancel As Integer)
' Ausblenden
FensAnim Me, AUSBLENDEN, DIMMEN, W, 500
End Sub |
 |
|
| |
|
 |
|
|