Autor Wątek: ArrayList - problem  (Przeczytany 1442 razy)

Offline looki7

  • Użytkownik

# Kwiecień 23, 2007, 23:10:38
w jednej mam suwaki i pzaisuje sobie zmodyfikowana klatke
SFrameData sFrameDataTemp = new SFrameData();

            sFrameDataTemp.bitmap = bmaska2;
            sFrameDataTemp.frame = aktframe;
            arrayList.Add(sFrameDataTemp);

            sFrameDataTemp = (SFrameData)arrayList[0];
            pictureBox1.Image = sFrameDataTemp.bitmap;
do arrayList
mam strukture
public struct SFrameData
        {
            public int frame; // klatka
            public Bitmap bitmap;  // bmaska2

        }

w Formie glownej chce sobie wyswietlic to co zapisalem
keyOne k = new keyOne(bmp,ile,paseczek.Maximum);
            KluczChr.keyOne.SFrameData sFrameDataTemp = new KluczChr.keyOne.SFrameData();
            sFrameDataTemp = (KluczChr.keyOne.SFrameData)k.arrayList[0];//k.tabframe[k.aktframe]];
            pictureBox3.Image = sFrameDataTemp.bitmap;
i wywala mi blad

index out of ragne
*range


dlaczego jest poza zasiegiem jak w 1 formie wsyztsko ok mi w pictureBox pokazalo?

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline exor

  • Użytkownik

# Kwiecień 23, 2007, 23:35:21
zdebuguj sobie ten fragment i sprawdź czy aby na pewno w k.arrayList coś jest.
a tak btw to nie bardzo wiem po co tworzysz zmienną tutaj
KluczChr.keyOne.SFrameData sFrameDataTemp = new KluczChr.keyOne.SFrameData();
jak w następnej linijce tracisz referencje do obiektu bo przypisujesz już coś innego

edit:
ten pierwszy kawałek kodu wywołuje Ci sie w konstruktorze keyOne czy gdzie? bo jeżeli nie to 'k' to zupełnie inny obiekt nie powiązany z 1 formą i nie ma nic w arrayList. Chyba że do końca nie rozumiem Twojego kodu.
« Ostatnia zmiana: Kwiecień 23, 2007, 23:46:16 wysłana przez exor »

Offline Lothar

  • Użytkownik

# Kwiecień 24, 2007, 09:37:28
Ten kod jest nie logiczny. Poza tym ciężko coś pwiedzieć patrząc na takie wycinki kodu.

Ogólnie powinno być tak, że tworzysz obiekt który ma właściwości bmaska2 i aktframe. W konstruktorze możesz przypisać wartości lub w głównej formie.

Przykładowy kod 1:
public class Objekt
{
private string nazwa;
public string Nazwa
{
get { return nazwa; }
set { nazwa = value; }
}
public Objekt()
{
}
                 }

i użycie

Objekt ob = new Objekt();
ob.Nazwa = "nazwa";

Można też z parametrem np. przeciążając metodę.


Nie wiem czy akurat o to właśnie ci chodziło, ale ciężko wywnioskować z fragmentu kodu.