[old]
Ik ben met een programma bezig wat door iemand anders gemaakt is en wat ik moet uitbreiden.
Mijn voorganger heeft de regel Application->ProcessMessage(); erg vaak gebruikt en ik ben er nu achter dat deze in een lus staat die per versturen van een commando 70 keer doorlopen wordt. Na het versturen van een groot aantal commando's gaat het als maar langer duren voordat hij deze lus afhandelt. Dat komt door die processmessage regel. (gevonden door debuggen)
Maar als ik deze processmessage regel niet gebruik is het voor mij onmogelijk om het programma af te sluiten (het programma stuurt namelijk een ander programma aan via een doorgelusde compoort wat erg veel ven de processorkracht vergt)
Dus nu heb ik de regel op een plaats staan waar het niet zo vaak voorkomt. (70 keer minder dan voorheen)
MIJN VERMOEDEN:
Dat de application->processmessages in IDLE steeds langer wacht wanneer er geen activiteit is.
MIJN VRAAG.
Is het mogelijk dat ik een methode maak die eerst kijkt of er handelingen uitgevoerd moeten worden (is er op een knop gedrukt, moet er geminimaliseerd worden enzovoorts). En zo ja Dat ik dan de regel: application->processmessages();
gebruik. En als dat niet het geval is dat het programma dan gewoon door gaat met uitvoeren van commando's
plaease help?
[/old]
WIL HET NU ANDERS GAAN DOEN!!
Het volgende wil ik voor elkaar krijgen:
Wanneer er een handeling is uitgevoerd wil ik een Application->ProcessMessage krijgen. Met andere woorden: Zolang ik niet met de muis beweeg of knoppen ervan indruk. OF het toetsenbord gebruik. moet er geen Application->ProcessMessage gedaan worden.
daarvoor heb ik bedacht dat ik iets met PeekMessages zou moeten doen.
het volgende heb ik:
helaas werkt dit weer niet.
wat gaat er verkeerd en is de manier waarop ik het wil oplossen wel te doen?
Ik ben met een programma bezig wat door iemand anders gemaakt is en wat ik moet uitbreiden.
Mijn voorganger heeft de regel Application->ProcessMessage(); erg vaak gebruikt en ik ben er nu achter dat deze in een lus staat die per versturen van een commando 70 keer doorlopen wordt. Na het versturen van een groot aantal commando's gaat het als maar langer duren voordat hij deze lus afhandelt. Dat komt door die processmessage regel. (gevonden door debuggen)
Maar als ik deze processmessage regel niet gebruik is het voor mij onmogelijk om het programma af te sluiten (het programma stuurt namelijk een ander programma aan via een doorgelusde compoort wat erg veel ven de processorkracht vergt)
Dus nu heb ik de regel op een plaats staan waar het niet zo vaak voorkomt. (70 keer minder dan voorheen)
MIJN VERMOEDEN:
Dat de application->processmessages in IDLE steeds langer wacht wanneer er geen activiteit is.
MIJN VRAAG.
Is het mogelijk dat ik een methode maak die eerst kijkt of er handelingen uitgevoerd moeten worden (is er op een knop gedrukt, moet er geminimaliseerd worden enzovoorts). En zo ja Dat ik dan de regel: application->processmessages();
gebruik. En als dat niet het geval is dat het programma dan gewoon door gaat met uitvoeren van commando's
plaease help?
[/old]
WIL HET NU ANDERS GAAN DOEN!!
Het volgende wil ik voor elkaar krijgen:
Wanneer er een handeling is uitgevoerd wil ik een Application->ProcessMessage krijgen. Met andere woorden: Zolang ik niet met de muis beweeg of knoppen ervan indruk. OF het toetsenbord gebruik. moet er geen Application->ProcessMessage gedaan worden.
daarvoor heb ik bedacht dat ik iets met PeekMessages zou moeten doen.
het volgende heb ik:
code:
1
2
3
4
5
| MSG lpMsg;
if(PeekMessage(&lpMsg, NULL, 0, 0, PM_NOREMOVE))
{
Application->ProcessMessages();
} |
helaas werkt dit weer niet.
wat gaat er verkeerd en is de manier waarop ik het wil oplossen wel te doen?
[ Voor 23% gewijzigd door Verwijderd op 08-01-2003 09:54 ]