Ik ben een applicatie aan het bouwen, waarbij het de bedoeling is dat er een timer gaat lopen en elke keer als de timer een "tick" geeft, dat dan de waarde van de trackbar veranderd. Dit zou je dus visueel moeten zien in de GUI.
Echter heb ik het eerst geprobeerd met een gewone Timer (Windows::Forms), alleen hierdoor wordt de applicatie mega traag en ook de opbouw van de GUI is niet om over naar huis te schrijven.
Nu heb ik e.a. af gezocht en ben tot de conclusie gekomen, dat dit komt omdat de timer en de gui beide in dezelfde thread zitten. Nu zou de oplossing moeten zijn om deze te scheiden en de timer van de bibliotheek threading te gebruiken.
Nu ben ik daar mee begonnen alleen loop ik een beetje vast en kan ik zo 1,2,3 niet vinden waar ik nu verder moet zoeken, kijken, dus als iemand mij hier een duwtje in de goede richting kan geven, graag
Ik doe het volgende:
Ik heb 2 objecten aangemaakt een TimerCallback en een Timer.
Bij de load methode van het form wil ik deze objecten initialiseren en dit doe ik als volgt.
Het is de bedoeling dat om de 100 miliseconden de trackbar geupdate wordt en dit wil ik doen in de methode updateGUI.
Nu geeft visual studio netjes deze foutmelding:
Echter als ik er een & voor zet wat voor zover ik weet het teken is van een pointer, krijg ik weer een andere foutmelding.
Iemand die mij een zetje in de goede richting kan geven?
Echter heb ik het eerst geprobeerd met een gewone Timer (Windows::Forms), alleen hierdoor wordt de applicatie mega traag en ook de opbouw van de GUI is niet om over naar huis te schrijven.
Nu heb ik e.a. af gezocht en ben tot de conclusie gekomen, dat dit komt omdat de timer en de gui beide in dezelfde thread zitten. Nu zou de oplossing moeten zijn om deze te scheiden en de timer van de bibliotheek threading te gebruiken.
Nu ben ik daar mee begonnen alleen loop ik een beetje vast en kan ik zo 1,2,3 niet vinden waar ik nu verder moet zoeken, kijken, dus als iemand mij hier een duwtje in de goede richting kan geven, graag
Ik doe het volgende:
Ik heb 2 objecten aangemaakt een TimerCallback en een Timer.
C++:
1
2
| Threading::TimerCallback ^tmrCallBack; Threading::Timer ^tmrThread; |
Bij de load methode van het form wil ik deze objecten initialiseren en dit doe ik als volgt.
C++:
1
2
| tmrCallBack = gcnew Threading::TimerCallback(Form1, Form1::updateGUI()); tmrThread = gcnew Threading::Timer(tmrCallBack, null, 0, 100); |
Het is de bedoeling dat om de 100 miliseconden de trackbar geupdate wordt en dit wil ik doen in de methode updateGUI.
Nu geeft visual studio netjes deze foutmelding:
code:
1
| Error 4 error C3364: 'System::Threading::TimerCallback' : invalid argument for delegate constructor; delegate target needs to be a pointer to a member function |
Echter als ik er een & voor zet wat voor zover ik weet het teken is van een pointer, krijg ik weer een andere foutmelding.
code:
1
| Error 4 error C2102: '&' requires l-value |
Iemand die mij een zetje in de goede richting kan geven?
If it is broken, fix it. If it ain't broken, make it better!