Toon posts:

[vb6] achtergrondkleur object

Pagina: 1
Acties:

Verwijderd

Topicstarter
In het volgende programma zou de achtergrond na activering van het programma moeten veranderen. Hierna word een vertraging uitgevoert waarna de achtergrond weer van kleur verandert.

Private Sub Check6_Click()

Shape6.BackColor = &HFF& ' oranje

If Check6.Value = 1 Then
For b = 0 To 40000000
Next b
Shape6.BackColor = &HC000& 'groen

Else
Shape6.BackColor = &HFFFF& 'geel


End If
End Sub


Helaas gebeurt dit niet |:( . De regel "Shape6.BackColor = &HFF&" lijkt hij over te slaan. De vertraging in het programma loopt wel zoals het moet. de achtergrondkleur na de vertraging komt wel.

Weet iemand wat ik fout doe... of wat ik zou kunnen doen om dit op te lossen.

Programma moet dus het volgende doen.

Na activeren.
- achtergrondkleur veranderen van object, oranje
- vertraging
- achtergrondkleur veranderen van object, groen

bij uitschakelen programma,
- achtergrondkleur veranderen van object, geel

[ Voor 9% gewijzigd door Verwijderd op 23-11-2004 12:27 ]


Verwijderd

Plaats een DoEvents voor je loop

  • DukeMan
  • Registratie: Mei 2000
  • Niet online
offtopic:
Het is (vind ik) netter om een vertraging in je programma in te bouwen middels het commando: sleep en dan het aantal milliseconden...

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 09:15

mulder

ik spuug op het trottoir

Kun je de Shape of het Form niet .Refresh-en?

oogjes open, snaveltjes dicht


  • sopsop
  • Registratie: Januari 2002
  • Laatst online: 08:06

sopsop

[v] [;,,;] [v]

NTGiant schreef op dinsdag 23 november 2004 @ 12:36:
offtopic:
Het is (vind ik) netter om een vertraging in je programma in te bouwen middels het commando: sleep en dan het aantal milliseconden...
offtopic:
Probeer jij eens het commando sleep in VB6 dan....

Verwijderd

Je kunt natuurlijk ook een Timer gebruiken in VB6

Verwijderd

Je kunt ook
If check6 Then
doen :)

En heb je de backstyle wel op 1 ? Staat standaard op 0 transparant.

//edit: code werkt hier overigens zoals jij getikt hebt.

//edit2: Commando sleep kunnen uitvoeren in VB:
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

en dan aanroepen met sleep 2000 ofzo voor 2 sec.

[ Voor 57% gewijzigd door Verwijderd op 23-11-2004 15:58 ]


  • DukeMan
  • Registratie: Mei 2000
  • Niet online
boppert schreef op dinsdag 23 november 2004 @ 15:42:
[...]

offtopic:
Probeer jij eens het commando sleep in VB6 dan....
offtopic:
sorry had geen commando moeten zeggen maar api call.
Je moet hem ff includen:

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

  • riezebosch
  • Registratie: Oktober 2001
  • Laatst online: 16-05 11:22
Persoonlijk vind ik dat wanneer je voor VB (of .NET) gekozen hebt zo min mogelijk API-calls moet gebruiken... :X

@TS: Ik zie niet in je code waar jij die vertraging hebt ingebouwd? Dit kan je doen door een Timer op je Form te plakken, hierin het aantal milliseconden op te geven en Enabled vanuit de functie waarin je 'm wilt activeren op True te zetten.

Vervolgens doe je in de functie van je Timer (door erop te dubbelklikken) je actie, en zet je Enabled van de Timer weer op False om 'm weer uit te schakelen.

[ Voor 22% gewijzigd door riezebosch op 23-11-2004 16:06 ]

Canon EOS 400D + 18-55mm F3.5-5.6 + 50mm F1.8 II + 24-105 F4L + 430EX Speedlite + Crumpler Pretty Boy Back Pack


Verwijderd

Euh een timer is toch niet zo precies als die sleep (met api) mogelijkheid of heb ik dat verkeerd geleerd?

En waarom eigenlijk zo weinig api calls? Daar heb ik ook nog nooit wat over gelezen dat dit niet moet, eigenlijk het omgekeerde.

[ Voor 39% gewijzigd door Verwijderd op 23-11-2004 16:09 ]


  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 09:15

mulder

ik spuug op het trottoir

riezebosch schreef op dinsdag 23 november 2004 @ 16:04:
Persoonlijk vind ik dat wanneer je voor VB (of .NET) gekozen hebt zo min mogelijk API-calls moet gebruiken... :X
Persoonlijk vind ik dat gelul? API-calls zijn voor VB juist een zeer welkome aanvulling.

oogjes open, snaveltjes dicht


  • riezebosch
  • Registratie: Oktober 2001
  • Laatst online: 16-05 11:22
Aanvulling is natuurlijk prima, als je er niet omheen kunt. Maar ik zou zeggen: gebruik zoveel mogelijk de geboden interne functionaliteit. Dit maakt ook je code meer leesbaar en onderhoudbaard (IMHO).

Canon EOS 400D + 18-55mm F3.5-5.6 + 50mm F1.8 II + 24-105 F4L + 430EX Speedlite + Crumpler Pretty Boy Back Pack


  • sopsop
  • Registratie: Januari 2002
  • Laatst online: 08:06

sopsop

[v] [;,,;] [v]

riezebosch schreef op dinsdag 23 november 2004 @ 16:20:
Aanvulling is natuurlijk prima, als je er niet omheen kunt. Maar ik zou zeggen: gebruik zoveel mogelijk de geboden interne functionaliteit. Dit maakt ook je code meer leesbaar en onderhoudbaard (IMHO).
Hoezo meer leesbaar? ben ik niet met je eens.

Als je je in allerlei bochten moet wringen om een API te vermijden, terwijl het ook kan met één enkele API-call, dan vind ik de API oplossing duidelijker. Zeker als je (zoals in dit voorbeeld) gaat lopen kutten met een timer.

Als je je declares gewoon netjes bij elkaar in een aparte module zet, met een bult commentaar erbij, voegt het imho alleen maar overzichtelijkheid toe.
Pagina: 1