Spenzer Skrevet 27. august 2007 Del Skrevet 27. august 2007 (endret) Hei hei, da starta jeg og med .NET etter ei kort stund med VB6, starta med en gang med en gang med WebBrowser funksjonen, men da møtte jeg på en feil Vel, feil og feil, var ikke noen feil men det funka ikke slik jeg ønska Får håpe dere kan svare på mitt lille spm da. Koden skal gjøre slik at når sida loader, så venter den til den er ferdig Eksempel kode (i VB6):WebBrowser1.navigate "www.google.com" DoEvents While WebBrowser1.Busy = True DoEvents Wend hvordan fungerer denne koden i VB Express 2005 ? prøvde noe slik i .NET, men det funka ikke: WebBrowser1.Navigate("www.nordicmafia.net") Application.DoEvents() While WebBrowser1.IsBusy = True Application.DoEvents() End While for pro'sa her, så regner jeg med at dom ler av meg, men en n00b må jo starte en plass han og. Endret 27. august 2007 av Spenzer Lenke til kommentar
Manfred Skrevet 27. august 2007 Del Skrevet 27. august 2007 Å begynne et sted er en ting. Å begynne med en juksebot til NM som ALLE andre fjortissene her på forumet skal, er noe annet. Lenke til kommentar
Spenzer Skrevet 28. august 2007 Forfatter Del Skrevet 28. august 2007 herregud, nordicmafia.net var et eksempel, jeg klarer fint og lage boter i VB6, men gidder ikke lage boter mer, skal trene meg mer i .NET og nei har ikke planer om og lage bot(er) Lenke til kommentar
j000rn Skrevet 28. august 2007 Del Skrevet 28. august 2007 prøvde noe slik i .NET, men det funka ikke:9373434[/snapback] Mora mi klarer å komme med bedre beskrivelse av feilene hun får på en PC enn det der... Prøv igjen! Lenke til kommentar
Spenzer Skrevet 28. august 2007 Forfatter Del Skrevet 28. august 2007 ja, ingenting skjedde liksom, den venta ikke til den var ferdig med og loade før den tok neste handling, men fikk ingen feil eller noe det jeg mener med INGENTING SKJEDDE. Skjønner? Lenke til kommentar
j000rn Skrevet 28. august 2007 Del Skrevet 28. august 2007 ja, ingenting skjedde liksom, den venta ikke til den var ferdig med og loade før den tok neste handling 9377165[/snapback] Lenke til kommentar
GeirGrusom Skrevet 28. august 2007 Del Skrevet 28. august 2007 browser.Navigate("http://www.vg.no") Do While browser.IsBusy() : Application.DoEvents() : Loop Det ser ut til å fungere her... Aprikos så er det bare nybegynnere som sjekker om en boolean verdi er true eller false Lenke til kommentar
j000rn Skrevet 28. august 2007 Del Skrevet 28. august 2007 browser.Navigate("http://www.vg.no")Aprikos så er det bare nybegynnere som sjekker om en boolean verdi er true eller false [right][snapback]9377979[/snapback][/right] Kaller du meg nybegynner!? Lenke til kommentar
Manfred Skrevet 28. august 2007 Del Skrevet 28. august 2007 if( foo == true && foo != false ) ... Lenke til kommentar
GeirGrusom Skrevet 29. august 2007 Del Skrevet 29. august 2007 (endret) Hvis Det er Sant at browser er opptatt istedet for Hvis browser er opptatt det er litt smør på flesk, uten at det legger til noen ekstra logikk eller forståelse. Det har ingen ting å si for ytelsen, men meg forteller det at programmereren ikke har helt forstått hverken bool eller if. som i dette eksempelet bool a, b, c, d, e, f; a = b = c = d = e = f = true; if(a == true && b == true && c == true && d == true && e == true && f == true) MessageBox.Show("TEH TRUTH!"); istedetfor bool a, b, c, d, e, f; a = b = c = d = e = f = true; if(a && b && c && d && e && f) MessageBox.Show("TEH TRUTH!"); Begge gir samme resultat, men en er betydelig mindre kode en den andre. Endret 29. august 2007 av GeirGrusom Lenke til kommentar
don_Vito Skrevet 29. august 2007 Del Skrevet 29. august 2007 (endret) Jeg vil påstå, uten at jeg klarer å komme med eksempel her nå, at det finnes tilfelle der det øker lesbarheten å sjekke om en boolean er true eller ikke.. Tross alt leser man koden oftere enn man skriver den.. Endret 29. august 2007 av don_Vito Lenke til kommentar
Manfred Skrevet 29. august 2007 Del Skrevet 29. august 2007 Greit å komme med en påstand uten å kunne eksemplifisere det på noen som helst måte. Lenke til kommentar
backup Skrevet 29. august 2007 Del Skrevet 29. august 2007 Jeg vil påstå, uten at jeg klarer å komme med eksempel her nå, at det finnes tilfelle der det øker lesbarheten å sjekke om en boolean er true eller ikke.. Tross alt leser man koden oftere enn man skriver den.. 9382577[/snapback] Her noen eksempler: 1. Hvis prinsippet er at programmer skal være mest mulig selvdokumenterende, da kan det være greit å angi så som: if x = true then ..... 2. Hvis programmet er stort og med veldig mange variabler, da er det ikke så lett å huske alle variablers deklarasjoner til en hver tid. Da ser man jo øyeblikkelig med: if x = true then ... at x er ment som en boolean variabel, noe man ikke gjør med if x then ..., fordi x kan jo være deklarert som f.eks.: dim x as single 3. Med if x = true then ... blir det mindre forståelsesproblemer for leseren som er nybegynner som ikke vet at med x som boolean da er i vb: if x then ... det samme som: if x = true then .... 4. Generelt er det en god programmeringsregel alltid å angi eksplisitt hvilke verdier man tester mot, så selv om derfor: if x = true then ... er smør på flesk når x er en boolean, så blir ikke flesket dårligere av den grunn, tvert om (flesket forstått som god programmeringsskikk). Lenke til kommentar
GeirGrusom Skrevet 29. august 2007 Del Skrevet 29. august 2007 If er en funksjon som tar ett parameter: bool Alle andre datatyper satt inn her (single f.eks.) vil gi compile feil. når vi nevner selvdokumenterende så er x et dårlig variabelnavn på selvdokumenterende kode. Pluss at det at det ikke er noen sammenligning her undestreker at dette er en boolean like fint som x == true. Hvorfor? hvis x ikke er en boolean, vil ikke programmet latt seg kompilere. if(alive) er ikke noe mindre selvdokumenterende en if(alive == true), faktisk synes jeg den er mer logisk, pluss at den tar mindre plass. .NET er optimizings compiler, dvs at den fjerner i dette tilfellet alive == true oversatt kode vil bli if(alive) selvom du skriver if(alive == true) fordi det er en teknisk forskjell her, selvom compileren gjør at det forsvinner. Men kort sagt så ville if(alive == true) gjørt at alive ble sammenlignet to ganger hvis det ikke var en optimizing compiler. Lenke til kommentar
j000rn Skrevet 29. august 2007 Del Skrevet 29. august 2007 Jeg er enig med alle sammen jeg. Det jeg ikke liker er: if(!noegreier) Det utropstegnet forran variablen der er veldig lett å overse når man leser koden og debugger. Det er mye mer lesbart å skrive: if( noegreier == false ) Men, alle regler er til for å brytes. Eksempelet til Geir med mange sjekker i if setningen if( !a && !b && !c && !d && !e ... ) ville selvfølgelig ikke være hensiktsmessig å skrive på måten jeg nevnte over. Da kan det være greiere å putte det utenfor if setningen også: bool tmp = (a || b || c || d) == false; if( tmp ) Uansett så kan det være greit å tenke over hva man skriver. Lenke til kommentar
GeirGrusom Skrevet 29. august 2007 Del Skrevet 29. august 2007 Husker jeg gjorde noe liknende med en kode, det var en CRC rutine, og den fungerte ikke... jeg lette gjennom og skjønte ikke hva som var galt... helt til jeg plutselig så tegnet ~ Tok laaang tid før jeg så det. Lenke til kommentar
backup Skrevet 29. august 2007 Del Skrevet 29. august 2007 If er en funksjon som tar ett parameter: boolAlle andre datatyper satt inn her (single f.eks.) vil gi compile feil. Åh... det var nytt, men feil på vb2005. Prøv f.eks. denne på vb2005: Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim x As Single If x Then MsgBox("Sann: " & x) Else MsgBox("Usann: " & x) End If End Sub Resultat: msgbox'en under else blir aktiv og gir verdien 0 for x! (x blir automatisk intialisert med 0) Eller prøv denne: Dim x As Single x = 20 If x Then MsgBox("Sann: " & x) Else MsgBox("Usann: " & x) End If Resultat: msgbox'en under then blir aktiv og gir verdien 20 for x. Eller prøv denne: Dim x As Single x = 20 If x = True Then MsgBox("Sann: " & x) Else MsgBox("Usann: " & x) End If Resultat: msgbox'en under else blir aktiv og gir verdien 20 for x. når vi nevner selvdokumenterende så er x et dårlig variabelnavn på selvdokumenterende kode. Jojo, men det er jo ikke variabelnavn som diskuteres her. Pluss at det at det ikke er noen sammenligning her undestreker at dette er en boolean like fint som x == true. Hvorfor? hvis x ikke er en boolean, vil ikke programmet latt seg kompilere. Eksemplene ovenfor viser at i vb2005 tar if ikke bare boolean variabler! if(alive) er ikke noe mindre selvdokumenterende en if(alive == true), faktisk synes jeg den er mer logisk, pluss at den tar mindre plass. Smak og behag formoder jeg, men når i vb2005 if tar f.eks. både boolean og single variabler, da er nok i vb2005 if x = true then ... mer selvdokumenterende enn if x then ... hvis man er usikker på x sin deklarasjon, fordi x = true indikerer at x er ment som boolean. Lenke til kommentar
j000rn Skrevet 29. august 2007 Del Skrevet 29. august 2007 Åh... det var nytt, men feil på vb2005. Prøv f.eks. denne på vb2005: 9383541[/snapback] Sett OPTION STRICT og prøv igjen. VB er veldig "flink" til å la deg få lov til å skrive dårlig kode.... Lenke til kommentar
backup Skrevet 29. august 2007 Del Skrevet 29. august 2007 Åh... det var nytt, men feil på vb2005. Prøv f.eks. denne på vb2005: 9383541[/snapback] Sett OPTION STRICT og prøv igjen. VB er veldig "flink" til å la deg få lov til å skrive dårlig kode.... 9383640[/snapback] Jojo, men vb tillater altså at if tar ikke bare boolean. Det var jo det som var diskusjonen! Så kan jo du komme med innskrenkninger ..., men da blir det som å diskutere mot bevegelige mål, en håpløs diskusjon vil nå jeg si da. Lenke til kommentar
ze5400 Skrevet 29. august 2007 Del Skrevet 29. august 2007 Åh... det var nytt, men feil på vb2005. Prøv f.eks. denne på vb2005: 9383541[/snapback] Sett OPTION STRICT og prøv igjen. VB er veldig "flink" til å la deg få lov til å skrive dårlig kode.... 9383640[/snapback] Hehe, det vet jeg ett og annet om Skulle sett hvor mye compileren maste og gnøvla når jeg migrerte fra VB.NET til C# Når jeg først er off-topic, vil jeg si noe til GeirGrusom (aka. HenningGrusom ) Selv om jeg foretrekker å sette == true eller false, når jeg sjekker booleanske verdier (unntaket må være i php. Der gir jeg F, og bare koder ), har jeg da forstått både boolean og if. Tror jeg da Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå