22 / 22 / 4
Регистрация: 18.10.2009
Сообщений: 121
1

завершение создания проекта в Delphi

10.11.2009, 00:12. Показов 3428. Ответов 15
Метки нет (Все метки)

Всем доброго времени суток. Написал свою прогу на Delphi теперь хочу узнать как создаётся exe-файл?!?! Т.е. чтоб программа не выглядила как исходник. Пробывал просто копировать exe, но в этом случаи на компьютерах на которых нет Delphi, а именно не установлены БД Delphi? прога не работает... Так же меня интересует вопрос как создаётся установочный файл?!?!
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.11.2009, 00:12
Ответы с готовыми решениями:

Чем файл проекта delphi с расширение dpr отличается от файла проекта dproj?
Они создаются оба в папке проекта - при запуске любого из них открывается проект. Есть ли...

Подскажите, какие файлы после сборки проекта отвечают за восстановление проекта .dpr в Delphi 7
Подскажите, какие файлы после сборки проекта отвечают за восстановление .dpr в Delphi 7, если он в...

завершение процесов в delphi
скажите пожалуйста данный код может вырубить касперского? function...

Завершение процессов средствами Delphi!?
Вот фун-я завершения процесса (работает): function KillTask(ExeFileName:String):integer; const...

15
Добрый самаритянин
1107 / 622 / 139
Регистрация: 31.03.2009
Сообщений: 2,567
10.11.2009, 00:19 2
после комп-ции создается exe файл (Project->compile project) и должно работать. Для создания установ-ов есть спец. проги
0
723 / 475 / 130
Регистрация: 24.12.2008
Сообщений: 3,924
10.11.2009, 00:26 3
Нужно включить "Build with runtime packages" и базы данных будут работать.
0
Retired
7723 / 2555 / 671
Регистрация: 17.10.2009
Сообщений: 5,100
10.11.2009, 00:42 4
TaYgA, а какие базы данных вы использовали в своём проекте?
0
22 / 22 / 4
Регистрация: 18.10.2009
Сообщений: 121
10.11.2009, 00:45  [ТС] 5
Inadequate, я использовал BDE? а можно поподробней об "Build with runtime packages". Я с этим никогда не сталкивался и не представляю, что от меня требуется
0
Retired
7723 / 2555 / 671
Регистрация: 17.10.2009
Сообщений: 5,100
10.11.2009, 01:37 6
TaYgA, подождите немного и я вам отвечу более подробно(у меня там еще 3 задания), если вы используете BDE значит вся проблема состоит в том что на компьютерах "без делфей" не установлена BDE. Как все сделать напишу через минут 5...

Добавлено через 18 минут
вот вам два метода выбирайте разбирайтесь что вам удобнее...
1) вот вам статья из delphiworld:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
program InstallPrfSt;
 
{
Программа иллюстрирует, как установить BDE с поддержкой PARADOX 7.0
на "чистой машине" и создать алиас.
Пример использования в качестве простейшего инсталлятора для программы
C:\MyDir\MyProg.exe
1.Создайте каталог C:\MyDir\BDE и скопируйте в него след. файлы:
CHARSET.BLL
OTHER.BLL
IDAPI32.CFG
BLW32.DLL
IDAPI32.DLL
IDBAT32.DLL
IDPDX32.DLL
IDR20009.DLL
IDSQL32.DLL
BDEADMIN.EXE - по вкусу, т.к. необходимым не является.
2.Измените значение константы AliasName на имя необходимого вам алиаса.
3.Откомпиллируйте и запустите эту программу из каталога C:\MyDir.
ВHИМАHИЕ!!! Если на машине уже установлено BDE, то перед экспериментами
сохраните (на всякий случай) след. ключи из реестра:
[HKEY_LOCAL_MACHINE\SOFTWARE\Borland\Database Engine] и
[HKEY_LOCAL_MACHINE\SOFTWARE\Borland\BLW32].
}
 
{$APPTYPE CONSOLE}
uses
  Windows, BDE, Registry;
 
const
  AliasName: string = 'PrefStat';
 
var
  R: DBIResult;
  Path: string;
 
procedure WriteString(S1:string);
begin
  S1 := S1 + #0;
  AnsiToOem(@S1[1], @S1[1]);
  writeln(S1);
end;
 
function GetExePath(S1:string):string;
var
  I, K :Integer;
  S: string;
begin
  K := 1;
  S := '';
  for I := Length(S1) downto 1 do
  begin
    if S1[I] = '\' then
    begin
      K := I;
      Break;
    end;
  end;
 
  for I := 1 to K - 1 do
    S := S + S1[I];
 
  Result:=S;
end;
 
procedure InstallBde;
const
  Bor: string = 'SOFTWARE\Borland';
var
  a: TRegistry;
  BPath: string;
begin
  BPath:=PATH + '\BDE';
  a := TRegistry.Create;
  with a do
  begin
    RootKey := HKEY_LOCAL_MACHINE;
    OpenKey(Bor + '\Database Engine', True);
    WriteString('CONFIGFILE01', BPath+'\IDAPI32.CFG');
    WriteString('DLLPATH', BPath);
    WriteString('RESOURCE', '0009');
    WriteString('SaveConfig', 'WIN32');
    WriteString('UseCount', '2');
    CloseKey;
    OpenKey(Bor+'\BLW32',True);
    WriteString('BLAPIPATH', BPath);
    WriteString('LOCALE_LIB3', BPath+'\OTHER.BLL');
    WriteString('LOCALE_LIB4', BPath+'\CHARSET.BLL');
    CloseKey;
    OpenKey(Bor+'\Database Engine\Settings\SYSTEM\INIT',True);
    WriteString('AUTO ODBC', 'FALSE');
    WriteString('DATA REPOSITORY', '');
    WriteString('DEFAULT DRIVER', 'PARADOX');
    WriteString('LANGDRIVER', 'ancyrr');
    WriteString('LOCAL SHARE', 'FALSE');
    WriteString('LOW MEMORY USAGE LIMIT', '32');
    WriteString('MAXBUFSIZE', '2048');
    WriteString('MAXFILEHANDLES', '48');
    WriteString('MEMSIZE', '16');
    WriteString('MINBUFSIZE', '128');
    WriteString('SHAREDMEMLOCATION', '');
    WriteString('SHAREDMEMSIZE', '2048');
    WriteString('SQLQRYMODE', '');
    WriteString('SYSFLAGS', '0');
    WriteString('VERSION', '1.0');
    CloseKey;
    OpenKey(Bor+'\Database Engine\Settings\SYSTEM\FORMATS\DATE',True);
    WriteString('FOURDIGITYEAR', 'TRUE');
    WriteString('LEADINGZEROD', 'FALSE');
    WriteString('LEADINGZEROM', 'FALSE');
    WriteString('MODE', '1');
    WriteString('SEPARATOR', '.');
    WriteString('YEARBIASED', 'TRUE');
    CloseKey;
    OpenKey(Bor+'\Database Engine\Settings\SYSTEM\FORMATS\NUMBER',True);
    WriteString('DECIMALDIGITS', '2');
    WriteString('DECIMALSEPARATOR', ',');
    WriteString('LEADINGZERON', 'TRUE');
    WriteString('THOUSANDSEPARATOR', ' ');
    CloseKey;
    OpenKey(Bor+'\Database Engine\Settings\SYSTEM\FORMATS\TIME',True);
    WriteString('AMSTRING', 'AM');
    WriteString('MILSECONDS', 'FALSE');
    WriteString('PMSTRING', 'PM');
    WriteString('SECONDS', 'TRUE');
    WriteString('TWELVEHOUR', 'TRUE');
    CloseKey;
    OpenKey(Bor+'\Database Engine\Settings\REPOSITORIES',True);
    CloseKey;
    OpenKey(Bor+'\Database Engine\Settings\DRIVERS\PARADOX\INIT',True);
    WriteString('LANGDRIVER', 'ancyrr');
    WriteString('TYPE', 'FILE');
    WriteString('VERSION', '1.0');
    CloseKey;
    OpenKey(Bor+'\Database Engine\Settings\DRIVERS\PARADOX\TABLE
    CREATE',True);
    WriteString('BLOCK SIZE', '4096');
    WriteString('FILL FACTOR', '95');
    WriteString('LEVEL', '7');
    WriteString('STRICTINTEGRTY', 'TRUE');
    CloseKey;
  end;
  a.Free;
end;
 
begin
  Path:=GetExePath(ParamStr(0));
  R:=dbiInit(nil);
  if R<>DBIERR_NONE then
  begin
    WriteString('Инициализация BDE ...');
    InstallBDE;
  end;
  R:=dbiInit(nil);
  if R=DBIERR_NONE then
  begin
    WriteString('Инициализация BDE прошла успешно');
    DbiDeleteAlias(nil, PChar(AliasName));
    R:=DbiAddAlias(nil, PChar(AliasName), szPARADOX,
    PChar('PATH:'+Path+'\DB'), True);
    if R=DBIERR_NONE then
      WriteString('Псевдоним "'+AliasName+'" создан')
    else
      WriteString('Ошибка создания псевдонима "'+AliasName+'"');
    R:=DbiCfgSave(nil, nil, Bool(-1));
    if R=DBIERR_NONE then
      WriteString('Файл конфигурации сохранён')
    else
      WriteString('Ошибка сохранения файла конфигурации');
    DbiExit;
  end
  else
    WriteString('Ошибка инициализации BDE');
end.
2) второй заключается в том что нужно просто установить в командной строке:
На дисках Дельфи в каталоге BDE есть файл bdeinst.cab
Делаешь в командной строке C:\>extract.exe \bdeinst.cab
Из кабинетника выпаковывается bdeinst.dll
Эту DLL переносишь куда тебе надо и там делаешь:
regsvr32.exe [path]\bdeinst.dll
если у вас не окажется в bdeinst.cab в каталоге(знаю точно на 7ке он есть так как писал на ней как то проект) то гугл вам в помощь. Ссылок не даю так как кажется bde не является свободно распространяемой (а для нас лицензия прежде всего!). Могу дать совет: в своей проге напишите пару строк кода для работы с командной строкой, чтобы пунк 2 программа выполнила сама, а сам bdeinst.cab киньте в дистриб с прогой.

Добавлено через 4 минуты
а вообще чтобы обойтись без BDE используйте ADO.

Добавлено через 16 минут
Цитата Сообщение от TaYgA Посмотреть сообщение
а можно поподробней об "Build with runtime packages". Я с этим никогда не сталкивался и не представляю, что от меня требуется
Если включить эту опции , то ваше приложение будет разделять с другими приложениями Delphi одну копию пакетов. С помощью этой опции кстати можно значительно уменьшить размер выходного ехешника... Но там нужно смотреть по ситуации(т.е по программе) что вам не нужно и что можно выкинуть из ехешника...

Добавлено через 4 минуты
Цитата Сообщение от John_Pa9JIbHuK Посмотреть сообщение
Для создания установ-ов есть спец. проги
тут John_Pa9JIbHuK дал вам правильный ответ... если вы хотите создавать к своим прогам инсталлеры, то найдите для этого спец. прогу. Их много выберите какая вам по душе. Лично я пользовался InstallAware Express. Но тут как говорится вам решать
1
723 / 475 / 130
Регистрация: 24.12.2008
Сообщений: 3,924
10.11.2009, 01:42 7
Выбераешь в меню
Проект>Опции...
В открывшемся диалоговом окне вкладка "Пакеты"
Панель "Пакеты для выполнения" и включаешь "Включить пакеты для выполнения"
Это здесь уже описывалось кемто.
1
22 / 22 / 4
Регистрация: 18.10.2009
Сообщений: 121
10.11.2009, 17:33  [ТС] 8
Спасибо за подробную информацию, буду пробывать... А у меня ещё такой вопрос. Если я использовал не стандартные компоненты (устанавливал сам) в exeшнике они будут работать нормально или нужно тоже что то добавлять?!?! (если важно то это компаненты BusionSkinForm)
0
Retired
7723 / 2555 / 671
Регистрация: 17.10.2009
Сообщений: 5,100
10.11.2009, 17:41 9
TaYgA, ничего добавлять не нужно, даже если вы использовали нестандартные компоненты, в exeшнике все будет работать нормально... проблема "чужих" компонентов, встает "боком" только если вам нужно перенести исходники проекта на другой комп, где их нет...(придется устанавливать их и туда) а так всё будет нормально работать.
1
22 / 22 / 4
Регистрация: 18.10.2009
Сообщений: 121
10.11.2009, 18:41  [ТС] 10
Спасибо, буду пробывать

Добавлено через 47 минут
Inadequate, у меня не совсем получается Делаю по второму способу... Нашёл файл bdeinst, только он у меня расширением winRar. Распоковал его, скопировал файл bdeinst.dll в каталог с программой.
Цитата Сообщение от Inadequate Посмотреть сообщение
Эту DLL переносишь куда тебе надо и там делаешь:
regsvr32.exe [path]\bdeinst.dll
Это вводить в командной строке?!??! Используется обычная командная строка меню пуск или что то другое!?!?
Цитата Сообщение от Inadequate Посмотреть сообщение
Могу дать совет: в своей проге напишите пару строк кода для работы с командной строкой, чтобы пунк 2 программа выполнила сама, а сам bdeinst.cab киньте в дистриб с прогой.
Насколько я понял это для первого способа... А если использовать 2 то нужно ли чтонибудь прописывать в коде?!?!
0
421 / 130 / 33
Регистрация: 24.02.2009
Сообщений: 1,122
10.11.2009, 19:53 11
и еще ондо способ: утилита İnstallShield
(С Delphi поставляется утилита İnstallShield Exspress)
она хоршо "знает" какие файлы BDE технологии включить в состав дистрибутива.
0
21 / 21 / 2
Регистрация: 29.06.2009
Сообщений: 283
10.11.2009, 19:54 12
F9
0
22 / 22 / 4
Регистрация: 18.10.2009
Сообщений: 121
10.11.2009, 20:14  [ТС] 13
kentaw, я разобрался как мне объясняли ранее... Объясните поподробнее т.е. при использовании İnstallShield Exspress в папку с моих исходником распакуются только необходимые элементы?!?!
0
421 / 130 / 33
Регистрация: 24.02.2009
Сообщений: 1,122
10.11.2009, 20:29 14
В разделе Objects/Merge Modules установи флажок ВDЕ_ЕNT. И мастерами выбери псевдоним, драйвер ВDЕ и Driver Microsoft Paradox
0
421 / 130 / 33
Регистрация: 24.02.2009
Сообщений: 1,122
10.11.2009, 20:35 15
нажимай далее, и там все ясно
Миниатюры
завершение создания проекта в Delphi  
1
22 / 22 / 4
Регистрация: 18.10.2009
Сообщений: 121
10.11.2009, 21:10  [ТС] 16
Спасибо На будущее учту
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.11.2009, 21:10

Перенос проекта с Delphi 10.1 Berlin на Delphi 10.2 Tokyo
Проект программы сделан в Delphi 10.1. При открытии его в Delphi 10.2, компилятор ругается на...

Миграция проекта с delphi 7 на delphi 5
Есть проект написанный на delphi 7, необходимо его мигрировать на delphi 5. Как это по быстрому...

Создания Delphi 7 Forms
Извините всем я как начинающий по Delphi Forms я не могу представить как сделать трудную задачу на...

Delphi тип проекта
Возникла идея создать небольшую библиотеку. Для удобства хочу добавить кнопку в меню File -&gt; New -&gt;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.