UNE HORLOGE À AIGUILLE DANS UN CONTRÔLE FRAME OU PICTURE

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 13 nov. 2007 à 15:16
krakorg Messages postés 9 Date d'inscription jeudi 7 décembre 2000 Statut Membre Dernière intervention 7 novembre 2009 - 2 déc. 2008 à 20:52
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/44699-une-horloge-a-aiguille-dans-un-controle-frame-ou-picture

krakorg Messages postés 9 Date d'inscription jeudi 7 décembre 2000 Statut Membre Dernière intervention 7 novembre 2009
2 déc. 2008 à 20:52
bravo champion c'est super je micropro7 un débutant et je suis en cote d'ivoire .il n'y a pas assez de programmeur donc c'est avec vous que je peux apprendre mieux.merci de m'écrire .
mon mail est:micropro7@yahoo.fr
brechnelle Messages postés 5 Date d'inscription mercredi 17 septembre 2008 Statut Membre Dernière intervention 31 octobre 2008
18 sept. 2008 à 12:42
SVP est ce que vous pouvez me fournir le code qui sera reconnu sous VB.NET parce qu'en fait quand je l'ouvre dans la fenêtre d'exécution il me présente 19 erreurs je veu pouvoir l'afficher dans la fenêtre principale de mon code un MDIParentINFO dans il ne reconnait pas par exp toute les déclarations kil se charge de souligné en rouge j'ai placé un picturebox1 dans ma fenêtre je vous donne un peu mon code et la façon dont je l'ai insérer dedans pour ke vous puissiez m'aider

Option Explicit On
'couleur des aiguilles
Imports System.Windows.Forms
Private mnHourHand As Integer
Private mnMinuteHand As Integer
Private mnSecondHand As Integer
'--- variable
Private mnHnum As Integer
Private mnMnum As Integer
Private mnSnum As Integer
Private mfHlen As Single
Private mfMlen As Single
Private mfSlen As Single
Public gnHourHandColor As Integer
Public gnMinuteHandColor As Integer
Public gnSecondHandColor As Integer
'--- variable
Private Const Pi = 3.14159265358979
Private Const TwoPi = Pi + Pi
Private Const HalfPi = Pi / 2
Private Sub cmdSetTime_Click()

Dim sPrompt As String
Dim sTitle As String
Dim sDefault As String
Dim sStartTime As String
Dim sTim As String
Dim sMsg As String
'Demander la nouvelle heure à l'utilisateur
sPrompt = "Entrez l'heure en format 00:00:00"
sTitle = "Horloge"
sDefault = Timer$
sStartTime = sDefault
sTim = InputBox$(sPrompt, sTitle, sDefault)
'Tester si l'utilisateur a cliqué sur Annuler ou sur OK sans changement
If sTim "" Or sTim sStartTime Then
Exit Sub
End If
'Mettre à la nouvelle heure
On Error GoTo ErrorTrap
Time$ = sTim
Exit Sub
ErrorTrap:
'Récupération de l'erreur
sMsg = "L'heure que vous avez entrée n'est pas valide. " + sTim
MsgBox(sMsg, 48, "Horloge")
Resume Next
End Sub
Private Sub tmrClock_Timer()
Dim dHang As Double
Dim dMang As Double
Dim dSang As Double
Dim dHx As Double
Dim dHy As Double
Dim dMx As Double
Dim dMy As Double
Dim dSx As Double
Dim dSy As Double
'Garder trace de la seconde en cours
Static LastSecond
'Tester pour voir si c'est une nouvelle seconde
If Second(Now) = LastSecond Then
Exit Sub
Else
LastSecond = Second(Now)
End If
'Mettre à jour les variables de l'heure
mnHnum = Hour(Now)
mnMnum = Minute(Now)
mnSnum = Second(Now)
'Calculer les angles des aiguilles
dHang = TwoPi * (mnHnum + mnMnum / 60) / 12 - HalfPi
dMang = TwoPi * (mnMnum + mnSnum / 60) / 60 - HalfPi
dSang = TwoPi * mnSnum / 60 - HalfPi
'Calculer les extrémités de chaque aiguille
dHx = mfHlen * Cos(dHang)
dHy = mfHlen * Sin(dHang)
dMx = mfMlen * Cos(dMang)
dMy = mfMlen * Sin(dMang)
dSx = mfSlen * Cos(dSang)
dSy = mfSlen * Sin(dSang)
'Restaurer l'image de fond
picBackGround.Cls()
'Restaurer les couleurs et formes
picBackGround.Line (0, 0)-(dMx, dMy), QBColor(gnMinuteHandColor)
picBackGround.Line (0, 0)-(dHx, dHy), QBColor(gnHourHandColor)
picBackGround.Line (0, 0)-(dSx, dSy), QBColor(gnSecondHandColor)
End Sub
Private Sub MDIParentINFO_Load()
picBackGround.Scale (-2, -2)-(2, 2)
picBackGround.DrawWidth = 2
'Définir la longueur des aiguilles
mfHlen = 0.8
mfMlen = 1.4
mfSlen = 1.6
'définition de la couleur des auguilles
gnHourHandColor = (mnHourHand + 4)
gnMinuteHandColor = (mnMinuteHand + 4)
gnSecondHandColor = (mnSecondHand + 8)
'Affiche la date du jour dans le contrôle lbldate
Dim D As String
D = Date
lbldate.Caption = D
End Sub


Public Class MDIParentINFO
Private Sub ShowNewForm(ByVal sender As Object, ByVal e As EventArgs) Handles NewToolStripButton.Click, NewWindowToolStripMenuItem.Click
' Créez une nouvelle instance du formulaire enfant.
Dim ChildForm As New System.Windows.Forms.Form
' Configurez-la en tant qu'enfant de ce formulaire MDI avant de l'afficher.
ChildForm.MdiParent = Me

m_ChildFormNumber += 1
ChildForm.Text = "Fenêtre " & m_ChildFormNumber

ChildForm.Show()
End Sub

Private Sub OpenFile(ByVal sender As Object, ByVal e As EventArgs) Handles OpenToolStripButton.Click
Dim OpenFileDialog As New OpenFileDialog
OpenFileDialog.InitialDirectory = My.Computer.FileSystem.SpecialDirectories.MyDocuments
OpenFileDialog.Filter = "Fichiers texte (*.txt)|*.txt|Tous les fichiers (*.*)|*.*"
If (OpenFileDialog.ShowDialog(Me) = System.Windows.Forms.DialogResult.OK) Then
Dim FileName As String = OpenFileDialog.FileName
' TODO : ajoutez le code ici pour ouvrir le fichier.
End If
End Sub

Private Sub SaveAsToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs)
Dim SaveFileDialog As New SaveFileDialog
SaveFileDialog.InitialDirectory = My.Computer.FileSystem.SpecialDirectories.MyDocuments
SaveFileDialog.Filter = "Fichiers texte (*.txt)|*.txt|Tous les fichiers (*.*)|*.*"

If (SaveFileDialog.ShowDialog(Me) = System.Windows.Forms.DialogResult.OK) Then
Dim FileName As String = SaveFileDialog.FileName
' TODO : ajoutez le code ici pour enregistrer le contenu actuel du formulaire dans un fichier.
End If
End Sub


Private Sub ExitToolsStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles ExitToolStripMenuItem.Click
Global.System.Windows.Forms.Application.Exit()
End Sub

Private Sub CutToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles CutToolStripMenuItem.Click
' Utilisez My.Computer.Clipboard pour insérer les images ou le texte sélectionné dans le Presse-papiers
End Sub

Private Sub CopyToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles CopyToolStripMenuItem.Click
' Utilisez My.Computer.Clipboard pour insérer les images ou le texte sélectionné dans le Presse-papiers
End Sub

Private Sub PasteToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles PasteToolStripMenuItem.Click
'Utilisez My.Computer.Clipboard.GetText() ou My.Computer.Clipboard.GetData pour extraire les informations du Presse-papiers.
End Sub

Private Sub ToolBarToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles ToolBarToolStripMenuItem.Click
Me.ToolStrip.Visible = Me.ToolBarToolStripMenuItem.Checked
End Sub

Private Sub StatusBarToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles StatusBarToolStripMenuItem.Click
Me.StatusStrip.Visible = Me.StatusBarToolStripMenuItem.Checked
End Sub

Private Sub CascadeToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles CascadeToolStripMenuItem.Click
Me.LayoutMdi(MdiLayout.Cascade)
End Sub

Private Sub TileVerticleToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles TileVerticalToolStripMenuItem.Click
Me.LayoutMdi(MdiLayout.TileVertical)
End Sub

Private Sub TileHorizontalToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles TileHorizontalToolStripMenuItem.Click
Me.LayoutMdi(MdiLayout.TileHorizontal)
End Sub

Private Sub ArrangeIconsToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles ArrangeIconsToolStripMenuItem.Click
Me.LayoutMdi(MdiLayout.ArrangeIcons)
End Sub

Private Sub CloseAllToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles CloseAllToolStripMenuItem.Click
' Fermez tous les formulaires enfants du parent.
For Each ChildForm As Form In Me.MdiChildren
ChildForm.Close()
Next
End Sub

Private m_ChildFormNumber As Integer = 0

Private Sub UndoToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

End Sub

Private Sub SelectAllToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SelectAllToolStripMenuItem.Click

End Sub

Private Sub MatérielToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MatérielToolStripMenuItem.Click
FormEMPLOYE.MdiParent = Me
FormEMPLOYE.Show()

End Sub

Private Sub EmployésToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles EmployésToolStripMenuItem.Click
FormNEWEMPLOY.MdiParent = Me
FormNEWEMPLOY.Show()
End Sub

Private Sub PeriphériquesToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PeriphériquesToolStripMenuItem.Click
FormNEWPeriph.MdiParent = Me
FormNEWPeriph.Show()
End Sub

Private Sub OrdinateurToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OrdinateurToolStripMenuItem.Click
FormNEWORDIN.MdiParent = Me
FormNEWORDIN.Show()
End Sub

Private Sub AccessoiresToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AccessoiresToolStripMenuItem.Click
FormNEWACCESSOIR.MdiParent = Me
FormNEWACCESSOIR.Show()
End Sub

Private Sub AffectationToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AffectationToolStripMenuItem.Click

End Sub

Private Sub EnregistrerToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles EnregistrerToolStripMenuItem.Click
FormENREGPANNE.MdiParent = Me
FormENREGPANNE.Show()
End Sub

Private Sub RetraitToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RetraitToolStripMenuItem.Click
FormRETRAITMAT.MdiParent = Me
FormRETRAITMAT.Show()
End Sub

Private Sub ContrôleToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ContrôleToolStripMenuItem.Click
FormMAINTENANCEPREVENT.MdiParent = Me
FormMAINTENANCEPREVENT.Show()
End Sub

Private Sub MDIParentINFO_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
End Class


voici les erreurs kil souligne en bleu en fait toutes les déclarations comme celle_ci et il affiche le SMS "instruction non valide dans un espace de nom"
Private mnHnum As Integer
Private Sub tmrClock_Timer()
Public gnMinuteHandColor As Integer
merci davavce pour votre aide
aldyno Messages postés 1 Date d'inscription mardi 11 avril 2006 Statut Membre Dernière intervention 13 novembre 2007
13 nov. 2007 à 22:55
Merci pour l'info. Idées sympas pour la suite de son développement. Je m'y mets.
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
13 nov. 2007 à 15:16
Il y avait longtemps qu'on n'avait eu d'horloge !
Code bien présenté.
Pour info : Saisie de l'heure sans clavier : http://www.codes-sources.com/code.aspx?ID=43070

Idées de développement :
- rendre cette horloge "resizable"
- gérer les affichages en temps universel/fuseau horaire
Rejoignez-nous