begin process at 2008 07 04 00:50:58
1 204 456 membres
3 nouveaux aujourd'hui
14 114 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

BARRE DE COULEUR À EFFET WINDOWS (DÉMARRAGE)


Information sur la source

Description

je chercher pour un code à faire le meme que windows, j'y suis parvenu après mainte péripéthie... je n'ai qu'un problème connu, cà consomme du cpu :s... si vous avez une idée pour l'améliorer cà serait simpa.
Sinon vous mettez une image nommé 'pic'   ; deux timer avec leur interval à 10

Source

  • Option Explicit
  • Dim i 'progress : x
  • Dim X 'vitesse
  • Dim tableau() As ColorConstants
  • Const factmult = 4 'facteur de multiplication
  • Private Sub Form_Load()
  • Dim a As Integer, col As Double, val As Boolean
  • Dim plus As Double
  • ReDim tableau(4080 * factmult) 'redimensionne: 4080 facteur de 255
  • plus = 1 'initialisation de la variable
  • For a = 1 To factmult
  • plus = plus / 2 'divise le reste par 2 autant de fois qu'il le faut
  • Next a
  • For a = 1 To UBound(tableau)
  • If val = False Then 'test si couleur montante ou descandente
  • col = col + plus 'fait un step
  • If col >= 255 Then: val = True 'quand arrive dans le noir demi-tour
  • Else
  • col = col - plus 'pas le bon nom de variable lol
  • If col <= 1 Then: val = False 'quand arrive dans le blanc
  • End If
  • tableau(a) = RGB(255 - col, 255 - col, 255) 'crée tableau couleur
  • Next a
  • End Sub
  • Private Sub Timer1_Timer()
  • X = X + 50 '50 = vitesse
  • End Sub
  • Private Sub Timer2_Timer()
  • For i = 1 To Pic.ScaleWidth
  • Pic.Line (i, 1)-(i, Pic.ScaleHeight), tableau((i + X) Mod UBound(tableau)) 'crée la ligne de couleur en fonction trouvé dans le tableau
  • 'en fonction de la soustraction (vitesse)
  • Next i
  • End Sub
Option Explicit
Dim i 'progress : x
Dim X 'vitesse
Dim tableau() As ColorConstants
Const factmult = 4 'facteur de multiplication

Private Sub Form_Load()
    Dim a As Integer, col As Double, val As Boolean
    Dim plus As Double
    ReDim tableau(4080 * factmult) 'redimensionne: 4080 facteur de 255
    plus = 1 'initialisation de la variable
    For a = 1 To factmult
        plus = plus / 2 'divise le reste par 2 autant de fois qu'il le faut
    Next a
    For a = 1 To UBound(tableau)
        If val = False Then 'test si couleur montante ou descandente
            col = col + plus 'fait un step
            If col >= 255 Then: val = True 'quand arrive dans le noir demi-tour
        Else
            col = col - plus 'pas le bon nom de variable lol
            If col <= 1 Then: val = False 'quand arrive dans le blanc
        End If
        tableau(a) = RGB(255 - col, 255 - col, 255) 'crée tableau couleur
    Next a
End Sub

Private Sub Timer1_Timer()
    X = X + 50 '50 = vitesse
End Sub

Private Sub Timer2_Timer()
    For i = 1 To Pic.ScaleWidth
        Pic.Line (i, 1)-(i, Pic.ScaleHeight), tableau((i + X) Mod UBound(tableau)) 'crée la ligne de couleur en fonction trouvé dans le tableau
        'en fonction de la soustraction (vitesse)
    Next i
End Sub
  • signaler à un administrateur
    Commentaire de Pingouin le 04/09/2004 09:17:11

    Belle imitation de Windows en effet on s'y croirait lol. Mais c sur que ca consomme pas mal de CPU pour l'interet que ca a menfin... Dsl mais je n'ai pas d'idée pour arranger ca faut demander a d'autres meilleurs que moi :Þ
    @+

    Pingouin

  • signaler à un administrateur
    Commentaire de Renfield le 04/09/2004 09:42:44 administrateur CS

    tu pourrais ne dessiner qu'un fois ta barre
    et faire des blits pour décaler petit a petit ton image.....

  • signaler à un administrateur
    Commentaire de tmcuh le 04/09/2004 11:21:20

    merci tout d'abord à celui qui m'as mis 1 sans rien commenté. Ensuite pour Renfield, pourrait tu mieux expliquer ton principe, car je vois vaguement de quoi tu parle, mais j'ai peur qu'à force de bouger l'image, on voit la fin apparaitre. Qu'appel tu blits?

    Amicalement tmcuh

  • signaler à un administrateur
    Commentaire de azerty25 le 04/09/2004 13:25:56

    Ca bouffe tellement le CPU que mon PC n'arrive même pas à l'afficher à la vitesse de celui de Windows. Sinon, le principe est bien ;)

  • signaler à un administrateur
    Commentaire de Pingouin le 04/09/2004 13:31:36

    Je crois que Renfield te suggeres, corrige moi si je me trompe, de n'afficher qu'une fois l'image et pour creer l'effet de déplacer une portion de l'image qui va disaparaitre, donc sur la droite, et de l'afficher sur la gauche et de décaler ainsi tout le reste de l'image. Je ne sais pas si j'ai été clair...

    Pingouin

    PS: Ca ne se fait pas de mettre 1 sans rien dire ! pour la peine je met un 10 pour rééquilibrer un peu ca.

  • signaler à un administrateur
    Commentaire de Appil le 04/09/2004 14:25:23

    Une autre 10 pour aider ;-)
    Bonne programmation.

  • signaler à un administrateur
    Commentaire de tmcuh le 04/09/2004 14:31:33

    pinguoin et appil tout d'abord merci,... j'avoue que je n'ai pas suivis ton truc lol... car je n'arrive pas à comprendre comment on pourrait faire tourner une image de façon "circulaire", sachant qu'elle n'est pas vraiment image, mais bien constuite...

  • signaler à un administrateur
    Commentaire de Appil le 04/09/2004 14:35:02

    Voilà, là la moyenne et bonne .. 7/10
    A +

  • signaler à un administrateur
    Commentaire de Appil le 04/09/2004 14:39:29

    Je vous en pris noble Morpheus ;-)
    Continue comme ça.

    (Vive Matrix mon meilleur film .. euuh le premier je vous pris)

  • signaler à un administrateur
    Commentaire de Renfield le 04/09/2004 15:10:36 administrateur CS

    pour le 1, c'est revu....

    pour l'explication de pingouin, ca explique bien mon idée.

    pour le blit, utilises une API ou la methode PaintPicture

  • signaler à un administrateur
    Commentaire de tmcuh le 04/09/2004 15:26:13

    je pense avoir mieux sésit la chose, mais comme tu me le propose avec la fonction paintpicture, c'est pour une image déjà existante, donc en gros tu me conseil t'utilisé une image et de faire joujou avec plutot que de la créer??  Tu parle de blit j'ai tjrs pas compris ce que c'était lol

    Amicalement tmcuh

  • signaler à un administrateur
    Commentaire de Renfield le 04/09/2004 15:30:37 administrateur CS

    utiliser une image, oui !

    tu la créé avec tes fonctions, ensuite, tu joues avec

  • signaler à un administrateur
    Commentaire de fifayer le 04/09/2004 15:38:04

    Salut!

    Sa utiliseré moins de ressources d'utiliser le blit (cé en fait le fait de déplacer une image.)

    bon courage a+

  • signaler à un administrateur
    Commentaire de fifayer le 04/09/2004 15:41:54

    sinon tu a pensé au barre d'avancements ?

    cé un peut le meme principe, c'est juste pour faire patienter l'utilisateur...

    bon c'est vrais que les barre d'avancement c'est surtout pour avoir un visuel de l'etat d'avancement d'une tache mais tu peut très bien t'amuser a faire se style de chose avec, rien ne doit t'en empécher...

    vive l'intelligence. (lol ct pour dire une connerie...)

    A+

    bonne prog a tous..

  • signaler à un administrateur
    Commentaire de fifayer le 04/09/2004 15:42:43

    gé t mi 7 pke veu te motiver ! lol !

  • signaler à un administrateur
    Commentaire de Pingouin le 04/09/2004 19:01:24

    Eheh je suis tout fier d'avoir pu saisir la pensée de Renfield et d'avoir su l'exposer brievement, le reste de ma journée en est illuminé :-)
    fifayer> Tu crois vraiment pouvoir obtenir le meme effet avec une progress bar  ? parce qu'il faudrait pouvoir la vider par le coté gauche un peu comme au demarrage  d'XP.
    3 synapses dans un champ (<- moi aussi j'aime dire des conneries)

  • signaler à un administrateur
    Commentaire de fifayer le 04/09/2004 23:32:50

    a oui je voi ce que tu veu dire... jy avé po pensé


    mais je pense qu'il doi bien exister un ocx qui le fé sa ou un directX ... non ?

    bref cé po mon raillon a moi donc je laisse lé spécialitz le fair a ma place.. je pensé juste édé..
    me suis trompé é alors lé zéreur n'arive po a ceux qui fon rien.

    alé bonne prog a tous...

    a+

  • signaler à un administrateur
    Commentaire de fifayer le 04/09/2004 23:33:59

    oui pke en fait il faut qu'il y ait toujours la meme dimention de l'image bougeante et avec le progressbar cé kasi impossible, auttan faire un otre objet... c vré jy avé po pensé...

    A+

  • signaler à un administrateur
    Commentaire de azerty25 le 04/09/2004 23:45:04

    Si tu pourrai parler un français un peu plus compréhensible, ça serait bien ;)
    <<Merci également de veiller à ne pas trop écorcher la langue de molière en écrivant en abrégé (comme sur des SMS).>>
    Faire un progressbar, c'est une bonne idée, sauf qu'il faudrai faire un choix. Afficher le morceau de l'image qui représente le % de la progression, ou stretcher l'image (solution que je pense mieux adaptée)
    J'ai par contre pas compris le rapport avec DirectX, si tu peux m'éclairer ... ;)

  • signaler à un administrateur
    Commentaire de trcdl le 10/09/2004 18:47:01

    jolie , mais lent si la PictureBox (nommé pic ) est longue. 7/10 pour t'etre cassé la tete
    bonne prog ;)

Ajouter un commentaire

Pub



Appels d'offres

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Boutique

Boutique de goodies CodeS-SourceS