Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Object Pascal: кроссплатформенные технологии > Программа использующая модуль GRAPH


Автор: karataev 29.1.2006, 12:54
Я тут обнаружил такую неудобную вещь: когда создал программу, рисующую геометрические фигуры, она в папке с Паскалем работает нормально, а как только скопировал ее в другую папку, она открывается и сразу же закрывается. Обнаружил, что ей нужны файлы с расширением .BGI из папки паскаля (как я понял, видеодрайвера?).

Можно ли сделать так, чтобы программа работала самостоятельно, чтобы не нужно было таскать в папку с ней файлы .BGI??? smile

Автор: volvo877 29.1.2006, 13:07
smile
Сконвертируй BGI в OBJ (при помощи \BIN\BINOBJ.EXE), и прилинкуй эти OBJ-файлы к EXE-шнику директивой {$L name}... Тогда все, что нужно - будет сразу включено в EXE файл, и ничего таскать не нужно будет...

Автор: karataev 29.1.2006, 13:10
Спасибо smile

Автор: karataev 29.1.2006, 15:10
Сконвертировать у меня получилось, прилинковать - нет. Не делал этого никогда. Можешь описать это поподробнее, привести в пример код?

Автор: volvo877 29.1.2006, 15:27
Сконвертировал:
Цитата
BINOBJ EGAVGA.BGI EVAVGA.OBJ EGAVGADriverProc

и подключаешь OBJ файл к программе:
Код
{$L EGAVGA.OBJ}
Procedure EGAVGADriverProc; External;
...
Var grDriver, grMode, ErrCode : Integer;
...
Begin
  If RegisterBGIDriver(@EGAVGADriverProc) < 0 Then
    Begin
      WriteLn('Error registering driver : ',
        GraphErrorMsg(GraphResult)); Halt(100)
    End;

  grDriver := VGA; grMode := VGAHi;
  InitGraph(grDriver, grMode, '');
  ErrCode := GraphResult;
  If ErrCode <> grOk Then
    Begin
      WriteLn('Graphics error : ', GraphErrorMsg(ErrCode));
      Halt(100)
    End;
...
End.
Все, теперь заботиться о наличии BGI файла не нужно, он включен в EXE...

Автор: karataev 29.1.2006, 15:36
Спасибо большое, разобрался smile

Автор: armageddon 31.1.2006, 16:59
а чего вы мучаетесь?
разве нельзя просто в initgraph полность прописать путь драйвера?
лично у меня проги работают не зависимо от их положения в папках компьютера

Автор: karataev 1.2.2006, 11:04
Цитата

лично у меня проги работают не зависимо от их положения в папках компьютера


Так все равно это подразумевает что драйвер на компе должен быть. Да еще и в определенной папке. А если у кого то его нет? smile

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