Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Undeclared identifier:'draw'


Автор: igmyrj 23.2.2006, 16:25
Всем привет!
Я недавно(пару недель назад) начал изучать Delphi. Так что не ругайте сильно за такой нубский вопрос=)
Значит, у меня есть модуль в котором описана функция draw. Я подключаю этот модуль в основной файл проекта(это .dpr или .bsproj=)) и вызываю из него(проекта) draw. Но когда я пытаюсь откомпилировать мое гиниальное произведение Delphi пишет:"Undeclared identifier:'draw' ". Что это значит? Просто, я уже весь день бьюсь, не получается=(

Автор: Guedda 23.2.2006, 16:32
Тебе просто нужно подключить модуль правильно. Напиши в разделе uses имя модулЯ.
А если и так не получается, тогда попробуй написать так:
Код

imya_modula.draw;


И вообще, напиши платформу, на которой пишешь?

Автор: Albinos_x 23.2.2006, 17:25
а функция у тебя объявлена?

Автор: igmyrj 23.2.2006, 17:32
Я пишу на Delphi 2005 на Win32. Модуль у меня подключен правильно, т.к когда наводишь на функцию всплывает подсказка, что она определена в таком-то модуле.

Автор: Guedda 23.2.2006, 17:34
Покажи, пожалуйста, исходный код модуля, который ты подключаешь...

Мне кажется, ты не в разделе interface переменную определяешь..

Автор: igmyrj 23.2.2006, 17:56
То есть? Я же спрашиваю про функцию. А переменные я действително не там определял=)

Автор: igmyrj 23.2.2006, 18:35
О, все. Сам справился. Оказывается я забыл объявить процедуру=) Но теперь выскакивает новая ошибка. Уже во время запуска программы появляется табличка(под заголовком Application error): Exception EAccessViolation in module 'game.exe' at 00007C90. Access violation at address 00407C90 in module ... и так далее.
Что это значит? Вообще сомневаюсь, что вопрос сюда, потому что я пишу игру. Если что движок у меня Omega.

Автор: Guedda 23.2.2006, 18:44
Да не в этом дело, наверное... smile
Ты подключаешь какие-либо сторонние библиотеки или dll?
В общем, если не сильно против, перешли мне исходники игры (без движка)... Я посмотрю...
Не бойся, ничего не сворую smile

Автор: igmyrj 23.2.2006, 18:58
Да там почти ничего и нет=) Я вчера вечером только сел писать=) Щас отправляю...

Автор: Guedda 23.2.2006, 19:05
В общем, проблема в том, что ты используешь одинаковые имена процедур и в файле проекта и в айле модуля. Да и не внушает мне доверия движок сторонний.

Автор: SoWa 23.2.2006, 19:10
Если ты рисуешь на Bitamp, то его сначала создать надо. Поэтому и возникает ошибка

Автор: igmyrj 23.2.2006, 19:17
SoWa, нет, вроде, я рисую не на Bitamap=)

Guedda, всмысле? У меня там две процедуры в модуле Map. Объясни, пожалуйста по подробнее.

Автор: SoWa 23.2.2006, 22:26
Давай код. На словах не ясно.

Автор: igmyrj 24.2.2006, 14:50
Хорошо. Вот код главного файла. OE_header-заголовочный файл движка.
Код

program GAME;

uses
  SysUtils,
  OE_header,
  Map in 'Map.pas';

procedure Init;
Begin

End;


procedure Process;
Begin

End;

procedure Draw;
var
Text_Texture: Cardinal;
Begin
 Texture_Load('font.bmp', text_texture, false);
 Text_Draw(text_texture,100,100,MapLoc[10,10].Tile,10,0,$000011, 0);
End;


procedure Quit;
Begin
 OE_Quit;
End;

begin

OE_SetScreenOptions(640, 480, 8, false, false, 0);

OE_SetProcessInterval(1000);


OE_Init;

end.

Вот код модуля Map
Код

unit Map;

interface
const
       tileGrass = 1;
       tileGround = 2;
       tileStairsUp = 3;
       tileStairsDown = 4;

       tileFirstStopTile = 5;
       tileTree = 6;
       tileStone = 7;

type
       TMapCell = record
        Tile: Integer;
        IsVisible: Boolean;
       end;

var
       MapLoc: array of array of TMapCell;
procedure load_map;
procedure draw_map;

implementation




procedure load_map;

var
i, j: integer;

begin

for i:=0 to 100 do
begin

 for j:=0 to 100 do
 begin
  MapLoc[j,i].Tile:=1;
 end;

end;

procedure draw_map;

begin

end;

end.


Автор: Guedda 24.2.2006, 14:52
Выложи код OE_Header.pas

Автор: igmyrj 25.2.2006, 19:46
К сожалению не могу, потому что он слишком большой. В нем описание функций движка... на программах, написанных не мной, работал нормально, так что в нем ошибок нет=)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)