Posiadam 2 bitmapy jedną 100x100 pikseli drugą 10x10 pikseli.
Wczytuje te bitmapy do tablic takim oto kodem:
Kod dla bitmapy 100x100
Assign (BitMap,'models\MinaLand.bmp'); // Skojarzenie pliku
Reset (BitMap); // Otwarcie pliku
Seek (BitMap,1078); // Przeskok za nagłówek i paletę kolorów (paleta kolorów wczytana wcześniej)
For x := 99 downto 0 Do // Pętla dla x
For y := 0 to 99 Do // Pętla dla y
Begin
Read (BitMap,Color); // Odczyt koloru z bitmapy
PMina[1,x,y]^ := Color; // Wpisanie koloru do tablicy
end;
Close (Bitmap); // Zamkniecie pliku
Kod dla bitmapy 10x10
Assign (BitMap,'models\MiniLand.bmp'); // Skojarzenie pliku
Reset (BitMap); // Otwarcie pliku
Seek (BitMap,1078); // Przeskok za nagłówek i paletę kolorów (paleta kolorów wczytana wcześniej)
For x := 10 downto 0 Do // Pętla dla x
For y := 0 to 10 Do // Pętla dla y
Begin
Read (BitMap,Color); // Odczyt koloru z bitmapy
FMiniMap[1,x,y]^ := Color; // Wpisanie koloru do tablicy
end;
Close (Bitmap); // Zamkniecie pliku
Kod pierwszy działa bez problemu. Po odczycie kolorów z tablicy bitmapa się normalnie wyświetla. Natomiast drugi kod nie działa.
Występują przekłamania po wyświetleniu bitmapy (skośna czarna linia od prawego górnego rogu do lewego dolnego). Ktoś wie dlaczego?
Obie bitmapy tworzyłem sam w paintcie i w paintcie obie wyświetlają się poprawnie.
Bitmapy dołączam jako załączniki (trzeba zmienić rozszerzenie z pas na bmp) do postu wraz z resztą kodu unitu (wiem że to co tam napisałem niektórych przyprawi o palpitacje serca ale od czegoś trzeba zacząć :P)
W razie jak ktoś zdecyduje się przejrzeć cały kod to wszystko co dotyczy bitmap 100x100 działa jak również wszystko co dotyczy bitmap 10x10 nie działa.