root/trunk/EIedit.dpr

Revision 8, 24.2 kB (checked in by sagrer, 1 year ago)
  1. Изменен механизм нумерации версий формата конфига.
  2. Информация о номере версии теперь вкомпилливается в бинарник и берется оттуда - вендовая информация о номере версии, которая линковалась к бинарнику - убрана.
  • Property svnmailer:content-charset set to cp1251
Line 
1 ///////////////////////////////////////////////////////////
2 //                        EiEdit                         //
3 //      Ðåäàêòîð ÷àñòè ðåñóðñîâ Ïðîêëÿòûõ Çåìåëü         //
4 //             Copyright (C) 2002 Gipat Group            //
5 //              Ðàñïðîñòðàíÿåòñÿ íà óñëîâèÿõ             //
6 //    Gipat Group's opened EI-editor-utility license     //
7 //                      âåðñèè 1.0                       //
8 //                                                       //
9 //                  www.gipatgroup.org                   //
10 ///////////////////////////////////////////////////////////
11
12 //Ê ðàáîòå íàä äàííûì ôàéëîì ïðèëîæèëè ðóêè, íîãè.... êîðî÷å àôôòàðû:
13 // 1) Sagrer (sagrer@yandex.ru)
14
15 ////////////////////////////////////////////////////////////////////////
16
17 program EIedit;
18
19 {%ToDo 'EIedit.todo'}
20
21 uses
22   Windows,
23   Messages,
24   SysUtils,
25   Classes,
26   Graphics,
27   Controls,
28   Forms,
29   Dialogs,
30   StdCtrls,
31   Registry,
32   PZed in 'PZed.pas' {MainForm},
33   OptiF in 'OptiF.pas' {OptiForm},
34   Initer in 'Initer.pas',
35   AboutF in 'AboutF.pas' {AboutForm},
36   ResursF in 'ResursF.pas' {ResursForm},
37   DelF in 'DelF.pas' {DelForm},
38   ViborTipaTegaF in 'ViborTipaTegaF.pas' {ViborTipaTegaForm},
39   QskFnForm in 'QskFnForm.pas' {AskFnForm},
40   TextsOptForm in 'TextsOptForm.pas' {TextsOptF},
41   BrowseDirForm in 'BrowseDirForm.pas' {BrowseDirF},
42   BaseOptForm in 'BaseOptForm.pas' {BaseOptF},
43   IshForm in 'IshForm.pas' {IshF},
44   MySys in 'MySys.pas',
45   ShowProcessForm in 'ShowProcessForm.pas' {ShowProcessF},
46   ShabRedDbForm in 'ShabRedDbForm.pas' {ShabRedDbF},
47   PrintsDbR1Form in 'PrintsDbR1Form.pas' {PrintsDbR1F},
48   PrintsDbR2Form in 'PrintsDbR2Form.pas' {PrintsDbR2F},
49   PrintsDbR3Form in 'PrintsDbR3Form.pas' {PrintsDbR3F},
50   LmpLeversForm in 'LmpLeversForm.pas' {LmpLeversF},
51   LeversForm in 'LeversForm.pas' {LeversF},
52   ShablonimForm in 'ShablonimForm.pas' {ShablonimF},
53   CheckShablForm in 'CheckShablForm.pas' {CheckShablF},
54   UncAskForm in 'UncAskForm.pas' {UncAskF},
55   SinglPrintsDbR1Form in 'SinglPrintsDbR1Form.pas' {SinglPrintsDbR1F},
56   SinglPrintsDbR2Form in 'SinglPrintsDbR2Form.pas' {SinglPrintsDbR2F},
57   SinglPrintsDbR3Form in 'SinglPrintsDbR3Form.pas' {SinglPrintsDbR3F},
58   SinglItemsIdbR1Form in 'SinglItemsIdbR1Form.pas' {SinglItemsIdbR1F},
59   ItemsIdbR1Form in 'ItemsIdbR1Form.pas' {ItemsIdbR1F},
60   SinglItemsIdbR2Form in 'SinglItemsIdbR2Form.pas' {SinglItemsIdbR2F},
61   ItemsIdbR2Form in 'ItemsIdbR2Form.pas' {ItemsIdbR2F},
62   SinglItemsIdbR3Form in 'SinglItemsIdbR3Form.pas' {SinglItemsIdbR3F},
63   ItemsIdbR3Form in 'ItemsIdbR3Form.pas' {ItemsIdbR3F},
64   SinglItemsIdbR4Form in 'SinglItemsIdbR4Form.pas' {SinglItemsIdbR4F},
65   ItemsIdbR4Form in 'ItemsIdbR4Form.pas' {ItemsIdbR4F},
66   SinglItemsIdbR5Form in 'SinglItemsIdbR5Form.pas' {SinglItemsIdbR5F},
67   ItemsIdbR5Form in 'ItemsIdbR5Form.pas' {ItemsIdbR5F},
68   SinglItemsIdbR6Form in 'SinglItemsIdbR6Form.pas' {SinglItemsIdbR6F},
69   ItemsIdbR6Form in 'ItemsIdbR6Form.pas' {ItemsIdbR6F},
70   SinglPerksPdbR1Form in 'SinglPerksPdbR1Form.pas' {SinglPerksPdbR1F},
71   PerksPdbR1Form in 'PerksPdbR1Form.pas' {PerksPdbR1F},
72   SinglPerksPdbR2Form in 'SinglPerksPdbR2Form.pas' {SinglPerksPdbR2F},
73   PerksPdbR2Form in 'PerksPdbR2Form.pas' {PerksPdbR2F},
74   SinglQuestsQdbR1Form in 'SinglQuestsQdbR1Form.pas' {SinglQuestsQdbR1F},
75   SinglQuestsQdbR2Form in 'SinglQuestsQdbR2Form.pas' {SinglQuestsQdbR2F},
76   UnitsUdbR1Form in 'UnitsUdbR1Form.pas' {UnitsUdbR1F},
77   SinglUnitsUdbR1Form in 'SinglUnitsUdbR1Form.pas' {SinglUnitsUdbR1F},
78   SinglUnitsUdbR2Form in 'SinglUnitsUdbR2Form.pas' {SinglUnitsUdbR2F},
79   ValueSelectorForm in 'ValueSelectorForm.pas' {ValueSelectorF},
80   UnitsUdbR2Form in 'UnitsUdbR2Form.pas' {UnitsUdbR2F},
81   SinglUnitsUdbR3Form in 'SinglUnitsUdbR3Form.pas' {SinglUnitsUdbR3F},
82   UnitsUdbR3Form in 'UnitsUdbR3Form.pas' {UnitsUdbR3F},
83   SinglUnitsUdbR4Form in 'SinglUnitsUdbR4Form.pas' {SinglUnitsUdbR4F},
84   UnitsUdbR4Form in 'UnitsUdbR4Form.pas' {UnitsUdbR4F},
85   SinglSpellsSdbR1Form in 'SinglSpellsSdbR1Form.pas' {SinglSpellsSdbR1F},
86   SpellsSdbR1Form in 'SpellsSdbR1Form.pas' {SpellsSdbR1F},
87   SinglSpellsSdbR2Form in 'SinglSpellsSdbR2Form.pas' {SinglSpellsSdbR2F},
88   SpellsSdbR2Form in 'SpellsSdbR2Form.pas' {SpellsSdbR2F},
89   SinglSpellsSdbR3Form in 'SinglSpellsSdbR3Form.pas' {SinglSpellsSdbR3F},
90   SpellsSdbR3Form in 'SpellsSdbR3Form.pas' {SpellsSdbR3F},
91   SinglSpellsSdbR4Form in 'SinglSpellsSdbR4Form.pas' {SinglSpellsSdbR4F},
92   SpellsSdbR4Form in 'SpellsSdbR4Form.pas' {SpellsSdbR4F},
93   SinglSpellsSdbR5Form in 'SinglSpellsSdbR5Form.pas' {SinglSpellsSdbR5F},
94   SpellsSdbR5Form in 'SpellsSdbR5Form.pas' {SpellsSdbR5F},
95   ASoundEditorForm in 'ASoundEditorForm.pas' {ASoundEditorF},
96   KOLTextFileInString in 'KOLTextFileInString.pas',
97   SinglAcksDbR1Form in 'SinglAcksDbR1Form.pas' {SinglAcksDbR1F},
98   SinglAcksDbR2Form in 'SinglAcksDbR2Form.pas' {SinglAcksDbR2F},
99   SinglAcksDbR3Form in 'SinglAcksDbR3Form.pas' {SinglAcksDbR3F},
100   ResbuildForm in 'ResbuildForm.pas' {ResbuildF},
101   KOLAnIniFile in 'KOLAnIniFile.pas',
102   ResPathsForm in 'ResPathsForm.pas' {ResPathsF},
103   KOLForPaths,
104   RbPackOptForm in 'RbPackOptForm.pas' {RbPackOptF},
105   RBUnPackOptForm in 'RBUnPackOptForm.pas' {RBUnPackOptF},
106   KOLVersionInfo,
107   TextEdForm in 'TextEdForm.pas' {TextEdF},
108   NewFilterAskForm in 'NewFilterAskForm.pas' {NewFilterAskF},
109   KOLClearDir in 'KOLClearDir.pas',
110   KOLFileInString in 'KOLFileInString.pas',
111   VerInfoTxtFormat,
112   EiEdit_ver;
113
114 {$R *.RES}
115 {$R MainF_MHXP1.RES}
116
117
118
119
120 Function GetDraNum(stroka : string) : byte;
121 begin
122   result := 0;
123   if stroka[1] = 'A' then result := 1;
124   if stroka[1] = 'B' then result := 2;
125   if stroka[1] = 'C' then result := 3;
126   if stroka[1] = 'D' then result := 4;
127   if stroka[1] = 'E' then result := 5;
128   if stroka[1] = 'F' then result := 6;
129   if stroka[1] = 'G' then result := 7;
130   if stroka[1] = 'H' then result := 8;
131   if stroka[1] = 'I' then result := 9;
132   if stroka[1] = 'J' then result := 10;
133   if stroka[1] = 'K' then result := 11;
134   if stroka[1] = 'L' then result := 12;
135   if stroka[1] = 'M' then result := 13;
136   if stroka[1] = 'N' then result := 14;
137   if stroka[1] = 'O' then result := 15;
138   if stroka[1] = 'P' then result := 16;
139 end;
140
141 Function ExtrPath : string;
142 var
143   s1,s2,s3 :string;
144   I,simvolov : integer;
145 begin
146   S1 := Application.ExeName;
147   I := 0;
148   repeat
149     I := I+1;
150     S2 := S1[I];
151   until s2 = #0;
152   Simvolov := I-11;
153   I := 0;
154   repeat
155     I := I+1;
156     s3 := s3+s1[I];
157   until I = simvolov;
158   Result := S3;
159 end;
160
161 Procedure OptiCopyFile(FileSource, FileTarget: string);
162 const BlockSize = 65536;
163 var
164   ElapsedSize,CopySize: LongInt;
165   SourceStream,TargetStream: TFileStream;
166   Source,Target:String;
167   Procnow,Proc2Now, Proc3Now : integer;
168
169 begin
170
171
172   Source:=FileSource;
173   Target:=FileTarget;
174   SourceStream:=TFileStream.Create(Source,fmOpenRead);
175   TargetStream:=TFileStream.Create(Target,fmCreate);
176   ElapsedSize:=SourceStream.Size - SourceStream.Position;
177   OptiForm.ProgressBar1.Max :=SourceStream.Size;
178   Proc2Now := 0;
179   Proc3Now := 0;
180   while ElapsedSize > 0 do begin
181  
182     if ElapsedSize < BlockSize then CopySize:=ElapsedSize else
183     CopySize:=BlockSize;
184     TargetStream.CopyFrom(SourceStream,CopySize);
185     ElapsedSize:=SourceStream.Size - SourceStream.Position;
186     ProcNow :=(SourceStream.Position*100 div SourceStream.Size*100)div 100;
187     If (Proc2Now <> procnow) and (Proc3Now <> 100)then proc3now := Proc3Now+1;
188     Proc2Now := ProcNow;
189     OptiForm.Label4.caption := inttostr(Proc3Now)+'%';
190     OptiForm.ProgressBar1.Position:=SourceStream.Position;
191     OptiForm.Update;
192     end;
193   FileSetDate(TargetStream.Handle,FileGetDate(SourceStream.Handle));
194   If Proc3Now <> 100 then OptiForm.Label4.caption := inttostr(100)+'%';
195   TargetStream.Free;
196   SourceStream.Free;
197 end;
198
199 Procedure GenNewConfInf;
200 begin
201   //Ýòà ôóíêà äîëæíà ñîáðàòü è ñãåíåðèòü âñþ íåîáõîäèìóþ
202   //èíôó äëÿ ñîçäàíèÿ êîíôèãà.
203
204   //Ïðîâåðèòü, åñòü ëè íà êîìïå ÏÇ.
205   Registr.RootKey := HKEY_CURRENT_USER;  //Òàì ëåæèò ðååñòð ÏÇ.
206   //Ïîïûòàòüñÿ îòêðûòü êëþ÷, è åñëè îí áóäåò îáíàðóæåí - çàáðàòü íóæíóþ èíôó
207   If registr.KeyExists('\Software\Nival Interactive\EvilIslands\') = true then begin
208     registr.OpenKey('\Software\Nival Interactive\EvilIslands\Path Settings',false);
209     PzPath := registr.ReadString('WORK PATH');
210     PzResPath := registr.ReadString('RESOURCES PATH');
211     PzCdPath := registr.ReadString('CD-ROM PATH');
212     registr.closekey;
213     MessageDlg('ÏÇ íàéäåíû ïî ïóòè...'+PZPath,mtInformation,[mbOK],0);
214   end
215   else begin
216     MessageDlg('Ñëåäîâ ÏÇ â ðååñòðå íèôèãà íå îáíàðóæèëîñü :(',mtWarning,[mbOK],0);
217     //È òåïåðü ñäåëàòü ïóòè è ïàïêè äëÿ ÏûÇîâ è ðåñóðñîâ â ïàïêå ïðîãè.
218     PzPath := Path+'TempPz\';
219     PzResPath := PzPath+'res\';
220     PzCdPath := PzPath;
221
222     //Ñîáñíî ñîçäàíèå ïàïîê
223     If DirectoryExists(PzPath) = false then begin
224       ForceDirectories(PzPath);
225     end;
226
227     If DirectoryExists(PzResPath) = false then begin
228       ForceDirectories(PzResPath);
229     end;
230   end;
231
232   //Äåôîëòíàÿ ïàïêà
233   DefalDir := Path;
234
235   //Ðàçìåðû îêíà
236   MfHeight := Screen.Height-150;
237   MfWidth := Screen.Width-150;
238   MfTop :=  Screen.Height div 50;
239   MfLeft := Screen.Width div 50;
240   MfWstate := WstateToInt(WsNormal);
241
242   //Ïóòè ê èñõîäíèêàì áàç - ñèíãëîâîé è ìóëüòîâîé.
243   DatabaseResIsh := Path+'bases\database\';
244   DatabaselmpResIsh := Path+'bases\databaselmp\';
245
246   //Åñëè íåòó ïàïîê äëÿ èñõîäíèêà - ñîçäàòü
247   If DirectoryExists(PathMinusDir(DatabaseResIsh)) = false then begin
248     ForceDirectories(PathMinusDir(DatabaseResIsh));
249   end;
250
251   //Ïóòè ê ôàéëàì ðåñóðñîâ èãðû...
252   AiinfoResPath := PzResPath+'aiinfo.res';
253   DatabaseResPath := PzResPath+'database.res';
254   DatabaselmpResPath := PzResPath+'databaselmp.res';
255   FiguresResPath := PzResPath+'figures.res';
256   GfxResPath := PzResPath+'gfx.res';
257   MaterialsResPath := PzResPath+'materials.res';
258   MenusResPath := PzResPath+'menus.res';
259   OutroResPath := PzResPath+'outro.res';
260   RedressResPath := PzResPath+'redress.res';
261   SfxResPath:= PzResPath+'sfx.res';
262   SpeechResPath := PzResPath+'speech.res';
263   TextsResPath := PzResPath+'texts.res';
264   TextslmpResPath := PzResPath+'textslmp.res';
265   TexturesResPath := PzResPath+'textures.res';
266
267   //Íà÷àëüíûé ïóòü äëÿ ðåäàêòîðà òåêñòîâèêîâ...
268   TextsEdStart := GetExtensDirName(TextsResPath);
269
270   //Ïî óìîë÷àíèþ - îïòèìàéçèòü ñòàíäàðòíûå ðåñû â res-äèàëîãå
271   OptStandRes := true;
272
273   //Íàñòðîéêè îêíà ðåäàêòîðà òåêñòîâ...
274   TxtEdDlgFiltList := TxtEdDlgDefFiltList;
275   TxtEdDlgActFilt := 1;
276   TxtEdDlg1Click := false;
277   TxtEdDlgUseCritSiz := true;
278   TxtEdDlgCritSiz := 100000;
279   TxtEdDlgWordWrap := true;
280 end;
281
282 procedure Init;
283 var
284   ini_ver : string;
285
286 begin
287   //Ïîäãîòîâèòü ÷òî íàäî... òèïà âñÿêèå òàì ïåðåìåííûå
288   //è ïðî÷åå...
289   Application.ShowHint := true; //Õèíòû âêëþ÷èòü
290   Registr := TRegistry.Create;  //Ñîçäàíèå ïåðåìåííîé êëàññà ðåãèñòðà
291   AnIniFil := TAnIniFile.Init;  //Ñîçäàíèå ïåðåìåííîé êëàññà äëÿ èíèøíèêà.
292   //Ïîëó÷èòü ïàòõó ê ïðîãå
293   Path := ExtrPath;
294   //Ïîëó÷èòü ïàòõó ê èíèøíèêó
295   IniFilPath := Path+'EiEdit.ini';
296   //Çàëîàäèòü èíôó î âåðñèè...
297   VitInfo := TVerInfoTxtFormat.Create;
298   VitInfo.Ver1 := EiEdit_Ver1;
299   VitInfo.Ver2 := EiEdit_Ver2;
300   VitInfo.Ver3 := EiEdit_Ver3;
301   VitInfo.Ver4 := EiEdit_Ver4;
302   VitInfo.Status := EiEdit_Status;
303   VitInfo.RCNum := EiEdit_RCNum;
304
305   //Äëÿ íà÷àëà - ïðîâåðèòü, ñóùåñòâóåò ëè êîíôèã-ôàéë.
306   If FileExists(IniFilPath) = true then begin
307     //Òèïà ôàéë íà ìåñòå...
308     //Íóæíî ïðîâåðèòü åãî âåðñèþ, åñëè íàäî
309     //òî âíåñòè èñïðàâëåíèÿ.
310     AnIniFil.Load(IniFilPath);
311     ini_ver := AnIniFil.ReadString('MainSettings','Ver');
312     If ini_ver <> IntToStr(IniConfFormatVer) then begin
313       //Ñîáñíî ïðàâêà èíèøíèêà â çàâèñèìîñòè îò íîìåðà âåðñèè.
314       //Íó è + ìîæíî êàêèå äðóãèå äåéñòâèÿ âûïîëíèòü âìåñòå ñ àïãðåéäîì èíèøíèêà
315       If ini_ver = '1.7.0' then begin
316         //Îáíîâëåíèå ôîðìàòà äî âåðñèè  1.8.0
317
318         //Ïîäãîòîâêà ïåðåñåííûõ
319         TxtEdDlgFiltList := TxtEdDlgDefFiltList;
320         TxtEdDlgActFilt := 1;
321         TxtEdDlg1Click := false;
322         TxtEdDlgUseCritSiz := true;
323         TxtEdDlgCritSiz := 100000;
324         TxtEdDlgWordWrap := true;
325
326         //Çàïèñü èíèøíèêà
327         AnIniFil.WriteString('MainSettings','Ver','1.8.0');
328         AnIniFil.WriteString('MainSettings','TxtEdDlgFiltList',TxtEdDlgFiltList);
329         AnIniFil.WriteInteger('MainSettings','TxtEdDlgActFilt',TxtEdDlgActFilt);
330         AnIniFil.WriteBool('MainSettings','TxtEdDlg1Click',TxtEdDlg1Click);
331         AnIniFil.WriteBool('MainSettings','TxtEdDlgUseCritSiz',TxtEdDlgUseCritSiz);
332         AnIniFil.WriteInteger('MainSettings','TxtEdDlgCritSiz',TxtEdDlgCritSiz);
333         AnIniFil.WriteBool('MainSettings','TxtEdDlgWordWrap',TxtEdDlgWordWrap);
334         AnIniFil.Save(IniFilPath);
335         ini_ver := '1.8.0';
336         //äðóãèå îïåðàöèè...
337       end;
338      
339       If ini_ver = '1.8.0' then begin
340         //Ýòîò ïîñëåäíèé IF - âûïîëíÿåòñÿ ïðè äîâîäêå äî ïîñëåäíåé âåðñèè.
341         //Ùà âåðñèÿ ôîðìàòà êîíôèãà - 1
342
343         //Çàïèñü èíèøíèêà
344         AnIniFil.WriteInteger('MainSettings','Ver',IniConfFormatVer);
345         AnIniFil.Save(IniFilPath);
346         ini_ver := IntToStr(IniConfFormatVer);
347
348         //äðóãèå îïåðàöèè...
349
350         //Ñîîáùèòü þçâåðþ
351         MessageBox(Application.Handle,PChar('EiEdit.ini îáíîâëåí äî âåðñèè '+ini_ver),'Èíôîðìàöèÿ',MB_OK or MB_ICONINFORMATION);
352       end;
353      
354     end;
355   end
356   else begin
357     //Ôàéëà íåòó. Íàäî ñîçäàòü íîâûé.
358
359     //Ñãåíåðèòü óìîë÷àëüíóþ èíôó
360     //äëÿ èíèøíèêà...
361     GenNewConfInf;
362
363     //Íà âñÿêèé ñëó÷àé ïðîâåðèòü, åñòü ëè â ðååñòðå êëþ÷ ïðîãè (áîëåå ñòàðîé âåðñèè çíà÷èò)
364     InitProgKey;
365     if registr.KeyExists('\Software\EiEditor')= true then begin
366       //Äà, åñòü áîëåå ñòàðàÿ âåðñèÿ. Â ïðèíöèïå, ìîæíî âçÿòü îòòóäà
367       //êàêóþ åñòü èíôó.
368       //Åñëè þçâåðü ðàçðåøèò :).
369       If MessageBox(Application.Handle,'Îáíàðóæåíà ñòàðàÿ çàïèñü â ðååñòðå. Èñïîëüçîâàòü åå äëÿ ñîçäàíèÿ *.ini-ôàéëà êîíôèãóðàöèè?',Zagolov,MB_ICONQUESTION or MB_YESNO) = ID_YES then begin
370         registr.OpenKey('\Software\EiEditor',false);
371         PZPath := registr.ReadString('PZPath');
372         PZResPath := registr.ReadString('PZRezPath');
373         DefalDir := registr.ReadString('DefalDir');
374         MfHeight := registr.ReadInteger('MfHeight');
375         MfWidth := registr.ReadInteger('MfWidth');
376         MfTop := registr.ReadInteger('MfTop');
377         MfLeft := registr.ReadInteger('MfLeft');
378         MfWstate := registr.ReadInteger('MfWstate');
379         DatabaseResIsh := registr.ReadString('PathBasesIsh')+'database\';
380         DatabaselmpResIsh := registr.ReadString('PathBasesIsh')+'databaselmp\';
381         registr.CloseKey;
382         //Ñãåíåðèòü ïóòè ê ðåñóðñàì...
383         AiinfoResPath := PzResPath+'aiinfo.res';
384         DatabaseResPath := PzResPath+'database.res';
385         DatabaselmpResPath := PzResPath+'databaselmp.res';
386         FiguresResPath := PzResPath+'figures.res';
387         GfxResPath := PzResPath+'gfx.res';
388         MaterialsResPath := PzResPath+'materials.res';
389         MenusResPath := PzResPath+'menus.res';
390         OutroResPath := PzResPath+'outro.res';
391         RedressResPath := PzResPath+'redress.res';
392         SfxResPath:= PzResPath+'sfx.res';
393         SpeechResPath := PzResPath+'speech.res';
394         TextsResPath := PzResPath+'texts.res';
395         TextslmpResPath := PzResPath+'textslmp.res';
396         TexturesResPath := PzResPath+'textures.res';
397         //Íà÷àëüíûé ïóòü äëÿ ðåäàêòîðà òåêñòîâèêîâ...
398         TextsEdStart := GetExtensDirName(TextsResPath);
399       end;
400
401       If MessageBox(Application.Handle,'Î÷èñòèòü ðååñòð îò çàïèñåé ñòàðûõ âåðñèé ïðîãðàììû?',Zagolov,MB_ICONQUESTION or MB_YESNO) = ID_YES then begin
402         //Óäàëèòü êëþ÷ ðååñòðà ïðîãè...
403         registr.DeleteKey('\Software\EiEditor');
404       end;
405     end;
406
407     //Òàê, òèïà èíôà äëÿ íîâîãî ôàéëà ãîòîâà. Ìîæíî òèïà íà÷àòü åãî ïèñàòü...
408     AnIniFil.MakNewFile;
409     AnIniFil.WriteInteger('MainSettings','Ver',IniConfFormatVer);    //Âåðñèÿ ôîðìàòà êîíôåãà
410     AnIniFil.WriteString('MainSettings','PzPath',PzPath);  //Íàñòðîå÷íûé ïóòü ê ÏÇ
411     AnIniFil.WriteString('MainSettings','PzResPath',PzResPath);  //Íàñòðîå÷íûé ïóòü ê ðåçàì ÏÇ
412     AnIniFil.WriteString('MainSettings','PzCdPath',PzCdPath);  //Íàñòðîå÷íûé ïóòü ê ñèäþêó ÏÇ
413     AnIniFil.WriteString('MainSettings','DefalDir',DefalDir);  //Óìîë÷àëüíàÿ ïàïêà
414     AnIniFil.WriteInteger('MainSettings','MfHeight',MfHeight);  //Ïàðàìåòðû îêíà
415     AnIniFil.WriteInteger('MainSettings','MfWidth',MfWidth);    // --''--
416     AnIniFil.WriteInteger('MainSettings','MfTop',MfTop);      // --''--
417     AnIniFil.WriteInteger('MainSettings','MfLeft',MfLeft);   // --''--
418     AnIniFil.WriteInteger('MainSettings','MfWstate',MfWstate);   // --''--
419     AnIniFil.WriteString('MainSettings','AiinfoResPath',AiinfoResPath);  //Ïóòü ê aiinfo.res
420     AnIniFil.WriteString('MainSettings','DatabaseResPath',DatabaseResPath);  //Ïóòü ê database.res
421     AnIniFil.WriteString('MainSettings','DatabaselmpResPath',DatabaselmpResPath);  //Ïóòü ê databaselmp.res
422     AnIniFil.WriteString('MainSettings','FiguresResPath',FiguresResPath);  //Ïóòü ê figures.res
423     AnIniFil.WriteString('MainSettings','GfxResPath',GfxResPath);  //Ïóòü ê gfx.res
424     AnIniFil.WriteString('MainSettings','MaterialsResPath',MaterialsResPath);  //Ïóòü ê materials.res
425     AnIniFil.WriteString('MainSettings','MenusResPath',MenusResPath);  //Ïóòü ê menus.res
426     AnIniFil.WriteString('MainSettings','OutroResPath',OutroResPath);  //Ïóòü ê outro.res
427     AnIniFil.WriteString('MainSettings','RedressResPath',RedressResPath);  //Ïóòü ê redress.res
428     AnIniFil.WriteString('MainSettings','SfxResPath',SfxResPath);  //Ïóòü ê sfx.res
429     AnIniFil.WriteString('MainSettings','SpeechResPath',SpeechResPath);  //Ïóòü ê speech.res
430     AnIniFil.WriteString('MainSettings','TextsResPath',TextsResPath);  //Ïóòü ê texts.res
431     AnIniFil.WriteString('MainSettings','TextslmpResPath',TextslmpResPath);  //Ïóòü ê textslmp.res
432     AnIniFil.WriteString('MainSettings','TexturesResPath',TexturesResPath);  //Ïóòü ê textures.res
433     AnIniFil.WriteString('MainSettings','DatabaseResIsh',DatabaseResIsh);  //Ïóòü ê èñõîäíèêó áàçû ñèíãëà
434     AnIniFil.WriteString('MainSettings','DatabaselmpResIsh',DatabaselmpResIsh);  //Ïóòü ê èñõîäíèêó áàçû ìóëüòà
435     AnIniFil.WriteString('MainSettings','TextsEdStart',TextsEdStart);  //Ïóòü ê èñõîäíèêó áàçû ìóëüòà
436     AnIniFil.WriteBool('MainSettings','OptStandRes',OptStandRes);  //Îïòèìàéçèòü ëè ñòàíäàðòíûå ðåñû â res-äèàëîãå
437     AnIniFil.WriteString('MainSettings','TxtEdDlgFiltList',TxtEdDlgFiltList);
438     AnIniFil.WriteInteger('MainSettings','TxtEdDlgActFilt',TxtEdDlgActFilt);
439     AnIniFil.WriteBool('MainSettings','TxtEdDlg1Click',TxtEdDlg1Click);
440     AnIniFil.WriteBool('MainSettings','TxtEdDlgUseCritSiz',TxtEdDlgUseCritSiz);
441     AnIniFil.WriteInteger('MainSettings','TxtEdDlgCritSiz',TxtEdDlgCritSiz);
442     AnIniFil.WriteBool('MainSettings','TxtEdDlgWordWrap',TxtEdDlgWordWrap);
443     AnIniFil.Save(IniFilPath);  //È ñàâíóòü. Òèïà âñå îê :)
444
445   end;
446
447   //Çàãðóçêà.
448
449   AnIniFil.Load(IniFilPath);  //Ëîàäíóòü èíèøíèê.
450   //È íà÷àòü ãðóçèòü...
451   PzPath := AnIniFil.ReadString('MainSettings','PzPath');
452   PzResPath := AnIniFil.ReadString('MainSettings','PzResPath');
453   PzCdPath := AnIniFil.ReadString('MainSettings','PzCdPath');
454   DefalDir := AnIniFil.ReadString('MainSettings','DefalDir');
455   MfHeight := AnIniFil.ReadInteger('MainSettings','MfHeight');
456   MfWidth := AnIniFil.ReadInteger('MainSettings','MfWidth');
457   MfTop := AnIniFil.ReadInteger('MainSettings','MfTop');
458   MfLeft := AnIniFil.ReadInteger('MainSettings','MfLeft');
459   MfWstate := AnIniFil.ReadInteger('MainSettings','MfWstate');
460   AiinfoResPath := AnIniFil.ReadString('MainSettings','AiinfoResPath');
461   DatabaseResPath := AnIniFil.ReadString('MainSettings','DatabaseResPath');
462   DatabaselmpResPath := AnIniFil.ReadString('MainSettings','DatabaselmpResPath');
463   FiguresResPath := AnIniFil.ReadString('MainSettings','FiguresResPath');
464   GfxResPath := AnIniFil.ReadString('MainSettings','GfxResPath');
465   MaterialsResPath := AnIniFil.ReadString('MainSettings','MaterialsResPath');
466   MenusResPath := AnIniFil.ReadString('MainSettings','MenusResPath');
467   OutroResPath := AnIniFil.ReadString('MainSettings','OutroResPath');
468   RedressResPath := AnIniFil.ReadString('MainSettings','RedressResPath');
469   SfxResPath := AnIniFil.ReadString('MainSettings','SfxResPath');
470   SpeechResPath := AnIniFil.ReadString('MainSettings','SpeechResPath');
471   TextsResPath := AnIniFil.ReadString('MainSettings','TextsResPath');
472   TextslmpResPath := AnIniFil.ReadString('MainSettings','TextslmpResPath');
473   TexturesResPath := AnIniFil.ReadString('MainSettings','TexturesResPath');
474   DatabaseResIsh := AnIniFil.ReadString('MainSettings','DatabaseResIsh');
475   DatabaselmpResIsh := AnIniFil.ReadString('MainSettings','DatabaselmpResIsh');
476   TextsEdStart := AnIniFil.ReadString('MainSettings','TextsEdStart');
477   OptStandRes := AnIniFil.ReadBool('MainSettings','OptStandRes');
478   TxtEdDlgFiltList := AnIniFil.ReadString('MainSettings','TxtEdDlgFiltList');
479   TxtEdDlgActFilt := AnIniFil.ReadInteger('MainSettings','TxtEdDlgActFilt');
480   TxtEdDlg1Click := AnIniFil.ReadBool('MainSettings','TxtEdDlg1Click');
481   TxtEdDlgUseCritSiz := AnIniFil.ReadBool('MainSettings','TxtEdDlgUseCritSiz');
482   TxtEdDlgCritSiz := AnIniFil.ReadInteger('MainSettings','TxtEdDlgCritSiz');
483   TxtEdDlgWordWrap := AnIniFil.ReadBool('MainSettings','TxtEdDlgWordWrap');
484   //Òèïà çàãðóçèëè...
485
486   //Ïîäãîòîâêà îñòàëüíûõ ïåðåìåííûõ....
487   //Èíäèêàòîðû çàêðûòîñòè (íåñóùåñòâîâíèÿ ;)  ) ôîðì.
488   ResursFormClosed := true;
489   PrintsDbR1FClosed := true;
490   PrintsDbR2FClosed := true;
491   PrintsDbR3FClosed := true;
492   LmpLeversFClosed := true;
493   LeversFClosed := true;
494   SinglPrintsDbR1FClosed := true;
495   SinglPrintsDbR2FClosed := true;
496   SinglPrintsDbR3FClosed := true;
497   SinglItemsIdbR1FClosed := true;
498   ItemsIdbR1FClosed := true;
499   SinglItemsIdbR2FClosed := true;
500   ItemsIdbR2FClosed := true;
501   SinglItemsIdbR3FClosed := true;
502   ItemsIdbR3FClosed := true;
503   SinglItemsIdbR4FClosed := true;
504   ItemsIdbR4FClosed := true;
505   SinglItemsIdbR5FClosed := true;
506   ItemsIdbR5FClosed := true;
507   SinglItemsIdbR6FClosed := true;
508   ItemsIdbR6FClosed := true;
509   SinglPerksPdbR1FClosed := true;
510   PerksPdbR1FClosed := true;
511   SinglPerksPdbR2FClosed := true;
512   PerksPdbR2FClosed := true;
513   SinglQuestsQdbR1FClosed := true;
514   SinglQuestsQdbR2FClosed := true;
515   UnitsUdbR1FClosed := true;
516   UnitsUdbR2FClosed := true;
517   UnitsUdbR3FClosed := true;
518   UnitsUdbR4FClosed := true;
519   SinglUnitsUdbR1FClosed := true;
520   SinglUnitsUdbR2FClosed := true;
521   SinglUnitsUdbR3FClosed := true;
522   SinglUnitsUdbR4FClosed := true;
523   SpellsSdbR1FClosed := true;
524   SpellsSdbR2FClosed := true;
525   SpellsSdbR3FClosed := true;
526   SpellsSdbR4FClosed := true;
527   SpellsSdbR5FClosed := true;
528   SinglSpellsSdbR1FClosed := true;
529   SinglSpellsSdbR2FClosed := true;
530   SinglSpellsSdbR3FClosed := true;
531   SinglSpellsSdbR4FClosed := true;
532   SinglSpellsSdbR5FClosed := true;
533   SinglAcksDbR1FClosed := true;
534   SinglAcksDbR2FClosed := true;
535   SinglAcksDbR3FClosed := true;
536
537   //Ïóòè ê áàçàì...
538   databasedir := GetExtensDirName(DatabaseResPath);
539   databaselmpdir := GetExtensDirName(DatabaselmpResPath);
540
541   //Îêíà ðåäàêòîðà...
542   TextEdF_Quantity := 0;
543   SetLength(TextEdForms,TextEdF_Quantity);
544 end;
545
546 begin
547   Application.Initialize;
548   Application.Title :=  'Ðåäàêòîð ÷àñòè ðåñóðñîâ ÏÇ ';
549   Init;
550   Application.CreateForm(TMainForm, MainForm);
551   Application.CreateForm(TDelForm, DelForm);
552   Application.CreateForm(TViborTipaTegaForm, ViborTipaTegaForm);
553   Application.CreateForm(TAskFnForm, AskFnForm);
554   Application.CreateForm(TTextsOptF, TextsOptF);
555   Application.CreateForm(TBrowseDirF, BrowseDirF);
556   Application.CreateForm(TBaseOptF, BaseOptF);
557   Application.CreateForm(TIshF, IshF);
558   Application.CreateForm(TShowProcessF, ShowProcessF);
559   Application.CreateForm(TShabRedDbF, ShabRedDbF);
560   Application.CreateForm(TShablonimF, ShablonimF);
561   Application.CreateForm(TCheckShablF, CheckShablF);
562   Application.CreateForm(TUncAskF, UncAskF);
563   Application.CreateForm(TValueSelectorF, ValueSelectorF);
564   Application.CreateForm(TASoundEditorF, ASoundEditorF);
565   Application.CreateForm(TResbuildF, ResbuildF);
566   Application.Run;
567   registr.closekey;
568   registr.free;
569   AnIniFil.Kill;  //Óáèòü îáüåêò êëàññà äëÿ ðàáîòû ñ èíèøíèêàìè.
570   VitInfo.Free;   //Îáúåêò äëÿ èíôû î âåðñèè.
571 end.
Note: See TracBrowser for help on using the browser.