Hejsan.. Peter, Jag har inte sagt att man ska göra som i mitt exempel, bara att det fungerar. > <b>Jag har inte sagt att man ska göra som i mitt exempel, bara att det fungerar.</b> Tar inte alls illa upp.... Tvärtom konstruktiv kritik är bra kritik.txtbox
Om jag har en txtbox med value =0
så skulle jag vilja att summan plusades på med 1 varje gång en knapp trycket ner
men får inte till det..
Är det någon som skulle kunna hjälpa mig med detta?Sv: txtbox
Det funkar, men är inte bra. Vad du gör är nämligen att utnyttja vb automatiska type casting och litar på att VB gissar rätt med dina intentioner. Vad som händer är att du får större risk för fel samtidigt som du faktiskt får ett långsammare program som slukar mer minne då VB oftast förutsätter det värsta...
Så jo, det funkar, men är inget bra exempel.
Att lita på automatiska funktioner är en styggelse, det är aldrig fel att visa vad man vill göra så att det garanterat blir rätt och så att man undviker enkla misstag som annars VBs kompilator gissar på och godkänner trots att en varning borde ges.
För att ta ett konkret exmepel på varför det inte är bra så har vi följande kod:
<code>
Text1.Text = Text1.Text + MinVariabel
</code>
Detta ser snyggt och fint ut och så länge som MinVariabel är heltal och innehåller värdet 1 så blir det precis som förväntat. Om nu MinVariabel istället är en sträng och innehåller "1" så ändrar man Text1.Text från 1 till 11 istället, vilket inte alls vad man önskade. Men VBs kompilator tycker att det funkar fint och sväljer det. Och ytterligare en gång senare ändras värdet från 11 till 111 osv...
Gör man istället som exemplet tidigare i tråden så undviker man helt detta problem. Så här:
<code>
Text1.Text = CStr( CInt( Text1.Text ) + CInt( MinVariabel) )
</code>
// JohanSv:txtbox
Själv skulle ja inte lösa uppgiften på nåt av de båda sätten. utan som nedan.
<code>
Option Explicit
Private MinVariabel As Integer
Private Sub Command1_Click()
'Räkna upp med ett och visa värdet
MinVariabel = 1 + MinVariabel
Text1.Text = CStr(MinVariabel)
End Sub
Private Sub Form_Load()
'Visa initialvärdet
Text1.Text = CStr(MinVariabel)
End Sub
</code>Sv: txtbox
He he, jag förstår vad du menar, men ditt uttalande låter lite som "jag har en massa idéer, men de är inte bra så lyssna egentligen inte på dem, men jag vill tvunget säga något eftersom jag vill synas..."
Jag förstår att det inte är det du vill ha sagt, men risken är att du uppfattas så. Jag vet från andra frågor att du är kompetent och därför blev jag lite förvånad av ditt tidigare inlägg i denna tråden. Nåja, jag hoppas att du inte tar illa upp av min kommentar, då det inte är elakt menat.
// JohanSv:txtbox
Håller med att man vill synas o vara bäst så är det ju, kan alla andra kan jag :-p
Nåja ska väl försöka låta bli att komma me dumma lösningsförslag då.
[Peter.H]