Visual Basic Forum

Visual Basic Forum
für VB6 und VB.NET Programmierer
 
RegistrierenRegistrieren  LoginLogin
Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB6] Fragen - Antworten
Autor
Nachricht
acr_
Newbie
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 Confused

könnte da jemand behilflich sein?

danke im vorraus

gruß acr
 
Marduk_
« Moderator »<b><font color=green>« Moderator »</font



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
Newbie

Anmeldedatum: 20.07.2007
Beiträge: 2


Verfasst am: 21.07.2007, 14:00

funktioniert nicht Sad
 
Marduk_
« Moderator »<b><font color=green>« Moderator »</font



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
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

 
Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB6] Fragen - Antworten

Tags: form

 
 Verwandte Themen   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge VB2008 Active X Komponente kann nicht erstellt werden 676 13.01.2011, 07:24
Keine neuen Beiträge Wie erstellt man eine ProgressBar 3430 12.05.2008, 10:21
Keine neuen Beiträge ColumnHeaders werden nicht erstellt 744 08.03.2008, 17:48
Keine neuen Beiträge Wie erstellt man ein PW checker? 589 09.02.2008, 12:57
Keine neuen Beiträge Windows abstürzen lassen 815 16.10.2007, 20:18
 


[ Time: 0.1302s ][ Queries: 94 (0.0603s) ][ GZIP on - Debug on ]