VB6 - Een circle van buiten naar binnen

Status
Niet open voor verdere reacties.

satriano17

Gebruiker
Lid geworden
30 sep 2012
Berichten
331
Dag
Ik had, een tijdje geleden deze routine gedaan.
Die toont een circle die beweegt vanuit het centrum naar buiten toe.

Ik wou echter andersom doen: de circle van buiten naar binnen.
Het wil mij niet lukken. Dank u
Code:
Private Sub Timer1_Timer()
Picture1.Cls
 r = r + 100 ' tussen circles
    If r = 3200 Then ' max breedte circles
        'Picture1.Cls
        r = 100 ' breedte eertste circle
    End If
    
    kleur = CommonDialog1.Color
    'Picture1.Cls
    Picture1.Circle (3300, 3100), r, kleur
End Sub
 
Stel r op 3200 en trek er dan telkens 100 af.
Dus niet 100 tot 3200 maar 3200 tot 100.
 
Zo ?
Het werkt niet

Code:
Picture1.Cls
 r = r - 100 ' tussen circles
    If r = 100 Then ' max breedte circles
        'Picture1.Cls
        r = 3200 ' breedte eertste circle
    End If
    
    kleur = CommonDialog1.Color
kleur = CommonDialog1.Color
    'Picture1.Cls
    Picture1.Circle (3300, 3100), r, kleur
 
Laatst bewerkt:
Je moet natuurlijk wel eerst r op 3200 stellen zoals ik zei.
Dus buiten wat je hebt geplaatst om, moet r eerst op 3300 worden gezet.
 
Nee. De circle beweegt niet naar binnen. Het blijft groot
Code:
Picture1.Cls
r=3200
 r = r - 100 ' tussen circles
    If r = 100 Then ' max breedte circles
        'Picture1.Cls
        r = 3200 ' breedte eertste circle
    End If
    
    kleur = CommonDialog1.Color
kleur = CommonDialog1.Color
    'Picture1.Cls
    Picture1.Circle (3300, 3100), r, kleur


en ook niet zo als ik piccture.cls verplaats
Code:
r=3200

Picture1.Cls
…..
 
Laatst bewerkt:
Ja, omdat 'ie nu iedere keer op 3200 wordt gezet.

Je plaatst niet de gehele code waar dat wordt gedaan.
Het zal een loop zijn en r moet dus buiten de loop op 3300 worden gezet.
Dan wordt hij in de loop met 100 verlaagt en begint dan dus op 3200.
 
Na 200 pogingen nog niet gelukt.
Ongelooflijk

En ik weet ook dat een dom fout is. Maar welk?
 
Ok. Wat uitgebreider dan:
Code:
Dim r As Integer

Private Sub Form_Load()
    r = 3300
End Sub

Private Sub Timer1_Timer()
    Picture1.Cls
    r = r - 100       [COLOR="#008000"]'tussen circles[/COLOR]
    If r = 100 Then   [COLOR="#008000"]'max breedte circles[/COLOR]
        r = 3200      [COLOR="#008000"]'breedte eertste circle[/COLOR]
    End If
    
    kleur = CommonDialog1.Color
    Picture1.Circle (3300, 3100), r, kleur
End Sub
 
Laatst bewerkt:
De vaste waarde 3200 moest dus in Form_Load !!
had niet aan gedacht ;


Bedankt, Edmoor.
Uff
Opgelost
(Door u)

Dank U
 
Het programma zelf, waarbij je kan kiezen hoe de cirkels worden geplaatst:
Bekijk bijlage Circles.zip

Even good old VB6 erbij gepakt :p
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan