Har denna kod:
imgbord1.Picture "upptaget.gif"
Felmeddelandet jag får är:
Method or data member not found.
Varför kan jag inte ändra egenskapen för bilden?
23 svar · 451 visningar · startad av ampy
Har denna kod:
imgbord1.Picture "upptaget.gif"
Felmeddelandet jag får är:
Method or data member not found.
Varför kan jag inte ändra egenskapen för bilden?
Flyttas från Windows till Visual Basic
Jo, det kanske det ska vara men får ändå samma felmeddelande.
Kom på att jag hade VB på denna dator
Såhär gör man,
Image1.Picture = LoadPicture("E:\F1 2002\checkeredflag.bmp")
/Viktor
Måste man skriva hela sökvägen?
Testa med både hela och med bara upptaget.gif men får ändå samma felmeddelande.
Jag skapade ett nytt exe projekt, la in en image komponent och en knapp och la den koden som jag skrev här på knappen och det fungerade perfekt :)
Jag kan inte se någon anledning till varför inte en relativ sökväg skulle fungera.
/Viktor
Jag kan säga att när jag skriver bildens (picture) namn och punkten så kommer endast fyra alternativ upp.
imgbord1. <-- när man har skrivit punkten ska ju en massa alternativ upp men jag får bara fyra
Alternativen är:
Count
Item
LBound
UBound
Kan även namn att koden är i en timer-sub.
Private Sub timer_users_Timer()
....
Aha! då är det en array. Det blir det automatiskt om du skapar 2 object med samma namn. Byt namn och/eller ta bort det som står i Index properyn på det object du vill använda, eller skriv imgbord1(INDEX_VALUE).Picture = LoadPicture("E:\F1 2002\checkeredflag.bmp"), där INDEX_VALUE är det nummeret som står i propertyn Index.
/Viktor
Nu får jag:
External name not defined.
På koden nedan:
imgbord1 [1].Picture = LoadPicture("C:\Andreas\Andreas program\upptaget.gif")
Bilden har det indexnumret och det namnet.
Ok, lite för mycket Java och C++ på senste tiden :)
Ska ju vara
imgbord1(1).Picture = LoadPicture("C:\Andreas\Andreas program\upptaget.gif")
Nu SKA det fungera :)
/Viktor
Man tackar för all hjälp! :bire
En tilläggsfråga:
Jag har en variabel som heter bord som anger vilket bord det är (en siffra mellan 1 och 16).
Nu vill jag lägga till det i koden istället för ettan:
imgbord1(1).Picture = LoadPicture("C:\Andreas\Andreas program\upptaget.gif")
Alltså så här:
imgbord"&bord&"("&bord&").Picture = LoadPicture("C:\Andreas\Andreas program\upptaget.gif")
Men det fungerar såklart inte (syntaxfel). Hur ska man lösa det?
Jag har suttit med liknande problem och försökt lösa det med Eval(), men jag har inte fått det att fungera till 100%
Eval("imgbord" & bord & "(" & bord & ").Picture = LoadPicture(""C:\Andreas\Andreas Program\upptaget.gif"")")
Kanske, kanske inte... du får säkert ta och titta lite mer på Eval()-funktionen.
När datorn kompilerar koden så måste den veta vad variabeln heter, därför går det inte att döpa en variabel med hjälp av andra variabler.
Jag förstår dock inte riktigt hur du har tänkt dig att detta ska fungera. Har du 16 bord eller 256? Som du har skrivit koden nu så har du 256 bord men kan bara använda 16.
Jag utgår i mitt svar från att du bara har 16 bord, om det inte stämmer så får jag skriv om det senare :)
Skapa 16 bild objekt med index 1-16, anroppa dem på detta sätt
imgbord(bord).Picture = LoadPicture("C:\Andreas\Andreas program\upptaget.gif")
strunta i att döpa variablen till 1-16 också, den inexeringen får du automatiskt när du kör det som en array.
/Viktor
Engine^: Jag tror jag går på Viktors förslag. Tack iaf! :)
Viktor: Tänkte inte på att man kan ha samma namn på alla bildobjekt men olika indexnummer. Är rätt så ny på Visual Basic trots allt. Du har alldeles rätt med att det är 16 bord.
Funkar bra nu. :)
:)
Ännu en tiläggsfråga:
När folk sedan installerat mitt program kommer ju inte sökvägen till bilden att gälla. Hur fixar man det?
Lika bra det, för jag verkar ju vara helt onykter ;)
Antingen finns inte Eval() till VB eller så är jag mer eller mindre blind.
För övrigt så är Viktors metod inte bara rätt utan mycket bättre :)
ampy skrev:
Ännu en tiläggsfråga:
När folk sedan installerat mitt program kommer ju inte sökvägen till bilden att gälla. Hur fixar man det?
Spara en registernyckel/nycklar med installationsinformation av den typen. Då kan du lätt läsa av den när du behöver den.