webForumDet fria alternativet

kan inte ändra egenskapen för bilden

.NET

23 svar · 451 visningar · startad av ampy

Medlem sedan feb. 20011 498 inlägg
Frågan#1

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?

Medlem sedan feb. 20011 498 inlägg
#2

Oops, fel forum!

Ska vara i Visual Basic!

Kan nån flytta tråden?

Medlem sedan feb. 200115 571 inlägg
#3

Flyttas från Windows till Visual Basic

Medlem sedan aug. 20021 752 inlägg
#4

Ska det inte vara

imgbord1.Picture = "upptaget.gif"

/Viktor

Medlem sedan feb. 20011 498 inlägg
#5

Jo, det kanske det ska vara men får ändå samma felmeddelande.

Medlem sedan aug. 20021 752 inlägg
#6

Kom på att jag hade VB på denna dator

Såhär gör man,

Image1.Picture = LoadPicture("E:\F1 2002\checkeredflag.bmp")

/Viktor

Medlem sedan feb. 20011 498 inlägg
#7

Måste man skriva hela sökvägen?

Testa med både hela och med bara upptaget.gif men får ändå samma felmeddelande.

Medlem sedan aug. 20021 752 inlägg
#8

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

Medlem sedan feb. 20011 498 inlägg
#9

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()

....

Medlem sedan aug. 20021 752 inlägg
#10

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

Medlem sedan feb. 20011 498 inlägg
#11

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.

Medlem sedan aug. 20021 752 inlägg
#12

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

Medlem sedan feb. 20011 498 inlägg
#13

Man tackar för all hjälp! :bire

Medlem sedan feb. 20011 498 inlägg
#14

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?

Medlem sedan dec. 20003 887 inlägg
#15

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.

Medlem sedan aug. 20021 752 inlägg
#16

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

Medlem sedan feb. 20011 498 inlägg
#17

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. :)

Medlem sedan feb. 20011 498 inlägg
#18

:)

Ä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?

Medlem sedan dec. 20003 887 inlägg
#19

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 :)

Medlem sedan dec. 20003 887 inlägg
#20

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.

270 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
132 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
131 ms — ändringar (db)