Changeset 89
- Timestamp:
- Sep 6, 2012, 8:29:27 PM (12 years ago)
- Location:
- trunk
- Files:
-
- 23 added
- 1 deleted
- 14 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/.htaccess
r80 r89 10 10 11 11 RewriteEngine on 12 RewriteBase / zdechovnet12 RewriteBase /dev/zdechovnet/trunk 13 13 RewriteCond %{REQUEST_FILENAME} !-f 14 14 RewriteCond %{REQUEST_FILENAME} !-d -
trunk/Modules/User/UModuleUser.pas
r80 r89 6 6 7 7 uses 8 Classes, SysUtils, UModul e;8 Classes, SysUtils, UModularSystem; 9 9 10 10 type … … 13 13 14 14 TModuleUser = class(TModule) 15 constructor Create ; override;15 constructor Create(Owner: TComponent); override; 16 16 destructor Destroy; override; 17 17 procedure Install; override; 18 18 procedure Uninstall; override; 19 procedure Up grade; override;19 procedure Update; override; 20 20 end; 21 21 … … 24 24 { TModuleUser } 25 25 26 constructor TModuleUser.Create ;26 constructor TModuleUser.Create(Owner: TComponent); 27 27 begin 28 inherited Create;28 inherited; 29 29 end; 30 30 31 31 destructor TModuleUser.Destroy; 32 32 begin 33 inherited Destroy;33 inherited; 34 34 end; 35 35 36 36 procedure TModuleUser.Install; 37 37 begin 38 inherited Install;38 inherited; 39 39 end; 40 40 41 41 procedure TModuleUser.Uninstall; 42 42 begin 43 inherited Uninstall;43 inherited; 44 44 end; 45 45 46 procedure TModuleUser.Up grade;46 procedure TModuleUser.Update; 47 47 begin 48 inherited Upgrade;48 inherited; 49 49 end; 50 50 -
trunk/Packages/Common/Common.lpk
r84 r89 21 21 <Description Value="Various libraries"/> 22 22 <License Value="GNU/GPL"/> 23 <Version Minor=" 4"/>24 <Files Count="1 0">23 <Version Minor="7"/> 24 <Files Count="15"> 25 25 <Item1> 26 26 <Filename Value="StopWatch.pas"/> … … 64 64 <UnitName Value="UPool"/> 65 65 </Item10> 66 <Item11> 67 <Filename Value="ULastOpenedList.pas"/> 68 <HasRegisterProc Value="True"/> 69 <UnitName Value="ULastOpenedList"/> 70 </Item11> 71 <Item12> 72 <Filename Value="URegistry.pas"/> 73 <UnitName Value="URegistry"/> 74 </Item12> 75 <Item13> 76 <Filename Value="UJobProgressView.pas"/> 77 <HasRegisterProc Value="True"/> 78 <UnitName Value="UJobProgressView"/> 79 </Item13> 80 <Item14> 81 <Filename Value="UXMLUtils.pas"/> 82 <UnitName Value="UXMLUtils"/> 83 </Item14> 84 <Item15> 85 <Filename Value="UApplicationInfo.pas"/> 86 <HasRegisterProc Value="True"/> 87 <UnitName Value="UApplicationInfo"/> 88 </Item15> 66 89 </Files> 67 90 <i18n> … … 70 93 </i18n> 71 94 <Type Value="RunAndDesignTime"/> 72 <RequiredPkgs Count=" 3">95 <RequiredPkgs Count="2"> 73 96 <Item1> 74 97 <PackageName Value="TemplateGenerics"/> 75 98 </Item1> 76 99 <Item2> 77 <PackageName Value="LCL"/>78 </Item2>79 <Item3>80 100 <PackageName Value="FCL"/> 81 101 <MinVersion Major="1" Valid="True"/> 82 </Item 3>102 </Item2> 83 103 </RequiredPkgs> 84 104 <UsageOptions> … … 88 108 <Version Value="2"/> 89 109 </PublishOptions> 110 <CustomOptions Items="ExternHelp" Version="2"> 111 <_ExternHelp Items="Count"/> 112 </CustomOptions> 90 113 </Package> 91 114 </CONFIG> -
trunk/Packages/Common/Common.pas
r84 r89 3 3 } 4 4 5 unit Common; 5 unit Common; 6 6 7 7 interface … … 9 9 uses 10 10 StopWatch, UCommon, UDebugLog, UDelay, UPrefixMultiplier, UURI, UThreading, 11 UMemory, UResetableThread, UPool, LazarusPackageIntf; 11 UMemory, UResetableThread, UPool, ULastOpenedList, URegistry, 12 UJobProgressView, UXMLUtils, UApplicationInfo, LazarusPackageIntf; 12 13 13 14 implementation 14 15 15 procedure Register; 16 procedure Register; 16 17 begin 17 RegisterUnit('UDebugLog', @UDebugLog.Register); 18 end; 18 RegisterUnit('UDebugLog', @UDebugLog.Register); 19 RegisterUnit('ULastOpenedList', @ULastOpenedList.Register); 20 RegisterUnit('UJobProgressView', @UJobProgressView.Register); 21 RegisterUnit('UApplicationInfo', @UApplicationInfo.Register); 22 end; 19 23 20 24 initialization 21 RegisterPackage('Common', @Register); 25 RegisterPackage('Common', @Register); 22 26 end. -
trunk/Packages/Common/StopWatch.pas
r84 r89 43 43 fIsHighResolution := QueryPerformanceFrequency(fFrequency) ; 44 44 {$ELSE} 45 raise Exception.Create('Not implemeneted');45 fIsHighResolution := False; 46 46 {$ENDIF} 47 47 if NOT fIsHighResolution then fFrequency := MSecsPerSec; … … 61 61 QueryPerformanceCounter(lInt) 62 62 {$ELSE} 63 raise Exception.Create('Not implemeneted')64 63 {$ENDIF} 65 64 else -
trunk/Packages/Common/UCommon.pas
r84 r89 7 7 uses 8 8 {$IFDEF Windows}Windows,{$ENDIF} 9 Classes, SysUtils, StrUtils, Dialogs, Process, 9 Classes, SysUtils, StrUtils, Dialogs, Process, LCLIntf, 10 10 FileUtil; //, ShFolder, ShellAPI; 11 11 … … 45 45 function BCDToInt(Value: Byte): Byte; 46 46 function CompareByteArray(Data1, Data2: TArrayOfByte): Boolean; 47 {$IFDEF Windows}48 47 function GetUserName: string; 49 48 function LoggedOnUserNameEx(Format: TUserNameFormat): string; 50 {$ENDIF}51 49 function SplitString(var Text: string; Count: Word): string; 52 50 function GetBit(Variable: QWord; Index: Byte): Boolean; 53 procedure SetBit(var Variable: QWord; Index: Byte; State: Boolean); 54 procedure SetBit(var Variable: Cardinal; Index: Byte; State: Boolean); 55 procedure SetBit(var Variable: Word; Index: Byte; State: Boolean); 51 procedure SetBit(var Variable: QWord; Index: Byte; State: Boolean); overload; 52 procedure SetBit(var Variable: Cardinal; Index: Byte; State: Boolean); overload; 53 procedure SetBit(var Variable: Word; Index: Byte; State: Boolean); overload; 56 54 function AddLeadingZeroes(const aNumber, Length : integer) : string; 57 55 function LastPos(const SubStr: String; const S: String): Integer; … … 61 59 procedure DeleteFiles(APath, AFileSpec: string); 62 60 procedure OpenWebPage(URL: string); 61 procedure OpenFileInShell(FileName: string); 62 procedure ExecuteProgram(CommandLine: string); 63 procedure FreeThenNil(var Obj); 63 64 64 65 … … 283 284 L: LongWord; 284 285 begin 286 285 287 L := MAX_USERNAME_LENGTH + 2; 286 288 SetLength(Result, L); 287 if Windows.GetUserName(PChar(Result), L) and (L > 0) then 288 SetLength(Result, StrLen(PChar(Result))) else 289 Result := ''; 289 if Windows.GetUserName(PChar(Result), L) and (L > 0) then begin 290 SetLength(Result, StrLen(PChar(Result))); 291 Result := UTF8Encode(Result); 292 end else Result := ''; 290 293 end; 291 294 … … 314 317 end else Result := GetUserName; 315 318 end; 319 {$ELSE} 320 function GetUserName: string; 321 begin 322 Result := ''; 323 end; 324 325 function LoggedOnUserNameEx(Format: TUserNameFormat): string; 326 begin 327 Result := ''; 328 end; 329 316 330 {$ENDIF} 317 331 … … 365 379 end; 366 380 381 procedure ExecuteProgram(CommandLine: string); 382 var 383 Process: TProcess; 384 begin 385 try 386 Process := TProcess.Create(nil); 387 Process.CommandLine := CommandLine; 388 Process.Options := [poNoConsole]; 389 Process.Execute; 390 finally 391 Process.Free; 392 end; 393 end; 394 395 procedure FreeThenNil(var Obj); 396 begin 397 TObject(Obj).Free; 398 TObject(Obj) := nil; 399 end; 400 367 401 procedure OpenWebPage(URL: string); 368 402 var … … 370 404 Browser, Params: string; 371 405 begin 372 try 406 OpenURL(URL); 407 {try 373 408 Process := TProcess.Create(nil); 374 409 Browser := ''; … … 381 416 finally 382 417 Process.Free; 383 end; 384 end; 385 418 end;} 419 end; 420 421 procedure OpenFileInShell(FileName: string); 422 begin 423 ExecuteProgram('cmd.exe /c start "' + FileName + '"'); 424 end; 386 425 387 426 initialization -
trunk/Packages/Common/UDebugLog.pas
r84 r89 6 6 7 7 uses 8 Classes, SysUtils, FileUtil ;8 Classes, SysUtils, FileUtil, SpecializedList, SyncObjs; 9 9 10 10 type … … 29 29 procedure SetMaxCount(const AValue: Integer); 30 30 public 31 Items: TThreadList; 31 Items: TListObject; 32 Lock: TCriticalSection; 32 33 procedure Add(Group: string; Text: string); 33 34 procedure WriteToFile(Text: string); … … 57 58 58 59 procedure TDebugLog.SetMaxCount(const AValue: Integer); 59 var60 List: TList;61 I: Integer;62 60 begin 63 61 if FMaxCount = AValue then Exit; 64 62 FMaxCount := AValue; 65 List := Items.LockList;66 if List.Count > 0 then begin67 for I := AValue to List.Count - 1 do68 TDebugLogItem(List[I]).Free;69 L ist.Count := AValue;63 try 64 Lock.Acquire; 65 if Items.Count > FMaxCount then Items.Count := AValue; 66 finally 67 Lock.Release; 70 68 end; 71 Items.UnlockList;72 69 end; 73 70 74 71 procedure TDebugLog.Add(Group: string; Text: string); 75 72 var 76 I: Integer;77 List: TList;78 73 NewItem: TDebugLogItem; 79 74 begin … … 83 78 NewItem.Text := Text; 84 79 85 List := Items.LockList; 86 List.Insert(0, NewItem); 87 if List.Count > MaxCount then begin 88 TDebugLogItem(List.Items[List.Count - 1]).Free; 89 List.Delete(List.Count - 1); 90 end; 91 Items.UnlockList; 80 try 81 Lock.Acquire; 82 Items.Insert(0, NewItem); 83 if Items.Count > MaxCount then begin 84 Items.Delete(Items.Count - 1); 85 end; 92 86 93 if WriteToFileEnable then begin 94 if Group <> '' then Group := Group + '[' + Group + '] '; 95 WriteToFile(Group + Text); 87 if WriteToFileEnable then begin 88 if Group <> '' then Group := Group + '[' + Group + '] '; 89 WriteToFile(Group + Text); 90 end; 91 finally 92 Lock.Release; 96 93 end; 97 94 if Assigned(FOnNewItem) then … … 113 110 LogFile.WriteBuffer(Text[1], Length(Text)); 114 111 finally 115 LogFile.Free;112 FreeAndNil(LogFile); 116 113 end; 117 114 end; … … 120 117 begin 121 118 inherited; 122 Items := TThreadList.Create; 119 Items := TListObject.Create; 120 Lock := TCriticalSection.Create; 123 121 MaxCount := 100; 124 122 FileName := 'DebugLog.txt'; … … 127 125 128 126 destructor TDebugLog.Destroy; 129 var130 List: TList;131 I: Integer;132 127 begin 133 List := Items.LockList;134 for I := 0 to List.Count - 1 do135 TDebugLogItem(List[I]).Free;136 128 Items.Free; 129 Lock.Free; 137 130 inherited; 138 131 end; -
trunk/Packages/Common/UMemory.pas
r84 r89 24 24 constructor Create; 25 25 destructor Destroy; override; 26 procedure WriteMemory(Position: Integer; Memory: TMemory); 27 procedure ReadMemory(Position: Integer; Memory: TMemory); 26 28 property Data: PByte read FData; 27 29 property Size: Integer read FSize write SetSize; … … 108 110 end; 109 111 112 procedure TMemory.WriteMemory(Position: Integer; Memory: TMemory); 113 begin 114 Move(Memory.FData, PByte(@FData + Position)^, Memory.Size); 115 end; 116 117 procedure TMemory.ReadMemory(Position: Integer; Memory: TMemory); 118 begin 119 Move(PByte(@FData + Position)^, Memory.FData, Memory.Size); 120 end; 121 110 122 end. 111 123 -
trunk/Packages/Common/UResetableThread.pas
r84 r89 54 54 procedure MethodFinish(Sender: TObject); 55 55 protected 56 procedure ThreadException(Sender: TObject; E: Exception);57 56 function NewItemObject: TObject; override; 58 57 public 59 58 LastExceptionClass: TClass; 60 59 LastExceptionMessage: string; 60 procedure ThreadException(Sender: TObject; E: Exception); 61 61 procedure CheckException; 62 62 procedure WaitForEmpty; … … 273 273 procedure TThreadPool.RunInThread(AMethod: TMethodCall); 274 274 begin 275 CheckException; 276 with TResetableThread(Acquire) do begin 277 Method := AMethod; 278 OnFinished := MethodFinish; 279 Start; 275 try 276 with TResetableThread(Acquire) do begin 277 Method := AMethod; 278 OnFinished := MethodFinish; 279 Start; 280 end; 281 finally 282 CheckException; 280 283 end; 281 284 end; -
trunk/Packages/Common/UThreading.pas
r84 r89 17 17 TVirtualThread = class 18 18 private 19 function GetFinished: Boolean; virtual; abstract; 19 20 function GetFreeOnTerminate: Boolean; virtual; abstract; 20 21 function GetPriority: TThreadPriority; virtual; abstract; … … 42 43 property Priority: TThreadPriority read GetPriority write SetPriority; 43 44 property Terminated: Boolean read GetTerminated write SetTerminated; 45 property Finished: Boolean read GetFinished; 44 46 property ThreadId: Integer read GetThreadId; 45 47 end; … … 61 63 private 62 64 FTerminated: Boolean; 65 FFinished: Boolean; 63 66 FThread: TListedThreadExecute; 67 function GetFinished: Boolean; override; 64 68 function GetFreeOnTerminate: Boolean; override; 65 69 function GetPriority: TThreadPriority; override; … … 160 164 procedure Synchronize(Method: TMethodCall); 161 165 var 162 I: Integer;163 166 Thread: TVirtualThread; 164 167 begin … … 172 175 end; 173 176 174 175 177 { TThreadList } 176 178 … … 196 198 begin 197 199 try 198 Parent.Execute; 199 except 200 on E: Exception do 201 if Assigned(OnException) then 202 OnException(Parent.FThread, E); 200 try 201 Parent.Execute; 202 except 203 on E: Exception do 204 if Assigned(OnException) then 205 OnException(Parent.FThread, E); 206 end; 207 finally 208 Parent.FFinished := True; 203 209 end; 204 210 end; 205 211 206 212 { TListedThread } 213 214 function TListedThread.GetFinished: Boolean; 215 begin 216 Result := FFinished; 217 end; 207 218 208 219 function TListedThread.GetFreeOnTerminate: Boolean; … … 255 266 const StackSize: SizeUInt); 256 267 begin 268 FFinished := False; 269 FTerminated := False; 270 257 271 FThread := TListedThreadExecute.Create(True, StackSize); 258 272 FThread.Parent := Self; … … 289 303 I: Integer; 290 304 begin 305 if Terminated then Exit; 291 306 SysUtils.Sleep(Delay mod Quantum); 292 307 for I := 1 to (Delay div Quantum) do begin -
trunk/UCore.lfm
r82 r89 2 2 OldCreateOrder = False 3 3 Height = 278 4 HorizontalOffset = 2735 VerticalOffset = 20 84 HorizontalOffset = 654 5 VerticalOffset = 203 6 6 Width = 431 7 7 object WebApp1: TWebApp 8 8 OnPageProduce = WebApp1PageProduce 9 ServerType = st TCP9 ServerType = stCGI 10 10 left = 160 11 11 top = 88 12 12 end 13 object ApplicationInfo1: TApplicationInfo 14 Identification = 1 15 VersionMajor = 1 16 VersionMinor = 0 17 VersionBugFix = 0 18 CompanyName = 'ZděchovNET' 19 CompanyHomePage = 'http://www.zdechov.net/' 20 HomePage = 'http://www.zdechov.net/' 21 AuthorsName = 'Chronosoft' 22 EmailContact = 'robie@centrum.cz' 23 AppName = 'ZděchovNET' 24 ReleaseDate = 41127 25 RegistryKey = '\Software\Chronosoft\ZdechovNET' 26 RegistryRoot = rrKeyCurrentUser 27 left = 160 28 top = 144 29 end 13 30 end -
trunk/UCore.lrs
r83 r89 3 3 LazarusResources.Add('TCore','FORMDATA',[ 4 4 'TPF0'#5'TCore'#4'Core'#14'OldCreateOrder'#8#6'Height'#3#22#1#16'HorizontalOf' 5 +'fset'#3#17#1#14'VerticalOffset'#3#208#0#5'Width'#3#175#1#0#7'TWebApp'#7'Web' 6 +'App1'#13'OnPageProduce'#7#18'WebApp1PageProduce'#10'ServerType'#7#5'stTCP'#4 7 +'left'#3#160#0#3'top'#2'X'#0#0#0 5 +'fset'#3#142#2#14'VerticalOffset'#3#203#0#5'Width'#3#175#1#0#7'TWebApp'#7'We' 6 +'bApp1'#13'OnPageProduce'#7#18'WebApp1PageProduce'#10'ServerType'#7#5'stCGI' 7 +#4'left'#3#160#0#3'top'#2'X'#0#0#16'TApplicationInfo'#16'ApplicationInfo1'#14 8 +'Identification'#2#1#12'VersionMajor'#2#1#12'VersionMinor'#2#0#13'VersionBug' 9 +'Fix'#2#0#11'CompanyName'#6#11'Zd'#196#155'chovNET'#15'CompanyHomePage'#6#23 10 +'http://www.zdechov.net/'#8'HomePage'#6#23'http://www.zdechov.net/'#11'Autho' 11 +'rsName'#6#10'Chronosoft'#12'EmailContact'#6#16'robie@centrum.cz'#7'AppName' 12 +#6#11'Zd'#196#155'chovNET'#11'ReleaseDate'#5#0#0#0#0#0#0#167#160#14'@'#11'Re' 13 +'gistryKey'#6#31'\Software\Chronosoft\ZdechovNET'#12'RegistryRoot'#7#16'rrKe' 14 +'yCurrentUser'#4'left'#3#160#0#3'top'#3#144#0#0#0#0 8 15 ]); -
trunk/UCore.pas
r83 r89 8 8 Classes, SysUtils, FileUtil, LResources, UHTTPServerCGI, UHTTPSessionMySQL, 9 9 UHTTPServer, USqlDatabase, INIFiles, DateUtils, UWebPage, UWebApp, 10 UXmlClasses, UHtmlClasses, UUtils, UHTTPServerTCP, 11 UHTTPSessionFile, UUser, SpecializedList, Registry; 10 UXmlClasses, UHtmlClasses, UUtils, UApplicationInfo, UHTTPServerTCP, 11 UModuleUser, UHTTPSessionFile, UUser, SpecializedList, Registry, 12 UModularSystem; 12 13 13 14 const … … 43 44 44 45 TCore = class(TDataModule) 46 ApplicationInfo1: TApplicationInfo; 45 47 WebApp1: TWebApp; 46 48 procedure WebApp1PageProduce(HandlerData: THTTPHandlerData); 47 49 private 48 50 procedure Show(Content: string); 51 procedure RegisterModules; 49 52 public 53 ModuleManager: TModuleManager; 50 54 Load: string; 51 55 Unload: string; … … 80 84 81 85 uses 82 U ApplicationInfo, UInternetPage, UHostingPage, UHistoryPage, UDocumentsPage, UVoIPPage,86 UInternetPage, UHostingPage, UHistoryPage, UDocumentsPage, UVoIPPage, 83 87 ULinksPage, UPlansPage, UServerInfoPage, UWebCamPage, UUserControlPage, 84 88 UNetworkPage, UAboutPage, UContactPage, UProjectsPage; … … 167 171 begin 168 172 inherited; 173 ModuleManager := TModuleManager.Create(nil); 169 174 Pages := TPageList.Create; 175 176 RegisterModules; 177 ModuleManager.InstallMarked; 178 170 179 LoadFromRegistry; 171 180 with Pages do begin … … 269 278 TopMenu, PageMenu, Content, Footer); 270 279 Result := Document.GetOutput; *) 280 end; 281 282 procedure TCore.RegisterModules; 283 begin 284 with ModuleManager do begin 285 RegisterModule(TModuleUser.Create(nil), True); 286 end; 271 287 end; 272 288 -
trunk/ZdechovNET.lpi
r88 r89 39 39 </local> 40 40 </RunParams> 41 <RequiredPackages Count=" 6">41 <RequiredPackages Count="7"> 42 42 <Item1> 43 <PackageName Value="ModularSystem"/> 44 <DefaultFilename Value="Packages/ModularSystem/ModularSystem.lpk" Prefer="True"/> 45 </Item1> 46 <Item2> 43 47 <PackageName Value="PersistentData"/> 44 48 <DefaultFilename Value="Packages/PersistentData/PersistentData.lpk" Prefer="True"/> 45 </Item 1>46 <Item 2>49 </Item2> 50 <Item3> 47 51 <PackageName Value="TemplateGenerics"/> 48 52 <DefaultFilename Value="Packages/TemplateGenerics/TemplateGenerics.lpk" Prefer="True"/> 49 </Item 2>50 <Item 3>53 </Item3> 54 <Item4> 51 55 <PackageName Value="CoolWeb"/> 52 56 <DefaultFilename Value="Packages/CoolWeb/CoolWeb.lpk" Prefer="True"/> 53 </Item 3>54 <Item 4>57 </Item4> 58 <Item5> 55 59 <PackageName Value="Common"/> 56 60 <DefaultFilename Value="Packages/Common/Common.lpk" Prefer="True"/> 57 </Item 4>58 <Item 5>61 </Item5> 62 <Item6> 59 63 <PackageName Value="synapse"/> 60 64 <DefaultFilename Value="Packages/synapse/synapse.lpk" Prefer="True"/> 61 </Item 5>62 <Item 6>65 </Item6> 66 <Item7> 63 67 <PackageName Value="LCL"/> 64 </Item 6>68 </Item7> 65 69 </RequiredPackages> 66 <Units Count="2 4">70 <Units Count="22"> 67 71 <Unit0> 68 72 <Filename Value="ZdechovNET.lpr"/> … … 188 192 </Unit18> 189 193 <Unit19> 190 <Filename Value="Application/UApplicationInfo.pas"/> 191 <IsPartOfProject Value="True"/> 192 <UnitName Value="UApplicationInfo"/> 194 <Filename Value="Pages/UProjectsPage.pas"/> 195 <IsPartOfProject Value="True"/> 196 <ComponentName Value="ProjectsPage"/> 197 <HasResources Value="True"/> 198 <ResourceBaseClass Value="DataModule"/> 199 <UnitName Value="UProjectsPage"/> 193 200 </Unit19> 194 201 <Unit20> 195 <Filename Value="Pages/UProjectsPage.pas"/> 196 <IsPartOfProject Value="True"/> 197 <ComponentName Value="ProjectsPage"/> 198 <HasResources Value="True"/> 199 <ResourceBaseClass Value="DataModule"/> 200 <UnitName Value="UProjectsPage"/> 202 <Filename Value="Modules/User/UModuleUser.pas"/> 203 <IsPartOfProject Value="True"/> 204 <UnitName Value="UModuleUser"/> 201 205 </Unit20> 202 206 <Unit21> 203 <Filename Value="Modules/User/UModuleUser.pas"/> 204 <IsPartOfProject Value="True"/> 205 <UnitName Value="UModuleUser"/> 207 <Filename Value="UCore.pas"/> 208 <IsPartOfProject Value="True"/> 209 <ComponentName Value="Core"/> 210 <HasResources Value="True"/> 211 <ResourceBaseClass Value="DataModule"/> 212 <UnitName Value="UCore"/> 206 213 </Unit21> 207 <Unit22>208 <Filename Value="Common/UModule.pas"/>209 <IsPartOfProject Value="True"/>210 <UnitName Value="UModule"/>211 </Unit22>212 <Unit23>213 <Filename Value="UCore.pas"/>214 <IsPartOfProject Value="True"/>215 <ComponentName Value="Core"/>216 <HasResources Value="True"/>217 <ResourceBaseClass Value="DataModule"/>218 <UnitName Value="UCore"/>219 </Unit23>220 214 </Units> 221 215 </ProjectOptions>
Note:
See TracChangeset
for help on using the changeset viewer.