Ik ben ff een progje aan het testen in homesite en daar heb ik een dll voor geschreven die ik aanroep vanuit homesite. Maar het probleem is alleen dat ik de progressbar niet aan de gang krijg. Ik krijg het form wel te zien en ook de progressbar, maar hij loopt niet en hide en unvisible zetten werkt ook niet. Kan je een progressbar wel gebruiken in een model form?
Verwijderd
Tuurlijk. Zodra je de progresbar update moet je DoEvents aanroepen, anders houdt het modalform de cpu vast en krijgt de achterliggende VB runtime geen tijd om eventafhandeling naar windows door te sturen, maw je windowmessagehandler krijgt nooit de cpu.
Ik zou niet weten waarom niet, het is alleen een beetje de vraag waar de form wordt getoont, en waar de aktie wordt uitgevoerd waarvoor de progressbar nodig is.
Ik neem aan dat je weet dat als je een form modal toont, de "aanroepende form" wacht tot de modale form weer gesloten (geunload) is. Als je dus in een functie zit, daar toon je de form, en vervolgens wil je een lange aktie gaan uitvoeren, werkt dat dus niet, aangezien de aktie pas wordt uitgevoerd als je de form met progressbar unload...
Ik neem aan dat je weet dat als je een form modal toont, de "aanroepende form" wacht tot de modale form weer gesloten (geunload) is. Als je dus in een functie zit, daar toon je de form, en vervolgens wil je een lange aktie gaan uitvoeren, werkt dat dus niet, aangezien de aktie pas wordt uitgevoerd als je de form met progressbar unload...
Exact expert nodig?
Hoog je wel de value van de ProgressBar op?
Ja dat wel ja, maar zodra ik de eerste value erin gooi dan is het einde oefening.
Ik gebruik deze toepassing in homesite om in asp componenten te checken of ze gesloten worden. Hij gaat van het huidige document regel voor regel kijken of er een component geopend of geclosed word. En in die loop zit mijn progressbar. Als ie klaar is dan opent ie het tweede form met een overzicht van alle componenten.
Otis: Ik ga daar eens naar kijken, wat je zegt klinkt behoorlijk logisch!
Ik gebruik deze toepassing in homesite om in asp componenten te checken of ze gesloten worden. Hij gaat van het huidige document regel voor regel kijken of er een component geopend of geclosed word. En in die loop zit mijn progressbar. Als ie klaar is dan opent ie het tweede form met een overzicht van alle componenten.
Otis: Ik ga daar eens naar kijken, wat je zegt klinkt behoorlijk logisch!
Probeer dit maar eens:
Die msgbox krijg je niet te zien als dat form modal is, ook niet als je doevents aanroept. Je event handling gaat dan wel door, maar de code in de huidige sub gaat niet verder tot dat modal form weg is.
Als je bijvoorbeeld met een timer ofzo het werk doet, is dat geen probleem, maar als je dus zoiets wilt doen:
Dan gaat dat dus niet werken, dan moet je een non-modal form gebruiken.
code:
1
2
| FModalForm.Show vbModal MsgBox "bladieblaat" |
Die msgbox krijg je niet te zien als dat form modal is, ook niet als je doevents aanroept. Je event handling gaat dan wel door, maar de code in de huidige sub gaat niet verder tot dat modal form weg is.
Als je bijvoorbeeld met een timer ofzo het werk doet, is dat geen probleem, maar als je dus zoiets wilt doen:
code:
1
2
3
4
5
6
| FmodalForm.Show vbModal ' Doe een hoop zooi FModalForm.ProgressBar.Value = blaat Unload FModalForm |
Dan gaat dat dus niet werken, dan moet je een non-modal form gebruiken.
- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!
Ja precies, ik heb dus hetzelfde gedaan zoals je beschreef, het enige probleem is dat ik een dll gebruik en non-modal form dat vreet ie dus echt niet, zat al te zoeken naar dat DoEvent maar dat heb ik ook nog niet echt werken,
Waarom vreet ie een non-modal form niet? En waarvan/op is die form modal?Op donderdag 18 juli 2002 09:20 schreef voetenzalf het volgende:
Ja precies, ik heb dus hetzelfde gedaan zoals je beschreef, het enige probleem is dat ik een dll gebruik en non-modal form dat vreet ie dus echt niet, zat al te zoeken naar dat DoEvent maar dat heb ik ook nog niet echt werken,
Hierboven staat uitgelegt hoe het werkt, een modale form kun je hiervoor alleen gebruiken als je de betreffende code die moet worden uitgevoert in een timer zet
De enigste smerige workaround waardoor je zoiets kunt doen:
frmModal.Show vbModal
' voer lange aktie uit
Is door de lange aktie in een timer-event te zetten. De timer tikt wel door bij mijn weten, mjah dit idee heb je niet van mij want ik vind 'm wel ranzig
Exact expert nodig?
Pagina: 1