IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

Problèmes sur 7000 block à generer


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Problèmes sur 7000 block à generer
    Bonsoir tout le monde,
    J'ai un problème lorsque je génère 7000 bloc de picturebox sur ma form...

    Voici mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
    Dim n As Integer 'recupere le nombre de "picrocher" en cour.
    Dim L As Integer 'variable left du carré
    Dim T As Integer 'variable top du carré
     
    Private Sub form_load()
    L = 120 'position d'origine du carré en left
    T = 120 'idem en top
    n = 0
    End Sub
     
    Function rock() 'fonction qui genere les pierres
     
    n = n + 1 'compteur permettant de recuperer la variable en cour.
     
       Load picrocher(n)
     
        With picrocher(n)
        .Visible = True 'visible dés le depart
        .Height = 135 'taille du carré
        .Width = 135 'taille du carré
        .Left = L 'placement abscisse
        .Top = T 'placement en ordonée
        .FillStyle = 0 'estetique
        '.FillColor = &HFE7941 'estetique
        '.BackColor = &HFE7941 'estetique
        .BorderStyle = 1 'estetique
     
        End With
     
        If picrocher(n).Left >= 14160 Then 'Si on depasse à droite alors on remet à zero et on descend d'un cran
        L = 120
        T = T + 135
        Else
        L = L + 135
        End If
    End Function
     
    Private Sub Timer1_Timer()
    DoEvents
    Text1.Text = n 'on recupere le total des cube générés
    If Not T >= 9240 Then
    rock
    Else
    Timer1.Enabled = False
    End If
    End Sub
    Le code fonctionne bien, et je suis obliger d'utiliser des picturebox pour pouvoir les sélectionner par la suite car avec des shapes ça ne marche pas (même si les 7000 block sont générés en quelques secondes).
    Au bout de 1000 block générés, le processeur commencer à étouffer et au bout de 1800 block là ça devient catastrophique, un block toutes les secondes... et 2500 c'est l’hécatombe...
    Je suis conscient de ce que je demande, surtout avec du VB...
    Y aurait-il un moyen d’alléger le tout?

    Merci,
    Cordialement

  2. #2
    Membre Expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 72
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Par défaut
    D'après ce que je sais, ce n'est pas un problème VB mais Widows. Un pictureBox, c'est un handle Windows, c'est alloué dans la memoire dite "GGI", qui fait 32 k.
    Je pense que tu devrais revoir complétement ton approche. Par exemple, un seul picture box, et analyser la position du curseur au momment duc click.

Discussions similaires

  1. problème d'ajout fichiers sur code block
    Par faycalham dans le forum Code::Blocks
    Réponses: 1
    Dernier message: 11/02/2008, 13h29
  2. Réponses: 9
    Dernier message: 06/10/2007, 22h06
  3. Problème sur GetPrivateProfileString ???
    Par Bordelique dans le forum Langage
    Réponses: 7
    Dernier message: 25/06/2003, 22h15
  4. Problème sur une requête INSERT
    Par Marion dans le forum Langage SQL
    Réponses: 3
    Dernier message: 17/06/2003, 08h45
  5. problème sur une requête!!!!!
    Par Mcgrady_01 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 13/06/2003, 01h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo