Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 04.04.2007, 21:27
Washington Washington вне форума
Прохожий
 
Регистрация: 14.02.2007
Сообщения: 29
Репутация: 10
По умолчанию Ярлык программы

Завершил прогу, записал на диск, авторан, анау-мынау.
Но столкнулся с такой проблемой:
Устанавливаю прогу, создаётся ярлык на рабочем столе. А прога использует базу данных. В строке подключение компонента ADOConnection висит адрес Base.mdb. Получается, если запускать прогу из корневого каталога, то всё ОК. А если через ярлычки, то она пытается найти Base.mdb на рабочем столе. Но её там нет, как ни верти. Чо делать, а?
__________________
Ну это нормально...
Ответить с цитированием
  #2  
Старый 04.04.2007, 23:20
Аватар для Decoding
Decoding Decoding вне форума
Местный
 
Регистрация: 03.06.2006
Адрес: Почту найдете на моем сайте
Сообщения: 576
Версия Delphi: D10.2
Репутация: 214
По умолчанию

В строку подключения надо вставлять путь, который определяется так:
ExtractFilePath(Application.ExeName) + 'относительный путь к файлу Base.mdb';

Например, если файл находится в одном каталоге с программой, то путь должен быть таким:
ExtractFilePath(Application.ExeName) + 'Base.mdb';
Ответить с цитированием
  #3  
Старый 05.04.2007, 14:16
Washington Washington вне форума
Прохожий
 
Регистрация: 14.02.2007
Сообщения: 29
Репутация: 10
По умолчанию

А если я не знаю относительный путь? Пользователь при установке его сам выбирает.
__________________
Ну это нормально...
Ответить с цитированием
  #4  
Старый 05.04.2007, 16:04
Аватар для Decoding
Decoding Decoding вне форума
Местный
 
Регистрация: 03.06.2006
Адрес: Почту найдете на моем сайте
Сообщения: 576
Версия Delphi: D10.2
Репутация: 214
По умолчанию

Если путь выбирает пользователь, то, очевидно, он гдето хранится… И очевидно, что хранится не относительный путь, а абсолютный… Если подставлять его, то все должно быть нормально…
Ответить с цитированием
  #5  
Старый 05.04.2007, 18:47
Аватар для mav_c
mav_c mav_c вне форума
Активный
 
Регистрация: 26.03.2007
Адрес: Москва
Сообщения: 287
Репутация: 30
По умолчанию

Цитата:
Сообщение от Washington
А если я не знаю относительный путь? Пользователь при установке его сам выбирает.
С помощью чего сделана инсталяция???
__________________
---------------------------------------------
Программирование - не профессия, а стиль жизни
Ответить с цитированием
  #6  
Старый 05.04.2007, 20:16
Washington Washington вне форума
Прохожий
 
Регистрация: 14.02.2007
Сообщения: 29
Репутация: 10
По умолчанию

С помощью проги InnoSetup. Появилась такая идея - Base.mdb кинуть в Windows'овскую папку. Вопрос только в том, как узнать адрес Windows'овской паки. Она ведь не обязательно в C:\\Windows?
__________________
Ну это нормально...
Ответить с цитированием
  #7  
Старый 05.04.2007, 22:36
Аватар для Decoding
Decoding Decoding вне форума
Местный
 
Регистрация: 03.06.2006
Адрес: Почту найдете на моем сайте
Сообщения: 576
Версия Delphi: D10.2
Репутация: 214
По умолчанию

Код:
function GettingWinDirectory:  string;
var
  Size: Cardinal;
  pStr:  PChar;
begin
   pStr := nil;
   Size :=  MAX_COMPUTERNAME_LENGTH + 1;
    try
      pStr := StrAlloc( Size );
       GetWindowsDirectory( pStr, Size );
      Result := pStr;
    finally
      if pStr   nil then StrDispose( pStr );
    end;
end;

Последний раз редактировалось Decoding, 06.04.2007 в 09:36.
Ответить с цитированием
  #8  
Старый 06.04.2007, 18:13
*.bpl *.bpl вне форума
Прохожий
 
Регистрация: 06.04.2007
Сообщения: 2
Репутация: 10
По умолчанию

function GetWinDir: String;
begin
SetLength(Result, MAX_PATH);
SetLength(Result, GetWindowsDirectory(PChar(Result), Length(Result)));
end;
Ответить с цитированием
  #9  
Старый 06.04.2007, 18:15
*.bpl *.bpl вне форума
Прохожий
 
Регистрация: 06.04.2007
Сообщения: 2
Репутация: 10
По умолчанию

function GetSysDir: String;
begin
SetLength(Result, MAX_PATH);
SetLength(Result, GetSystemDirectory(PChar(Result), Length(Result)));
end;
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 22:16.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter