begin process at 2010 02 09 22:18:18
  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 635 / 156

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 Source .NET (Dotnet) FUSEAUX HORAIRES (HORLOGES ANALOGIQUES) par Blodox
Source avec Zip Source avec une capture ANNIVERSAIRE,FÊTES ET DICTONS par claude440
Source avec Zip Source avec une capture CALCULE HEURES DE NUIT 2 par ocejade
NUMÉRO DE SEMAINE par vb5zh
Source avec Zip HORLOGE À AIGUILLES (RADIAN) par brainbass

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 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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 : 0,359 sec (4)

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