keops_dev
Messages postés9Date d'inscriptionvendredi 19 mars 2004StatutMembreDernière intervention11 juin 2009
-
11 juin 2009 à 10:28
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 2015
-
12 juin 2009 à 16:07
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
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 12 juin 2009 à 16:07
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)