begin process at 2012 02 13 03:16:13
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Date & Heure

 > CARLVB'S HORLOGE AVEC CONTOUR IRREGULIER

CARLVB'S HORLOGE AVEC CONTOUR IRREGULIER


 Information sur la source

Note :
8,5 / 10 - par 2 personnes
8,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Date & Heure Niveau :Débutant Date de création :12/11/2003 Date de mise à jour :13/11/2003 10:38:18 Vu / téléchargé :1 841 / 159

Auteur : carlvb

Ecrire un message privé
Commentaire sur cette source (3)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Une source sans prétention destinée surtout à ceux qui cherchent à utiliser des formes avec un countour irregulier. j'ai repris un module sur le site pour cette patiue de la source.

Source

  • Tout est inclus dans le zip
Tout est inclus dans le zip

 Conclusion

La source a été mise à jour sur une proposition d'un membre du site

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip Source avec une capture CARLVB'S MOLECULEUM : UNE MOLECULE DONT LES ATOMES EN MOUVEM...
Source avec Zip CARLVB'S PMACHINE : UNE MACHINE VIRTUELLE QUI CARBURE AU PCO...
Source avec Zip Source avec une capture CARLVB'S MINIPASCAL 2
Source avec Zip MINIPASCAL 1.00 UN INTERPRETEUR DE PROGRAMME À LA PASCAL
Source avec Zip EVALUATEUR D'EXPRESSION

 Sources de la même categorie

Source avec Zip Source avec une capture LES FONCTIONS DATE PAR L'EXEMPLE. par pasquet78
Source avec Zip Source avec une capture CALENDRIER, MODE D'EMPLOI par pasquet78
Source avec Zip Source avec une capture Source .NET (Dotnet) HORLOGE DIODE AVEC 3 ALARMES ET REMISE À L'HEURE par EhJoe
Source avec Zip Source avec une capture POINTEUSE HORAIRES PAR SEMAINE par VBNoob13
Source avec Zip Source avec une capture HORLOGE À AIGUILLES SIMPLEMENT DANS UN USERFORM EXCEL par bigbe

Commentaires et avis

Commentaire de DARKSIDIOUS le 12/11/2003 11:36:23 administrateur CS

Pas trop mal, sauf que :

Tu aurais pu inclure un menu pour quitter !
Tu aurais pu faire un effet de transparence pour les chiffres en découpant également les chiffres... ca aurait donné un plus ;-)

Si tu veux la faire progresser, tu peux aller voir ma source d'horloge à l'adresse :
http://www.vbfrance.com/code.aspx?ID=4506

Il s'agit grosso-modo de la même idée, mais un peu plus poussée ;p

Je te mets 7/10

DarK Sidious

Commentaire de EBArtSoft le 12/11/2003 12:24:00 administrateur CS

carlvb>Si je peut me permettre qlq modifs d'ordre fonctionnel :

- Il faudrait supprimer le module
    (mettre les fonctions en private dans la form)

- Supprimer la picturebox et mettre l'image
    dans la prop picture de la form

- Mettre Pixel au lieu de twip (scalemode)
- Mettre autoredraw = true
- Capturer l'heure qu'une seul fois au lieu de 4

bref voici le code :
(la from a été qlq peut modifié mais tu devrais pouvoir t'y retrouver)

Private Const Pi As Double = 3.14159265358979
Private Const WM_NCLBUTTONDOWN = &HA1
Private Const HTCAPTION = 2
Private Const RGN_OR = 2

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Private Declare Function GetPixel Lib "gdi32" (ByVal hDC As Long, ByVal X As Long, ByVal Y As Long) As Long
Private Declare Function CombineRgn Lib "gdi32" (ByVal hDestRgn As Long, ByVal hSrcRgn1 As Long, ByVal hSrcRgn2 As Long, ByVal nCombineMode As Long) As Long
Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
Private Declare Function SetWindowRgn Lib "user32" (ByVal hWnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long
Private Declare Function CreateRectRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
Private Declare Function ReleaseCapture Lib "user32" () As Long

Private WindowRegion As Long

Private Sub Form_Load()
    
    'Les lignes suivantes servent à initialiser la position des trois aiguilles
    Line1.X1 = Int((Me.Width / Screen.TwipsPerPixelX) / 2)
    Line1.Y1 = Int((Me.Height / Screen.TwipsPerPixelY) / 2) - 40
    Line2.X1 = Line1.X1
    Line2.Y1 = Line1.Y1
    Line3.X1 = Line1.X1
    Line3.Y1 = Line1.Y1

    'On découpe ensuite la forme suivant le countour circulaire
    WindowRegion = MakeRegion(Me)
    SetWindowRgn Me.hWnd, WindowRegion, True
End Sub

Private Sub Form_Unload(Cancel As Integer)
    'On rend a la fenetre sa forme original
    SetWindowRgn Me.hWnd, 0, False
    DeleteObject WindowRegion
End Sub

Private Function MakeRegion(picSkin As Form) As Long
    Dim X As Long, Y As Long, StartLineX As Long
    Dim FullRegion As Long, LineRegion As Long
    Dim TransparentColor As Long
    Dim InFirstRegion As Boolean
    Dim InLine As Boolean
    Dim hDC As Long
    Dim PicWidth As Long
    Dim PicHeight As Long
    
    hDC = picSkin.hDC
    PicWidth = picSkin.ScaleWidth
    PicHeight = picSkin.ScaleHeight
    
    InFirstRegion = True: InLine = False
    X = Y = StartLineX = 0
    
    TransparentColor = GetPixel(hDC, 0, 0)
    
    For Y = 0 To PicHeight - 1
        For X = 0 To PicWidth - 1
            
            If GetPixel(hDC, X, Y) = TransparentColor Or X = PicWidth Then

                If InLine Then
                    InLine = False
                    LineRegion = CreateRectRgn(StartLineX, Y, X, Y + 1)
                    
                    If InFirstRegion Then
                        FullRegion = LineRegion
                        InFirstRegion = False
                    Else
                        CombineRgn FullRegion, FullRegion, LineRegion, RGN_OR

                        DeleteObject LineRegion
                    End If
                End If
            Else
                If Not InLine Then
                    InLine = True
                    StartLineX = X
                End If
            End If
        Next
    Next
    
    MakeRegion = FullRegion
End Function

Private Sub Form_DblClick()
    'Pour arrêter le programme double cliquer sur la form
    Unload Me
End Sub

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    'Pour pouvoir déplacer la form car on n'a pas de barre de titre
    ReleaseCapture
    SendMessage Me.hWnd, WM_NCLBUTTONDOWN, HTCAPTION, 0&
End Sub

Private Sub Timer1_Timer()
    Dim Instant As Date
    
    'La première partie de cette procédure sert à prendre l'heure, la minute et la seconde
    Instant = Time
    Ora = Hour(Instant) Mod 12
    minitra = Minute(Instant)
    segondra = Second(Instant)
    
    'affichage de l'horloge digitale
    Text1 = Instant
    
    'déplacement des aiguilles de l'horloge analogique
    'La première extremité de l'aiguille reste toujours le centre de l'horloge
    'La seconde est calculé à partir du racine complexe 60ième de 1
    i = segondra
    j = minitra * 60
    C = (Ora + (minitra / 60)) * 43200 / 12
    Line1.X2 = 110 * (Cos((2 * i * Pi / 60) - (Pi / 2))) + Line1.X1
    Line1.Y2 = 110 * (Sin(2 * i * Pi / 60 - (Pi / 2))) + Line1.Y1
    Line2.X2 = 90 * (Cos((2 * j * Pi / 3600) - (Pi / 2))) + Line1.X1
    Line2.Y2 = 90 * (Sin(2 * j * Pi / 3600 - (Pi / 2))) + Line1.Y1
    Line3.X2 = 70 * (Cos((2 * C * Pi / 43200) - (Pi / 2))) + Line1.X1
    Line3.Y2 = 70 * (Sin((2 * C * Pi / 43200) - (Pi / 2))) + Line1.Y1
End Sub

On ne gagne pas en taille mais plutot en clarté
Voila si cela peut t'aider...

@+

Commentaire de carlvb le 13/11/2003 10:47:35

DarkSidious> à défaut d'un menu pour quitter la première version était arretable en faisant un Shift+Click. Pour cette mise à jour on arrête en double-cliquant. Pour la transparence des chiffres elles sont aussi découpées dans cette nouvelle version.

EBArtSoft> J'ai mis à jour la source en intégrant tes améliorations. Merci pour ton aide.

Bonne continuation.

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 4,274 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales