Ik heb een proces met een tweede thread, deze tweede thread moet informatie uit een shared memory object (die door een dll gemaakt is) uitlezen en weergeven.
Er zit op het hoofd proces een Image1 die als pointer meegegeven wordt aan de thread. Telkens wordt er een bitmap volgetekend en vervolgens wordt deze copieerd naar Image1 en dan volgt een repaint:
deze wordt in the execute while loopt telekens aangeroepen:Synchronize(DisplayIt);
Dit werkt prima na een tijdje (10 seconden) repaint hij niets meer. Als de waarden veranderen worden deze niet gerepaint. Hoe kan dit?
Edit: de methode synchronize wordt gewoon aangeroepen alleen het daadwerkelijke repainten gebeurd niet
Er zit op het hoofd proces een Image1 die als pointer meegegeven wordt aan de thread. Telkens wordt er een bitmap volgetekend en vervolgens wordt deze copieerd naar Image1 en dan volgt een repaint:
C++:
1
2
3
4
5
| void __fastcall ViewThread::DisplayIt() { Form1->Image1->Canvas->Draw(0,0,pBitmap); Form1->Image1->Repaint(); } |
deze wordt in the execute while loopt telekens aangeroepen:Synchronize(DisplayIt);
Dit werkt prima na een tijdje (10 seconden) repaint hij niets meer. Als de waarden veranderen worden deze niet gerepaint. Hoe kan dit?
Edit: de methode synchronize wordt gewoon aangeroepen alleen het daadwerkelijke repainten gebeurd niet
[ Voor 11% gewijzigd door elgringo op 21-07-2006 12:02 ]
if broken it is, fix it you should