Bericht 1 van 15NL Computer Forum ~ SQL & Programmeren Van | : | Jan101477 | Datum | : | 25-08-2007 |
Aan | : | Allen | MsgID | : | 3537.1 |
Onderwerp | : | Verwerkingspad niet te volgen | Forum | : | ws-nlcomputer |
Hierbij een vreemd probleem. Bij het inlezen van bestanden en het belissen in welke kolom de inhoud geplaatst moet worden gaat op de instructie
If filename = frmInvestor.ext(App.Path) & "DATA\AMS_A.prn" And TestAanroep "AlleFondsen" Then
j = 2
End If
indien het bestand niet aan de voorwaarden voldoet, het programma ergens heen waar ik het niet volgen kan en na zeven of acht keer F8 komt het programma op de End If. Hetzelfde gebeurt bij de If's van andere bestanden en ook als wel aan de voorwaarden van de If wordt voldaan.
Waar het programma in de tussentijd (dus tijdens de F8's) mee bezig is weet ik niet. Ik heb geprobeerd het met Show Next Statement te volgen, maar dat lukt niet: ik krijg niets te zien.
Na geven van F5 komt het programma in de error handler en geeft error 52 (Bad file name or number).
Wie kan mij aan de oplossing helpen? Ik heb nog nooit zo iets gehad.
Bericht 2 van 15NL Computer Forum ~ SQL & Programmeren Van | : | Peter | Datum | : | 25-08-2007 |
Aan | : | Jan101477 | MsgID | : | 3537.2 |
Onderwerp | : | Verwerkingspad niet te volgen | Forum | : | ws-nlcomputer |
>>
If filename = frmInvestor.ext(App.Path) & "DATA\AMS_A.prn" And TestAanroep "AlleFondsen" Then
j = 2
End If
<<
Er is ergens een stukje code weggevallen tussen
If en
Then, waarschijnlijk tussen TestAanroep en "AlleFondsen".
a) Als frmInvestor nog niet geladen is zal dit eerst gebeuren voordat de functie frmInvestor.ext() uitgevoerd wordt. Het is dus mogelijk dat 1 of meerdere events zoals frmInvestor_Load(), frmInvestor_Resize(), frmInvestor_Activate() en alle code die daarin staat uitgevoerd wordt.
b) Is TestAanroep een variabele of een Functie?
Probeer het eens met:
...
Dim sFile As String
sFile = frmInvestor.ext(App.Path) & "DATA\AMS_A.prn"
If filename = sFile Then
'bestandsnaam = oke, even op scherm melden
MsgBox "Bestand = " & sFile & vbCrLf & "j = " & j
If TestAanroep = "AlleFondsen" Then
j = 2
End If
End If
...
Groeten, Peter
Bericht 3 van 15NL Computer Forum ~ SQL & Programmeren Van | : | Jan101477 | Datum | : | 25-08-2007 |
Aan | : | Peter | MsgID | : | 3537.3 |
Onderwerp | : | Verwerkingspad niet te volgen | Forum | : | ws-nlcomputer |
Hoi Peter,
Er is inderdad iets weggevallen, namelijk het <> teken.
Bericht 4 van 15NL Computer Forum ~ SQL & Programmeren Van | : | Peter | Datum | : | 25-08-2007 |
Aan | : | Jan101477 | MsgID | : | 3537.4 |
Onderwerp | : | Verwerkingspad niet te volgen | Forum | : | ws-nlcomputer |
>>Er is inderdad iets weggevallen, namelijk het <> teken.<<
Oke, dat verandert programma-technisch niets aan mijn 1e antwoord.
Kun je daar wat mee?
Peter
Bericht 5 van 15NL Computer Forum ~ SQL & Programmeren Van | : | Jan101477 | Datum | : | 26-08-2007 |
Aan | : | Peter | MsgID | : | 3537.5 |
Onderwerp | : | Verwerkingspad niet te volgen | Forum | : | ws-nlcomputer |
Kun je daar wat mee?
Ja, het probleem is opgelost. Bedankt voor je hulp.
Bericht 6 van 15NL Computer Forum ~ SQL & Programmeren Van | : | Jan101477 | Datum | : | 01-09-2007 |
Aan | : | Peter | MsgID | : | 3537.6 |
Onderwerp | : | Verwerkingspad niet te volgen | Forum | : | ws-nlcomputer |
Hoi Peter,
Het out of stack space probleem is opgelost. Het had niets te maken met het aantal bestanden, want deze werden direct na gebruik gesloten. Waarschijnlijk heeft er iets geks gezeten in de code, want plotseling zonder een gerichte actie, was het probleem weg.
Het installatieprogramma werkt nu goed en op de installatie PC's werkt mijn programma nu zonder fouten, zowel onder Windows XP als onder Windows Vista.
Wel heb ik al sinds de overgang naar WindowsXP een paar jaar geleden een probleem met de forms in Visual Basic 6.0 bij de overgang op de screen saver. Het programma loopt weliswaar gewoon door, maar het form dat op dat moment op het scherm staat wordt wit en de activiteit (bijv. het tonen van het op dat moment actieve bestand), blijft staan op het bestand dat behandeld werd op het moment van actief worden van de schermbeveiliging. Ik heb hier nooit een probleem van gemaakt, want de taak ging gewoon door, maar het hoort natuurlijk niet.
Heb je enig idee wat de oorzaak kan zijn? Ik dacht in eerste instantie aan te weinig geheugen, maar ook bij meer geheugen gebeurt het. De oorzaak is duidelijk de schermbeveiliging.
Aangezien je kennelijk een zeer ervaren VB-gebruiker bent heb ik nog een algemene vraag. Doe je iets met .NET en zo ja ben je daar tevreden over. Ik heb daar nooit wat in gezien. Je geeft toch veel van je beslissingsbevoegdheid weg aan Microsoft met .NET. Of zie ik dat verkeerd. Graag hoor ik je mening hierover.
Ook een reactie hierop van andere forumbezoekers is uiteraard welkom.
Bericht 7 van 15NL Computer Forum ~ SQL & Programmeren Van | : | Peter | Datum | : | 02-09-2007 |
Aan | : | Jan101477 | MsgID | : | 3537.7 |
Onderwerp | : | Verwerkingspad niet te volgen | Forum | : | ws-nlcomputer |
>>maar het form dat op dat moment op het scherm staat wordt wit en de activiteit ... blijft staan<<
Ik neem dat een standaard schermbeveiligings programma van MicroSoft ingesteld is en geen programma van een ander bedrijf.
Wanneer gebeurt dat precies, als de schermbeveiliging start of als de schermbeveiliging stopt?
Het Form_Paint() event wordt in ieder geval gestart. Staat daar code in?
Mogelijk wordt de focus naar het formulier of een bepaald control daarin gewijzigd of je programma komt in een lus terecht waardoor de verversing van het formulier geblokkeerd wordt.
Het toevoegen van de functie DoEvents() kan dit voorkomen. Beter is het om eerst de oorzaak te achterhalen. Als je programma bijvoorbeeld niet meer zichtbaar is heeft verversen ook geen zin.
>>Doe je iets met .NET en zo ja ben je daar tevreden over. Ik heb daar nooit wat in gezien.<<
Nauwelijks. Ik vind het erg omslachtig en onduidelijk maar dat kan ook aan mijn opgebouwde ervaring liggen.
Het hele FrameWork gebeuren is ook aan updates onderhevig: 1.0, 1.1, 2.0, 3.0 enz.
De meningen zijn iig erg verdeeld.
Ik zie er dus een beetje vanaf. Zolang het nog zonder .NET te maken is zal ik dat doen.
>>Je geeft toch veel van je beslissingsbevoegdheid weg aan Microsoft met .NET.<<
Wat bedoel je daar precies mee?
Peter
Bericht 8 van 15NL Computer Forum ~ SQL & Programmeren Van | : | Michel Uphoff (Sysop) | Datum | : | 02-09-2007 |
Aan | : | Jan101477 | MsgID | : | 3537.8 |
Onderwerp | : | Verwerkingspad niet te volgen | Forum | : | ws-nlcomputer |
Hoi Jan,
Het lijkt erop, dat de screensaver de focus steelt, en het VB programma daar geen rekening mee houdt, waardoor het stokt. Wanneer merk je dit op? Niet als de screensaver start lijkt mij, want dan heb je geen beeld. En als de screensaver stopt, zie je dat dat lege form? Wat gebeurt er vervolgens als je niets doet, en wat als je op het form klikt?
Aan .NET hebben ze mij nog niet kunnen krijgen. Iets in mij verzet zich daartegen, het zal wel de leerbult zijn. Maar ook het gegeven dat er inmiddels 3 versie van .Net zijn die niet volledig uitwisselbaar/backward compatible zijn, daar krijg ik al een sik van, en spoort mij al helemaal niet aan. VB6 lijkt ten minste nog tot einde Vista mee te kunnen.
Michel Uphoff (NLcomputer)
Homepage
Bericht 9 van 15NL Computer Forum ~ SQL & Programmeren Van | : | Jan101477 | Datum | : | 02-09-2007 |
Aan | : | Peter | MsgID | : | 3537.9 |
Onderwerp | : | Verwerkingspad niet te volgen | Forum | : | ws-nlcomputer |
Wat bedoel je daar precies mee?
Ik heb begrepen dat het eigenlijke werk bij programmeren met .NET op internet plaatsvindt en niet op je eigen PC. Maar misschien denk ik dat uit onbegrip met .NET.
Wat de schermbeveiliging betreft. Ik gebruik de Windows schermbeveiliging en het wit worden van het form gebeurt altijd bij het starten van de schermbeveiliging. Er zit geen lus in het programma waardoor het zou kunnen vastlopen.
Ik gebruik Form.Paint eigenlijk nooit, want ook zonder dat had ik geen problemen. Hoe werkt dat eigenlijk?
Bericht 10 van 15NL Computer Forum ~ SQL & Programmeren Van | : | Jan101477 | Datum | : | 02-09-2007 |
Aan | : | Michel Uphoff (Sysop) | MsgID | : | 3537.10 |
Onderwerp | : | Verwerkingspad niet te volgen | Forum | : | ws-nlcomputer |
Hoi Michel,
Hoe was je vakantie? Hopelijk had je beter weer dan wij hier.
Wat het screensaverprobleem betreft. Ik merk het bij het ingaan van de schermbeveiliging. Als ik namelijk de spatiebalk indruk krijg ik het gewone scherm weer terug en dan staat de blauwe balk van het form op het dan in bewerking zijnde bestand, tenminste als ik de spatiebalk indruk onmiddellijk bij het starten van de schermbeveiliging. Als ik bij een lange klus de volgende keer de spatiebalk indruk bij het ingaan van de schermbeveiliging, dan staat de blauwe balk nog steeds op hetzelfde bestand. Het begin van de schermbeveiliging is dus duidelijk de oorzaak. Als ik in zo'n situatie met de muis klik slaat het programma vast.
Welke voorziening zou je moeten treffen om het focus terug te krijgen. Het programma beslaat in het geheugen, afhankelijk waar het op dat moment mee bezig is, 20 tot 30 MB. Bij een geheugen van 1 GB kan m.i. geheugen niet het probleem zijn.
Ik ben blij dat ik niet de enige ben met bezwaren tegen .NET.
Ik heb het idee dat Microsoft weinig meer verdient aan programmeertalen en met .NET de geldstroom weer op gang probeert te brengen.
Bericht 11 van 15NL Computer Forum ~ SQL & Programmeren Van | : | Michel Uphoff (Sysop) | Datum | : | 02-09-2007 |
Aan | : | Jan101477 | MsgID | : | 3537.11 |
Onderwerp | : | Verwerkingspad niet te volgen | Forum | : | ws-nlcomputer |
Hoi Jan,
>> Als ik in zo'n situatie met de muis klik slaat het programma vast. <<Dan lijkt mij er wat meer aan de hand dan alleen maar een verloren focus. Peter stelde de vraag of het de standaard MS screensavers betreft. Heel terechte vraag, want sommige screensavers van derden zijn uitermate beroerd geschreven ondingen.
Als het voorkomt met de eenvoudige 'zwart scherm' of 'lichtkrant' screensavers dan zit er een fout ergens in de code, want VB6 heeft standaard geen problemen met normale screensavers. Je zou in design time eens kunnen kijken of je er achter kan komen waar de boel vastloopt.
Dit probleem komt alleen voor bij screensavers (in feite niets anders dan een executable), en niet bij andere programma's?
Michel Uphoff (NLcomputer)
Homepage
Bericht 12 van 15NL Computer Forum ~ SQL & Programmeren Van | : | Peter | Datum | : | 02-09-2007 |
Aan | : | Jan101477 | MsgID | : | 3537.12 |
Onderwerp | : | Verwerkingspad niet te volgen | Forum | : | ws-nlcomputer |
>>Ik heb begrepen dat het eigenlijke werk bij programmeren met .NET op internet plaatsvindt en niet op je eigen PC.<<
Dta klopt niet. Je ontwikkelt je programma's gewoon op je eigen pc. .NET is alleen een andere manier van programmeren. Je hebt dus o.a VB.NET (visual basic) en Delphi.NET (visual pascal).
>>het wit worden van het form gebeurt altijd bij het starten van de schermbeveiliging.<<Vreemd. In je bericht aan Michel vertel je o.a.
'Als ik namelijk de spatiebalk indruk krijg ik het gewone scherm weer terug en dan staat de blauwe balk van het form op het dan in bewerking zijnde bestand' EN
'Als ik bij een lange klus de volgende keer de spatiebalk indruk bij het ingaan van de schermbeveiliging, dan staat de blauwe balk nog steeds op hetzelfde bestand.'Dit lijkt erop dat er wel degelijk bewerkingen uitgevoerd worden als de schermbeveiliging start. Je programma lijkt het niet leuk te vinden als de focus van dat formulier gaat. Je kan dat in de ontwikkelomgeving simpel testen door tijdens run-mode eens op Alt-Tab te drukken en daarmee een ander actief venster naar voren te halen.
Werkt het dan wel goed?
>>Ik gebruik Form.Paint eigenlijk nooit, want ook zonder dat had ik geen problemen. Hoe werkt dat eigenlijk?<<
Het is 1 van de vele events en ook niet verplicht om te gebruiken
Het wordt getriggert als alles of een deel van een formulier hertekend moet worden.
Voor meer info kun je eens in de helpbestanden kijken.
Peter
Bericht 13 van 15NL Computer Forum ~ SQL & Programmeren Van | : | Jan101477 | Datum | : | 03-09-2007 |
Aan | : | Peter | MsgID | : | 3537.13 |
Onderwerp | : | Verwerkingspad niet te volgen | Forum | : | ws-nlcomputer |
Sorry Peter en Michel,
Ik heb mij niet duidelijk uitgedrukt. Bij het ingaan van de schermbeveiliging wordt niet het hele formulier wit, maar alleen de blauwe balk boven het menu. De tekst daarin blijft staan en wordt niet meer vervangen, dus er gebeurt niets, althans niets zichtbaars. Het programma loopt wel gewoon door, want het eindigt normaal en al het tussenliggende is verwerkt.
Het vastlopen bij meerdere keren klikken heeft waarscjhijnlijk niets met dit probleem te maken. Dat gebeurt soms ook bij tegelijk draaien van meerdere grotere programma's en zou dan op een tekort aan geheugen kunnen wijzen, hoewel de totale geheugenbezetting tamelijk ver onder het maximim blijft (volgens de dan geldende situatie in Taakbeheer).
Bericht 14 van 15NL Computer Forum ~ SQL & Programmeren Van | : | Peter | Datum | : | 03-09-2007 |
Aan | : | Jan101477 | MsgID | : | 3537.14 |
Onderwerp | : | Verwerkingspad niet te volgen | Forum | : | ws-nlcomputer |
>>De tekst daarin blijft staan en wordt niet meer vervangen, dus er gebeurt niets, althans niets zichtbaars. Het programma loopt wel gewoon door, want het eindigt normaal<<
Even hardop resumeren:
Je programma voert taken uit en in een of meerdere taken wordt de tekst in de titelbalk van je programma gewijzigd. Als dan de schermbeveiliging start draait je programma gewoon door maar wordt de titelbalk wit. Nadat de schermbeveiliging weer weg is draait je programma gewoon verder maar blijft de titelbalk wit, ook als je met de muis weer in het formulier van je programma klikt.
De schermbeveiliging verplaatst in ieder geval niet de focus. Dat kan wel gebeuren als je meer dan 1 keer klikt om de schermbeveiliging op te heffen. Alleen de eerste klik heft de beveiliging op, eventueele volgende klikken worden door het venster verwerkt waar de muis op dat moment toevallig staat.
Dezelfde geldt voor de spatiebalk. De eerste indruk heft de beveiliging op, eventueele volgende indrukken worden door het venster of control verwerkt waar de focus op dat moment toevallig staat.
De kleurverandering zou dus een teken kunnen zijn dat je programma toch de focus heeft verloren na het verlaten van de schermbeveiliging.
De kleur voor een niet actieve titelbalk is toch niet toevallig op wit ingesteld? Zie hiervoor Eigenschappen voor Beeldscherm, tab "Vormgeving", kies in lijst Item "Niet-actieve titelbalk". Rechts hiervan staat dan Formaat en rechts daarvan staan 2 kleurtjes. Zie bijlage.
Kun je eens een schermafdruk maken van dit probleem en dat even plaatsen.
Peter
| Bijlagen : titelbalk_kleuren.jpg 49KB |
Bericht 15 van 15NL Computer Forum ~ SQL & Programmeren Van | : | Jan101477 | Datum | : | 03-09-2007 | Aan | : | Peter | MsgID | : | 3537.15 | Onderwerp | : | Verwerkingspad niet te volgen | Forum | : | ws-nlcomputer |
Peter, Je resumeert exact wat er plaats vindt. Wat de kleuren bij Niet-active titelbalk betreft: de eerste is blauw en de tweede grijs met opschrift kleur2 als disabled tekst. Ik zal eens uitproberen wat er gebeurt bij een of meer keer klikken bij actief zijn van de schermbeveiliging. Schermafdruk volgt. |