Hej Öh.... Med risk för att ha fel. Jag tror inte att koden i sig skapat felet - rent principiellt. Isåfall borde min felsökning fungerat. Eftersom det fungerar med ett antal "stop", så måste det vara så att på något vis "stop"-inslaget tvingar datorn/programmet att "fastna" i rätt spår, medan i annat fall det uppstår någon sorts logiskt fel (set ur programmerarens synpunkt - datorn gör ju bara vad hård o mjukvara berättar att den skall göra). Med andra ord det gäller att komma runt det logiska felet. Tror jag. Men hur? Det låter som om din kod inte hinner utföra delar av det den ska i tid, men när du kör STOP så hinner den??!! Precis, något sådant. Den hinner inte, eller..., men vad kan man göra? Hej Utan att se problemet kan jag gissa mig fram. FormActivate kör jag redan med. Men If Beenhere var faktiskt nytt för mig. Kan vara användbart men inte här. Jag löste dock det hela själv på följande vis: Jag valde bort option-knapparna och valde alternativknappar istället (med en subrutin som "nollar" alla andra alternativknappar om man markerar en av dem.) Inte så snyggt kanske, men det fungerade. Det spökar i datorn?
Spökar det i min dator?! Jag håller på med att skapa ett litet VB-program. Från Form1 når jag Form2. (Form2.show). Problemet finns i Form2.
På Form 2 finns 10 OptionBotton. När användaren av programmet klickar på någon av dessa startas respektive subrutin (Private Sub Option_1Click(), osv.). Alternativt om detta ej händer kan man klicka på ”Command1-knappen” så startas det förvalda alternativet. Därefter vandrar programmet genom x antal subrutiner innan man är tillbaka och kan välja någon av optionerna. Så långt är det inga problem. Som jag hitintills har sett fungerar alla alternativ som de skall utom nr 2: Private Sub Option_2Click().
När jag väljer alternativ 2, startas istället alternativ 10 (efter att ha "besökt" nr 2:s början?). Jag har skrivit ut och lusläst koden, men förstår inte varför. Jag har provat att sätta alla ”On Error …” ur funktion (genom ”Rem ” i början av respektive) för att se om något fel skulle slå stop. Men det förändrade inget. Inte nog med det, och nu kommer det, spökeriet alltså:
För att försöka ta reda på VART i programmet det var fel, så satte jag ut ett antal ”Stop” på lämpliga platser utefter Option2:s koder & följande subrutiner. Jag ville ta reda på vilken plats i programmet som den ”hoppade ur” den kod-ordning jag ville den skulle ta. Jag satte ut ”Stop” före och efter instruktioner att gå till andra subrutiner, typ:
Stop
Call Subrutin
Stop
Men nu skedde något för mig ytterst märkvärdigt: Programmet stoppade varje gång på ”Stop”, men den utförde det jag ville – alltså inget fel. Den gick INTE till Option10 !! När jag sedan tog bort ”Stop”, var felet där igen. Jag fattar INGET?!?!
Kan någon förklara / ge tips. Har ni varit med om detta?
PerSv: Det spökar i datorn?
Lite kod kanske? Hopp, subrutin, call, hopp, subrutin, alternativ...Sv: Det spökar i datorn?
PerSv: Det spökar i datorn?
Bara en tanke.
Ang "C:\PROGRAM" så ligger det en sträng i registret som refererar till "C:\PROGRAM FILES" (Hoppas jag mindes rätt nu*s*) Sök på "C:\PROGRAM FILES", datorn "ser" bara "C:\PROGRAM", därefter mellanslaget. Tror du skulle sätta snuttar runt sökvägen (")
/BSv: Det spökar i datorn?
PerSv: Det spökar i datorn?
Rent principiellt, vet inte om det hjälper här.
Ni skall inte ha en massa Call eller Funktion anrop i Form_Load.
Rensa Form_Load på så mycket som är möjligt.
Lägg denna kod i Form_Activate.Sen kappslar Ni in den kod
som bara skall köras en gång med en If Beenhere sats True False
/SvenSv: Det spökar i datorn?
Om det inte är koden. ÄR det antagligen fel på designen i av formuläret har du placerat dem fel? Kontrollera namnet med positionen.
Annars så kan du ju kopiera upp formuläret till filarean så kan vi nog lösa dit problem.
Annars kan vi börja satsa på trav. Större chans att få rätt då. ;o)Sv: Det spökar i datorn?
MvH
Per