vb scroller maken

Pagina: 1
Acties:

  • mrfatmen
  • Registratie: Februari 2001
  • Nu online
Hoe kan ik heb beste de tekst laten weg schrijven.
voor een scroller

via timer loop of anders

zodat de snelheid constant is.

Heeft uw auto pijn? Ga dan naar de onderdelenlijn
Het bedrijf waar ik met veel plezier werk - Mijn eigen vertrouwde domein


Verwijderd

Op www.pscode.com staan tig voorbeelden! Scheelt je heel veel werk! Maar die gebruiken idd een timer...

  • Xanion
  • Registratie: Augustus 2001
  • Laatst online: 03-08 20:18
ik gebruik zelf altijd de volgende API functie:
Private Declare Function timeGetTime Lib "winmm.dll" () As Long

je kunt dan als programmaloop het volgende gebruiken:
StartTime = timeGetTime
NextFrameTime = 100 + StartTime '(100 is het aantal milliseconden dat je wilt wachten)

voer hier je programmacode voor de scroller uit.

Do While timeGetTime < NextFrameTime
DoEvents
Loop

voordeel van deze API functie is dat je programma altijd doorloop, terwijl de VB timer een zeer lage prioriteit heeft en dus overgeslagen wordt als Windows vindt dat ie wat beters te doen heeft. ;)

There are 10 types of people in the world: Those who understand binary, and those who don't. .


  • johnwoo
  • Registratie: Oktober 1999
  • Laatst online: 23:07

johnwoo

3S-GTE

Op maandag 21 januari 2002 15:40 schreef Xanion het volgende:
[...]
voordeel van deze API functie is dat je programma altijd doorloop, terwijl de VB timer een zeer lage prioriteit heeft en dus overgeslagen wordt als Windows vindt dat ie wat beters te doen heeft. ;)
:? voor zover ik weet gebruikt het timer object intern gewoon de settimer en killtimer API calls in user32. Het is wel zo dat deze timer bij intervallen kleiner dan ongeveer 10 ms wel eens raar doet, maar timer events worden echt niet overgeslagen hoor... En die timer draait natuurlijk gewoon op de prioriteit van jouw app, lijkt me weinig uitmaken welke API call je doet.

4200Wp ZO + 840Wp ZW + 1680Wp NW | 14xIQ7+ + 1xDS3-L | MTVenusE | HWP1


Verwijderd

Op donderdag 17 januari 2002 15:12 schreef Mr-FaTMeN het volgende:
Hoe kan ik heb beste de tekst laten weg schrijven.
voor een scroller
Vanwaar deze vraag? we hadden 'm immers Hier al beantwoord lijkt me?

  • Xanion
  • Registratie: Augustus 2001
  • Laatst online: 03-08 20:18
Op maandag 21 januari 2002 23:33 schreef johnwoo het volgende:

[..]

:? voor zover ik weet gebruikt het timer object intern gewoon de settimer en killtimer API calls in user32. Het is wel zo dat deze timer bij intervallen kleiner dan ongeveer 10 ms wel eens raar doet, maar timer events worden echt niet overgeslagen hoor... En die timer draait natuurlijk gewoon op de prioriteit van jouw app, lijkt me weinig uitmaken welke API call je doet.
Helaas, de VB timer doet al raar bij intervallen van minder dan 55 ms. Zie ook dit stuk uit de VB documentatie.
it has the very lowest level in the hierarchy of the Windows event/message generating system; that is, the timer event/message may be postponed, or even not be generated at all, if there is any other event that in the queue

Voor events waarbij het niet erg is dat deze een keer iets later wordt uitgevoerd of een keer overgeslagen is de timer perfect. Maar als jij een programma maakt waarbij je precies iedere zoveel ms een stuk code uitgevoerd wilt hebben, moet je de VB timer niet pakken. (8>

There are 10 types of people in the world: Those who understand binary, and those who don't. .


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 04-09 14:38

curry684

left part of the evil twins

Op maandag 21 januari 2002 23:33 schreef johnwoo het volgende:
:? voor zover ik weet gebruikt het timer object intern gewoon de settimer en killtimer API calls in user32. Het is wel zo dat deze timer bij intervallen kleiner dan ongeveer 10 ms wel eens raar doet, maar timer events worden echt niet overgeslagen hoor... En die timer draait natuurlijk gewoon op de prioriteit van jouw app, lijkt me weinig uitmaken welke API call je doet.
SetTimer is dependent op de snelheid waarmee jij je message queue leegtrekt omdat ie een WM_TIMER message post. Hierdoor wordt het ding vooral op Win9x systemen waar de task scheduling verneukt is erg inaccuraat. Absoluut niet aan te raden om deze aanpak voor intervals onder de 100ms te gebruiken.

Voor echt precieze timing issues moet je aan de kernelmode timed synchronization (Sleep en SetWaitableTimer).

Professionele website nodig?

Pagina: 1