Witajcie! Domyślnie ImageList wkompilowywuje wszystkie obrazki do exeka... a ja chciałbym aby program korzystał z plików 'z zewnatrz'. Z pomocą przysły mi klasy TPiture i TBitmap... Ok, wszystko pięknie ale... One same w sobie nie potrafią 'rysować'... więc musiałbym z czegoś innego korzystać... Chciałem DXImageList użyć, ale wyskakuje komunikat, że nie można do read-only przypisać czegośtam... Moje pytanie - jak rozwiązać problem ?
a jak zrobisz:
image1.picture.loadfromfile('plik.bmp');
form1.canvas.draw(0,0,image1.picture.graphic);
do DXlist da sie wczytac obrazki, ale juz nie pamietam jak :D
Długo się nad tym męczę, więc może Wy coś poradzicie:
Program wywala się, jeżeli tworzę klasy.... a konkretnie:
Wszystko jest ok:
for i:=0 to length(obrazki.czolgi) do obrazki.czolgi[i]:=Tbitmap.Create;
//for i:=0 to length(obrazki.efekty) do obrazki.efekty[i]:=Tbitmap.Create;
Wszystko jest ok:
//for i:=0 to length(obrazki.czolgi) do obrazki.czolgi[i]:=Tbitmap.Create;
for i:=0 to length(obrazki.efekty) do obrazki.efekty[i]:=Tbitmap.Create;
wywala się:
for i:=0 to length(obrazki.czolgi) do obrazki.czolgi[i]:=Tbitmap.Create;
for i:=0 to length(obrazki.efekty) do obrazki.efekty[i]:=Tbitmap.Create;
Pytanie - dlaczego ?? Jezeli tworze osobno to wszystko jest ok, ale jezeli chce stworzyc druga to sie wywala... dla wyjasnienia:
TObrazki = record
czolgi : array[0..7] of TBitmap;
efekty : array[0..5] of TBitmap;
...
Obrazki:TObrazki;
Wiecie moze dlaczego ? :/ Co ciekawsze, efekty 'niestworzenia klasy' sa widoczne podczas dzialania programu, ale dopeiro wywala sie podczas alt+F4owiania (w onclose mam *.free;)
for i:=0 to length(obrazki.czolgi)-1 do obrazki.czolgi[i]:=Tbitmap.Create;
for i:=0 to length(obrazki.efekty)-1 do obrazki.efekty[i]:=Tbitmap.Create;
length(obrazki.czolgi) = 8, a indeks jest do 7
length(obrazki.efekty) = 6 - to samo
dzięki za pomoc, choć problemu to nie rozwiązuje... Zrobię inaczej, bez TGraphiców...
Therielu moze jestem monotonny ale... uzyj DXImageList w DelphiX
:-)
I z czym tam masz jeszcze problem?
//dopisane
A wywala Ci sie prawdopodobnie dlatego ze zwalniasz tam tez te obrazki w petli
for i:=0 to dlugosc tej tablicy...
i probujesz zwolnic obiekt o indeksie ktorego nie stworzyles...sprawdz...