![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Супер запутанные лупы [D5, D6, Win95/98, WinXP]
Fog © (2002-09-18 16:15:00)у меня функция:
function LoadMap(Slot: Integer): Integer;
var
MapFile: TFileStream;
buff: Char;
begin
MapFile := TFileStream.Create(MapFileName, fmOpenRead);
MapFile.Position := Slot;
while MapFile.Position < Slot + 1 do
begin
MapFile.Read(buff, 1);
Result := Result + StrToInt(buff);
end;
MapFile.Free;
end;
и DXTimer:
procedure DXTimerOnTimer(blablabla);
var
k: integer...
begin
for k := 0 to 46 do
begin
if not Odd(k) then
begin
DXImageList1.Items[1].Draw(DXDraw1.Surface, MapX[LoadMap(k)], mapY[5], 0);
end;
end;
end;
Выскакивает Access violation
Возможно это ужасающий непрофессиолизм, но лучше этого я придумать не мог... Это загрузка положения спрайтов из фалы... MapX, MapYэто массив изомерических тилей...
Fog (2002-09-19 15:29:00) [1]В файле я пишу либо
010203040506...
или
1 2 3 4 5 6...
Fog (2002-09-18 18:49:00) [2]
> Подземельный Кадастрат
как это не инициализирован, он у меня в виде сонстанты!
const MapX: array[0..23] of integer =
(chisla)...
Подземельный Кадастрат (2002-09-18 18:37:00) [3]MapX, если это динамический массив, не инициализирован (не создан) к тому времени, когда его вызывает таймер
Fog (2002-09-18 18:06:00) [4]
> ART_43
for k := 0 to 46 do
begin
if not Odd(k) then
begin
DXImageList1.Items[1].Draw(DXDraw1.Surface, MapX[LoadMap(k)],
mapY[5], 0);
end;
end;
Гдето тут...
ART_43 (2002-09-18 17:15:00) [5]В какой строке?
Fog (2002-09-18 17:04:00) [6]AV хоть ты тут тресни :(
> ART_43
В таймере...
Алексей Ким (2002-09-18 16:25:00) [7]oops... сам себя запутал...
var i: array[0,1] of char;
mapfile.position := slot;
if mapfile.position + 2 < mapfile.size then
mapfile.read(i,2);
так вроде...
Алексей Ким (2002-09-18 16:21:00) [8]var i: array [0..1] of char;
while MapFile.Position < MapFile.Size do
begin
read(buff,1);
Result := Result + StrToInt(buff);
end;
так?
ART_43 (2002-09-18 16:21:00) [9]AV в каком месте вылезает?
Fog (2002-09-18 16:18:00) [10]дело в том что мне нужно читать двузначное значение...
Алексей Ким (2002-09-18 16:16:00) [11]function LoadMap(Slot: Integer): Integer;
var
MapFile: TFileStream;
buff: Char;
begin
MapFile := TFileStream.Create(MapFileName, fmOpenRead);
MapFile.Position := Slot;
while MapFile.Position < Slot dobegin
MapFile.Read(buff, 1);
Result := Result + StrToInt(buff);
end;
MapFile.Free;
end;