Hej, nu är jag här igen! :) Varför funkar inte detta? Du måste associera en bild med en text. Om du vill slippa skapa ett index eller databas över nummer och motiv. Kan du istället ge filerna korrekt namn. Här är ett litet exempel som visar hur man kan göra detta: Denna jämförelsen går inte:Hjälp med load picture...
Den här gången vill jag att när man klickar på en knapp så ska en slumvis vald bild visas. Så långt går det bra.
Om det är en bild av en blomma så ska man få "rätt" när man skriver "blomma" i en textbox, annars "fel"
Jag tror jag klarar att lösa det med en select case-sats, men det blir så himla mycket kod, speciellt som jag tänkte ha måååånga bilder.
Jag har lyckats med randomize utan select case, men då vet jag inte hur jag ska kombinera det med texten i textrutan.
Här är den koden:
Private Sub CmdKlicka_Click()
Randomize
iTal = Int(50 * Rnd)
ImgBild.Picture = LoadPicture(App.Path & "\bilder\" & iTal & ".jpg")
End Sub
Detta vill jag alltså kombinera med en textruta där man ska skriva in olika text beroende på vilken bild som är laddad i ImgBild, och en till kommandoknapp som man trycker på när man har skrivit, för att få resultatet (rätt eller fel)
Jag trodde man kunde använda en if-sats av nåt slag, men har inte lyckats.
Mvh KattisVarför funkar det inte?
Private Sub CmdKlicka_Click()
Randomize
iTal = Int(19 * Rnd)
ImgBild.Picture = LoadPicture(App.Path & "\bilder\" & iTal & ".jpg")
End Sub
Private Sub CmdResultat_Click()
If TxtText.Text = "bil" And ImgBild.Picture = LoadPicture(App.Path & "\bilder\11.jpg") Then
ImgResultat.Picture = LoadPicture(App.Path & "\bilder\rätt.jpg")
Else
ImgResultat.Picture = LoadPicture(App.Path & "\bilder\fel2.jpg")
End If
End Sub
Det blir aldrig "rätt". :(
Ska man skriva nåt annat 'n "LoadPicture"?Sv: Hjälp med load picture...
Kontroller:
* cmdSvara - Knapp för att svara
* cmdKlicka - Laddar bild och text
* imgBild - kontroll i vilket bilden visas
Kod:
Option Explicit
Private mPath As String
Private mPictures() As String
Private mPictureName As String
Private Sub cmdSvara_Click()
If StrComp(txtSvar, mPictureName, vbTextCompare) = 0 Then
MsgBox "Rätt!"
Else
MsgBox "Fel!"
End If
End Sub
Private Sub Form_Load()
Dim FileName As String
Dim Count As Long
Dim Size As Long
mPath = App.Path & "\bilder"
ChDrive mPath
ChDir mPath
FileName = Dir("*.jpg")
Do While Len(FileName)
Count = Count + 1
If Count > Size Then
Size = Size + 10
ReDim Preserve mPictures(1 To Size)
End If
mPictures(Count) = FileName
FileName = Dir()
Loop
End Sub
Private Sub CmdKlicka_Click()
Dim iTal As Integer
Dim sTemp As String
Randomize
iTal = LBound(mPictures) + Int(UBound(mPictures) * Rnd)
sTemp = mPictures(iTal)
imgBild.Picture = LoadPicture(mPath & "\" & sTemp)
mPictureName = Left(sTemp, Len(sTemp) - 4)
End SubSv: Varför funkar det inte?
ImgBild.Picture = LoadPicture(App.Path & "\bilder\11.jpg")
Därför ImgBild.Picture retunerar default egenskapenet. Vilket är tal som symboliserar ett "hantag" till minnesobjektet. LoadPicture() funktionen retunerar ett nytt minnesobjektet, med ett nytt "hantag" till den nya objektet. Med andra ord så kommer de aldrig att vara lika.
Därför bör du lagra sökväg...