[Projet VB6] Projet Splash

Signaler
Messages postés
9
Date d'inscription
vendredi 19 mars 2004
Statut
Membre
Dernière intervention
11 juin 2009
-
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
-
Bonjour,

j'ai trouver un code  pour m'inspirer d'un splash en exemple, je souhaite réaliser un projet splash screen avec le logo de mon entreprise

Donc j'ai créer une Form -> frmSplash + un module
Puis j'ai placé un timer nomer tmr sur le frmSplash

Sous la form:

Private Sub Form_Load()

    tmr.Enabled = False
    tmr.Interval = 100
    sec = 0
    AuSommet Me.hwnd

End Sub

Public Sub CloseAfter(ByVal attente As Long)

    tmr.Enabled = True
    delai = attente

End Sub

Private Sub tmr_Timer()

    sec = sec + 1
    Me.Print sec
    If sec >= delai Then Unload Me

End Sub

Sub Main()

    frmSplash.Show
    DoEvents
    'fermeture au bout de 2 secondes
    frmSplash.CloseAfter 2

End Sub



Voici le code dans le Module

Private Const SWP_NOMOVE = 2
Private Const SWP_NOSIZE = 1
Private Const FLAGS = SWP_NOMOVE Or SWP_NOSIZE
Private Const HWND_TOPMOST = -1

Private Declare Function SetWindowPos Lib "USER32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, _
                                                    ByVal x As Long, ByVal y As Long, ByVal cx As Long, _
                                                    ByVal cy As Long, ByVal wFlags As Long) As Long

Public Function AuSommet(hwnd As Long) As Long

    AuSommet = SetWindowPos(hwnd, HWND_TOPMOST, 0, 0, 0, 0, FLAGS)

End Function


Le probleme s'est que le splash s'affiche bien
 mais il reste bloqué et ne se ferme pas au bout de 2 seconde comme ecrit dans le code

Merci d'avance
++:ccool:

1 réponse

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
75
Salut
Question VB6 alors pourquoi poster dans la catégorie VB.Net ?
modifié

Non, pour être efficace, il faut utiliser une "Main Sub" dans un module.
Sous VB6 professionnel, tu as un assistant de "création d'application".
Dans cet assistant, vers la fin, on te demande si tu veux une forme de présentation au démarrage (Splash Screen)
Regarde comment c'est fait :
dans un module :
Public fMainForm As frmMain
   Sub Main()
       frmSplash.Show
       frmSplash.Refresh
       Set fMainForm = New frmMain
       Load fMainForm
       Unload frmSplash
       fMainForm.Show
   End Sub
puis, tu vas dans le menu Projet, Propriétés, et dans l'onglet Général, dans le choix "Objet de démarrage", tu choisis "Sub Main"
La Splash ne restera visible que le temps que le Form_Load de la forme principal d'exécute lors du Load. Libre à toi d'ajouter une tempo ou autre.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)