Avatar billede dar86 Nybegynder
01. januar 2006 - 23:37 Der er 3 kommentarer og
1 løsning

Load mange billeder

Hej jeg skal loade en del billeder når min form starter, og til det har jeg lavet en løkke, men når jeg kører det får jeg fejlen "object variable or with block variable not set"

Koden ser sådan her ud:

Dim pics(6413) As PictureBox
Private Sub Form_Load()
    For t = 1 To 6
        For y = 1 To 4
            For u = 1 To 13
                If Len(u) = 1 Then
                    i = "0" & u
                End If
               
                nr = CInt(t & y & i)
                str_path = FindSti(CInt(y & i))
                pics(nr).Picture = LoadPicture(str_path)
                pics(nr).Width = 71
                pics(nr).Height = 96
   
               
            Next
        Next
    Next
End Sub
Avatar billede sjh Nybegynder
02. januar 2006 - 00:51 #1
Ja hvis du skal ha det der til at virke så skal du have 6414 PictureBox på din Form.. og det er nok ikke lige det du vil eller hvad?

ellers kan du gemme path til alle dine billeder i et array:


Dim arrPath(6413) As String

Private Sub Form_Load()
    For t = 1 To 6
        For y = 1 To 4
            For u = 1 To 13
                If Len(u) = 1 Then
                    i = "0" & u
                End If
                nr = CInt(t & y & i)
                str_path = FindSti(CInt(y & i))
                arrPath(nr) = str_path
            Next
        Next
    Next

    Picture1.Picture = LoadPicture(arrPath(0))
End Sub
Avatar billede sjh Nybegynder
02. januar 2006 - 08:44 #2
ikke for noget men der er altså flere af de tal som går igen.. og du vil så få samme PATH flere gange..
Avatar billede dar86 Nybegynder
02. januar 2006 - 17:22 #3
Nej skal ikke bruge 6413 billeder men "kun" 312, men har valgt 6413 da jeg skal lave et kortbunke med 6 spil kort delt op i 4 kulører med 13 kort i hver :) Så det der er lavet er helt med vilje. Og samme kort skal kunne vises 6 gange derfor samme path.

Og ja så kunne man lave 1 til 312 men det ville blive lidt for besværligt når man skal finde ud af kortets værdi og kulør.

Men skal have mulighed for at få vist en hel del kort samtidig, så det vil da ikke helt virke det du skriver vel ?
Avatar billede sjh Nybegynder
02. januar 2006 - 22:42 #4
Så må den her da lige være noget for dig.. du skal jo også ha blandet dine kort..


' --------------------------------- Form1 ---------------------------------
' Husk en Command1 og en List1
Option Explicit

Public Sub Vis_Kort(ByRef kortstak() As Integer)
Dim i As Integer
Dim farver As Variant
Dim valører As Variant

  farver = Array("Spar", "Klør", "Ruder", "Hjerter")
  valører = Array("2", "3", "4", "5", "6", "7", "8", "9", "10", "Knægt", "Dame", "Konge", "Es")

  List1.Clear

  For i = 0 To UBound(kortstak)
    List1.AddItem farver(kortstak(i) Mod 4) & " " & valører(kortstak(i) Mod 13)
  Next
End Sub

Private Sub Command1_Click()

Const antalkort = 52                    'antal kort.. kunne også være 104 osv..

Dim Bunke(antalkort - 1) As Integer    '2 arrays med 52 pladser
Dim TempBunke(antalkort - 1) As Integer '..........
Dim i As Integer                        'tæller til For-Next løkke
Dim AktueltKort As Integer              'kortet vi skriver til bunke
Dim Tilbage As Integer                  'tæller -hvor mange kort mangler vi?

  For i = 0 To antalkort - 1
    TempBunke(i) = i                    'giv hvert kort en unik værdi mellem 0 og 51
    Bunke(i) = -1                      'nulstil alle kort(-1 =tom)
  Next

  Randomize                            'start tilfældigheds-generator

  Tilbage = antalkort
  For i = 0 To antalkort - 1                    'gentag denne løkke 52 gange
    AktueltKort = Int(Tilbage * Rnd)            'vælg tilfældigt tal mellem 1 og Tilbage
    Bunke(i) = TempBunke(AktueltKort)          'dette kort sættes på i i bunken
    Tilbage = Tilbage - 1                      'nu er der et kort færre
    TempBunke(AktueltKort) = TempBunke(Tilbage) 'dette kort fjernes fra TempBunke
  Next

  Vis_Kort Bunke()                              'indeholder nu de 52 kort i tilfældig rækkefølge
End Sub
' --------------------------------- Form1 ---------------------------------
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester