Aller au contenu
  • Pas encore inscrit ?

    Pourquoi ne pas vous inscrire ? C'est simple, rapide et gratuit.
    Pour en savoir plus, lisez Les avantages de l'inscription... et la Charte de Zébulon.
    De plus, les messages que vous postez en tant qu'invité restent invisibles tant qu'un modérateur ne les a pas validés. Inscrivez-vous, ce sera un gain de temps pour tout le monde, vous, les helpeurs et les modérateurs ! :wink:

Encore et toujours : Visual Basic !


Messages recommandés

Posté(e)

Salut !

 

Voilà le problème du jour :

 

Existe-t-il un contrôle ActiveX (ou une autre méthode) pour faire un timer qui puisse avoir plus d'une minute entre chaque intervalle ?

Car le timer standard ne dépasse pas 10 secondes... :-(

À part placer plusieurs timers, y-a-t-il une solution ?

 

Merci !

Posté(e)

Les activex ... vaut mieux les éviter quand on peut. Je te propose ma méthode qui fait appel aux API, dans ton forumulaire colle ce code :

 

Private Declare Function SetTimer Lib "user32" (ByVal hWnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long

 

 

Private sub Form_Load()

 

' Timer à 1000

SetTimer Me.hWnd, 0, 1000, AddressOf TimerProc

 

end sub

 

Dans un module, et uniquement dans un module :

 

 

Public Sub TimerProc(ByVal hWnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long)

 

' je te conseille plutot de mettre tes variables en public plutot qu'en static

static secondes as long

 

secondes = secondes + 1

 

 

End Sub

 

 

Voila, 'njoy !

Posté(e)

Super ! Bonne API, ça vaut toujours mieux qu'un contrôle ActiveX, comme tu dis !

 

Puisqu'on est dedans, tu connais une API pour remplacer le contrôle Microsoft Common Dialog Control (surtout ShowSave)

 

Merci en tous cas !

Posté(e)

:P

Je me fait une petite feuille pour ouvrir fermer etc...

Genre une feuille avec 1 drivelistbox 1 filelistbox 1 listbox 1textbox 1 bouton ok 1 bouton annuler le tour est joue.

a+

Posté(e)

Private Type OPENFILENAME

lStructSize As Long

hwndOwner As Long

hInstance As Long

lpstrFilter As String

lpstrCustomFilter As String

nMaxCustFilter As Long

nFilterIndex As Long

lpstrFile As String

nMaxFile As Long

lpstrFileTitle As String

nMaxFileTitle As Long

lpstrInitialDir As String

lpstrTitle As String

flags As Long

nFileOffset As Integer

nFileExtension As Integer

lpstrDefExt As String

lCustData As Long

lpfnHook As Long

lpTemplateName As String

End Type

 

Private Const OFN_HIDEREADONLY = &H4

Private Const OFN_ALLOWMULTISELECT = &H200

Private Const OFN_EXPLORER = &H80000 ' nouveau look de commdlg

Private Const OFN_FILEMUSTEXIST = &H1000

Private Const OFN_PATHMUSTEXIST = &H800

Private Const OFN_LONGNAMES As Long = &H200000

Private Const OFN_NODEREFERENCELINKS As Long = &H100000

Private Const OFN_CREATEPROMPT As Long = &H2000

 

Private Declare Function GetSaveFileName Lib "comdlg32.dll" Alias "GetSaveFileNameA" (pOpenfilename As OPENFILENAME) As Long

 

 

Public Function OpenSaveFile(szDlgTitle As String, Optional SearchDir As String = "c:") As String

Dim OF As OPENFILENAME

Dim szFile As String

Dim szFileTitle As String

Dim szDir As String

 

 

Const MAX_FILE = 8192

 

szFile = Space$(2048)

 

With OF

.lStructSize = Len(OF)

.flags = OFN_EXPLORER Or OFN_PATHMUSTEXIST Or OFN_FILEMUSTEXIST

.hInstance = App.hInstance

.hwndOwner = Form1.hWnd ' Assigne la fenetre mere; Set the window owner

.lpstrFilter = "Picture Files (*.bmp,*.gif,*.jpg)" & Chr$(0) & "*.bmp;*.gif;*.jpg" & Chr$(0)

.lpstrInitialDir = SearchDir ' Assigne le repertoire par defaut; Set the defaut directory

.lpstrFile = Space$(255) 'szFile ' Creer un tampon; Create a buffer

.lpstrTitle = szDlgTitle ' Assigne le Titre de la boite de dialogue; Set the Dlg Title (Add file, Open File ...)

.nMaxFile = Len(szFile) ' Longueur maximale d'un fichier; Maximum lenght of a file

.nMaxFileTitle = Len(szDlgTitle) ' Longueur maximale du titre; Maximum length of a DLG Title

End With

If GetOpenFileName(OF) Then

' 0 = Save 1 = Load 2 = Add

OpenSaveFile= OF.lpstrFile

Else

'MsgBox "error during saving process.", vbCritical

OpenSaveFile= ""

End If

 

 

End Function

 

J'ai pas testé, mais ca devrais etre bon normalement.

Posté(e)

jeanbi : Merci, mais avec ce système on se croirait sous windows 3.1 :P

 

 

KarLKoX : Merci aussi ! Je testerai plus tard ! (où-est-ce que tu trouves tout ça ???)

 

Et pendant que j'y suis, pourquoi dans les constantes, on met souvent la valeur héxadécimale ? Pourquoi pas décimale ? Ça marche aussi bien !

Posté(e)

laubean>c'est exactement ca :P

 

leneuf22>ou est ce que je trouve ca ? Dans la MSDN en général, la plupart des API sont documentées et il y a quelques exemples en VB. Quand il y en a pas, je les converties du C/C++ vers VB, et vice versa :-(

Posté(e)

Ha oui, évidemment, mais il faut connaître le C, ce qui n'est pas mon cas !

 

Dis donc tu m'as l'air de beaucoup t'y connaître en programmation !

Tu connais aussi le C# ? Ça à l'air super mais personne n'en parle !

Que me conseilles-tu pour débuter ? le C/C++ ou le C# ?

Posté(e)

Je m'y connait beaucoup ... euh je dirais que tout est relatif quand même :-(

 

Le C# ( C sharp) est un langage créé par Microsoft et est implenté dans la plateforme .NET (la "révolution" informatique selon eux). C'est un langage orienté objet, simple et assez rapide. Il est syntaxiquement identique au Java mais avec des variantes (délégation, les assemblées ...)et grâce au .NET, on peut mixer du code de langages différents. On pourrait croire que c'est LE langage àchoisir, et bien par pour moi.

Déja, ce langage s'inscrit dans la plateforme .NET qui, si elle apporte des avancées concrete dans le domaine de la programmation, n'en demeure pas moins néfaste d'un point de vu politique/philosophique (passer OBLIGATOIREMENT par un OS Microsoft, pour l'instant). Ensuite, autant prendre le java qui, bien que plus lourd, est déja mature et est implenté dans pas mal d'entreprises, et c'est bien ce qui nous interesse.

Pour répondre à ta question, je dirais donc de choisir un vrai langage (le C par exemple) qui te donnera les bon reflexes, les notions de langage procédurale, pointeurs et autre joyeuseté, pour ensuite évolué vers le C++ ou le Java. Par contre, il faut savoir que la programmation objet est différente et que lors de l'évolution du C vers le C++, il faudra oublier de programmer par bloque de fonction (prog procédurale donc) pour penser "objet", une période d'adatpation sera nécéssaire. A moins que tu as déja de bonnes notions en programmation, la tu peux directement passer vers le C++, mais ca sera (peut etre) un peu moins facile.

 

Ah oui, j'oubliais, tu peux avoir des cours en C/C++/C#sur :

 

http://www.programmationworld.com

 

Le niveau est débutant, tu pourras voir par toi même :P

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.
Remarque : votre message nécessitera l’approbation d’un modérateur avant de pouvoir être visible.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

  • En ligne récemment   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
×
×
  • Créer...