Changeset 59


Ignore:
Timestamp:
Nov 16, 2012, 9:59:56 AM (12 years ago)
Author:
chronos
Message:
  • Fixed: Store module settings in system registry.
Location:
trunk
Files:
8 added
1 deleted
16 edited

Legend:

Unmodified
Added
Removed
  • trunk/ChronISPlatform.lpk

    r58 r59  
    6666      <Item1>
    6767        <PackageName Value="CoolWeb"/>
    68         <DefaultFilename Value="Packages\CoolWeb\CoolWeb.lpk" Prefer="True"/>
    6968      </Item1>
    7069      <Item2>
  • trunk/Demo

    • Property svn:ignore
      •  

        old new  
        11heaptrclog.trc
        22lib
         3ChronisDemo.exe
         4*.dbg
  • trunk/Demo/ChronisDemo.lpi

    r58 r59  
    7373      </local>
    7474    </RunParams>
    75     <RequiredPackages Count="2">
     75    <RequiredPackages Count="4">
    7676      <Item1>
    77         <PackageName Value="ModularSystem"/>
     77        <PackageName Value="Common"/>
    7878      </Item1>
    7979      <Item2>
     80        <PackageName Value="ChronISPlatform"/>
     81        <DefaultFilename Value="../ChronISPlatform.lpk" Prefer="True"/>
     82      </Item2>
     83      <Item3>
     84        <PackageName Value="ModularSystem"/>
     85      </Item3>
     86      <Item4>
    8087        <PackageName Value="LCL"/>
    81       </Item2>
     88      </Item4>
    8289    </RequiredPackages>
    8390    <Units Count="4">
     
    9097        <Filename Value="UDataModuleDemo.pas"/>
    9198        <IsPartOfProject Value="True"/>
    92         <ComponentName Value="DataModuleTest"/>
     99        <ComponentName Value="DataModuleDemo"/>
    93100        <HasResources Value="True"/>
    94101        <ResourceBaseClass Value="DataModule"/>
     
    96103      </Unit1>
    97104      <Unit2>
     105        <Filename Value="URegistredModules.pas"/>
     106        <IsPartOfProject Value="True"/>
     107        <UnitName Value="URegistredModules"/>
     108      </Unit2>
     109      <Unit3>
    98110        <Filename Value="Modules/Test/UModuleTest.pas"/>
    99111        <IsPartOfProject Value="True"/>
     
    102114        <ResourceBaseClass Value="DataModule"/>
    103115        <UnitName Value="UModuleTest"/>
    104       </Unit2>
    105       <Unit3>
    106         <Filename Value="URegistredModules.pas"/>
    107         <IsPartOfProject Value="True"/>
    108         <UnitName Value="URegistredModules"/>
    109116      </Unit3>
    110117    </Units>
  • trunk/Demo/ChronisDemo.lpr

    r58 r59  
    88  {$ENDIF}{$ENDIF}
    99  Interfaces, // this includes the LCL widgetset
    10   Forms, SysUtils, UDataModuleDemo, URegistredModules, UModuleTest;
     10  Forms, SysUtils, UDataModuleDemo, Common, UModuleTest;
    1111
    1212{$R *.res}
     
    2626  RequireDerivedFormResource := True;
    2727  Application.Initialize;
    28   Application.CreateForm(TDataModuleTest, DataModuleTest);
     28  Application.CreateForm(TDataModuleDemo, DataModuleDemo);
    2929  Application.Run;
    3030end.
  • trunk/Demo/ChronisDemo.lps

    r58 r59  
    55    <Version Value="9"/>
    66    <BuildModes Active="Debug"/>
    7     <Units Count="58">
     7    <Units Count="62">
    88      <Unit0>
    99        <Filename Value="ChronisDemo.lpr"/>
     
    1313        <WindowIndex Value="0"/>
    1414        <TopLine Value="7"/>
    15         <CursorPos X="39" Y="27"/>
    16         <UsageCount Value="52"/>
     15        <CursorPos X="41" Y="14"/>
     16        <UsageCount Value="54"/>
    1717        <Loaded Value="True"/>
    1818        <DefaultSyntaxHighlighter Value="Delphi"/>
     
    2121        <Filename Value="UDataModuleDemo.pas"/>
    2222        <IsPartOfProject Value="True"/>
    23         <ComponentName Value="DataModuleTest"/>
     23        <ComponentName Value="DataModuleDemo"/>
    2424        <HasResources Value="True"/>
    2525        <ResourceBaseClass Value="DataModule"/>
     
    2727        <EditorIndex Value="3"/>
    2828        <WindowIndex Value="0"/>
    29         <TopLine Value="25"/>
    30         <CursorPos X="5" Y="45"/>
    31         <UsageCount Value="21"/>
     29        <TopLine Value="39"/>
     30        <CursorPos X="56" Y="46"/>
     31        <UsageCount Value="23"/>
    3232        <Loaded Value="True"/>
    3333        <LoadedDesigner Value="True"/>
     
    3535      </Unit1>
    3636      <Unit2>
     37        <Filename Value="URegistredModules.pas"/>
     38        <IsPartOfProject Value="True"/>
     39        <UnitName Value="URegistredModules"/>
     40        <EditorIndex Value="1"/>
     41        <WindowIndex Value="0"/>
     42        <TopLine Value="19"/>
     43        <CursorPos X="3" Y="21"/>
     44        <UsageCount Value="22"/>
     45        <Loaded Value="True"/>
     46        <DefaultSyntaxHighlighter Value="Delphi"/>
     47      </Unit2>
     48      <Unit3>
    3749        <Filename Value="Modules\Test\UModuleTest.pas"/>
    3850        <IsPartOfProject Value="True"/>
     
    4153        <ResourceBaseClass Value="DataModule"/>
    4254        <UnitName Value="UModuleTest"/>
    43         <EditorIndex Value="2"/>
    44         <WindowIndex Value="0"/>
    45         <TopLine Value="1"/>
    46         <CursorPos X="30" Y="8"/>
    47         <UsageCount Value="20"/>
    48         <Loaded Value="True"/>
    49         <DefaultSyntaxHighlighter Value="Delphi"/>
    50       </Unit2>
    51       <Unit3>
    52         <Filename Value="URegistredModules.pas"/>
    53         <IsPartOfProject Value="True"/>
    54         <UnitName Value="URegistredModules"/>
    55         <IsVisibleTab Value="True"/>
    56         <EditorIndex Value="1"/>
    57         <WindowIndex Value="0"/>
    58         <TopLine Value="1"/>
    59         <CursorPos X="1" Y="19"/>
    60         <UsageCount Value="20"/>
    61         <Loaded Value="True"/>
     55        <EditorIndex Value="4"/>
     56        <WindowIndex Value="0"/>
     57        <TopLine Value="41"/>
     58        <CursorPos X="1" Y="62"/>
     59        <UsageCount Value="22"/>
     60        <Loaded Value="True"/>
     61        <LoadedDesigner Value="True"/>
    6262        <DefaultSyntaxHighlighter Value="Delphi"/>
    6363      </Unit3>
     
    382382        <Filename Value="H:\Projekty\LiftBox\Repository\trunk\Packages\ModularSystem\UModularSystem.pas"/>
    383383        <UnitName Value="UModularSystem"/>
    384         <EditorIndex Value="6"/>
     384        <EditorIndex Value="10"/>
    385385        <WindowIndex Value="0"/>
    386386        <TopLine Value="199"/>
     
    401401        <Filename Value="H:\Lazarus\1.1_2.6.0\lcl\forms.pp"/>
    402402        <UnitName Value="Forms"/>
    403         <EditorIndex Value="7"/>
     403        <EditorIndex Value="11"/>
    404404        <WindowIndex Value="0"/>
    405405        <TopLine Value="1355"/>
     
    518518        <ResourceBaseClass Value="DataModule"/>
    519519        <UnitName Value="UCore"/>
    520         <EditorIndex Value="5"/>
    521         <WindowIndex Value="0"/>
    522         <TopLine Value="95"/>
    523         <CursorPos X="76" Y="41"/>
     520        <IsVisibleTab Value="True"/>
     521        <EditorIndex Value="6"/>
     522        <WindowIndex Value="0"/>
     523        <TopLine Value="194"/>
     524        <CursorPos X="35" Y="209"/>
    524525        <UsageCount Value="10"/>
    525526        <Loaded Value="True"/>
     
    532533        <ResourceBaseClass Value="Form"/>
    533534        <UnitName Value="UFormConnection"/>
    534         <EditorIndex Value="9"/>
     535        <EditorIndex Value="13"/>
    535536        <WindowIndex Value="0"/>
    536537        <TopLine Value="1"/>
     
    542543      <Unit56>
    543544        <Filename Value="H:\Lazarus\1.1_2.6.0\lcl\include\application.inc"/>
    544         <EditorIndex Value="8"/>
     545        <EditorIndex Value="12"/>
    545546        <WindowIndex Value="0"/>
    546547        <TopLine Value="2148"/>
     
    552553        <Filename Value="..\Forms\UFormMain.pas"/>
    553554        <UnitName Value="UFormMain"/>
    554         <EditorIndex Value="4"/>
    555         <WindowIndex Value="0"/>
    556         <TopLine Value="83"/>
    557         <CursorPos X="9" Y="96"/>
     555        <EditorIndex Value="5"/>
     556        <WindowIndex Value="0"/>
     557        <TopLine Value="82"/>
     558        <CursorPos X="20" Y="94"/>
    558559        <UsageCount Value="10"/>
    559560        <Loaded Value="True"/>
    560561      </Unit57>
     562      <Unit58>
     563        <Filename Value="..\Packages\TemplateGenerics\Generic\GenericList.inc"/>
     564        <EditorIndex Value="2"/>
     565        <WindowIndex Value="0"/>
     566        <TopLine Value="562"/>
     567        <CursorPos X="3" Y="566"/>
     568        <UsageCount Value="10"/>
     569        <Loaded Value="True"/>
     570      </Unit58>
     571      <Unit59>
     572        <Filename Value="..\Packages\Common\URegistry.pas"/>
     573        <UnitName Value="URegistry"/>
     574        <EditorIndex Value="8"/>
     575        <WindowIndex Value="0"/>
     576        <TopLine Value="112"/>
     577        <CursorPos X="1" Y="120"/>
     578        <UsageCount Value="10"/>
     579        <Loaded Value="True"/>
     580      </Unit59>
     581      <Unit60>
     582        <Filename Value="..\Packages\CoolWeb\Persistence\USqlDatabase.pas"/>
     583        <UnitName Value="USqlDatabase"/>
     584        <EditorIndex Value="7"/>
     585        <WindowIndex Value="0"/>
     586        <TopLine Value="230"/>
     587        <CursorPos X="1" Y="241"/>
     588        <UsageCount Value="10"/>
     589        <Loaded Value="True"/>
     590        <DefaultSyntaxHighlighter Value="Delphi"/>
     591      </Unit60>
     592      <Unit61>
     593        <Filename Value="..\Packages\ModularSystem\UModularSystem.pas"/>
     594        <UnitName Value="UModularSystem"/>
     595        <EditorIndex Value="9"/>
     596        <WindowIndex Value="0"/>
     597        <TopLine Value="97"/>
     598        <CursorPos X="1" Y="111"/>
     599        <UsageCount Value="10"/>
     600        <Loaded Value="True"/>
     601      </Unit61>
    561602    </Units>
    562603    <General>
     
    565606    <JumpHistory Count="30" HistoryIndex="29">
    566607      <Position1>
    567         <Filename Value="UDataModuleDemo.pas"/>
    568         <Caret Line="36" Column="22" TopLine="19"/>
     608        <Filename Value="..\UCore.pas"/>
     609        <Caret Line="38" Column="18" TopLine="22"/>
    569610      </Position1>
    570611      <Position2>
    571612        <Filename Value="..\UCore.pas"/>
    572         <Caret Line="78" Column="1" TopLine="73"/>
     613        <Caret Line="184" Column="1" TopLine="179"/>
    573614      </Position2>
    574615      <Position3>
    575         <Filename Value="..\UCore.pas"/>
    576         <Caret Line="79" Column="1" TopLine="73"/>
     616        <Filename Value="..\Packages\Common\URegistry.pas"/>
     617        <Caret Line="51" Column="1" TopLine="39"/>
    577618      </Position3>
    578619      <Position4>
    579         <Filename Value="..\Forms\UFormMain.pas"/>
    580         <Caret Line="187" Column="1" TopLine="175"/>
     620        <Filename Value="..\Packages\Common\URegistry.pas"/>
     621        <Caret Line="52" Column="1" TopLine="39"/>
    581622      </Position4>
    582623      <Position5>
    583         <Filename Value="..\UCore.pas"/>
    584         <Caret Line="110" Column="1" TopLine="98"/>
     624        <Filename Value="..\Packages\Common\URegistry.pas"/>
     625        <Caret Line="53" Column="1" TopLine="39"/>
    585626      </Position5>
    586627      <Position6>
    587         <Filename Value="H:\Projekty\LiftBox\Repository\trunk\Packages\ModularSystem\UModularSystem.pas"/>
    588         <Caret Line="204" Column="1" TopLine="199"/>
     628        <Filename Value="..\Packages\Common\URegistry.pas"/>
     629        <Caret Line="54" Column="1" TopLine="39"/>
    589630      </Position6>
    590631      <Position7>
    591632        <Filename Value="..\UCore.pas"/>
    592         <Caret Line="137" Column="1" TopLine="126"/>
     633        <Caret Line="185" Column="1" TopLine="179"/>
    593634      </Position7>
    594635      <Position8>
    595         <Filename Value="..\Forms\UFormMain.pas"/>
    596         <Caret Line="96" Column="9" TopLine="83"/>
     636        <Filename Value="..\UCore.pas"/>
     637        <Caret Line="186" Column="1" TopLine="179"/>
    597638      </Position8>
    598639      <Position9>
    599640        <Filename Value="..\UCore.pas"/>
    600         <Caret Line="78" Column="37" TopLine="66"/>
     641        <Caret Line="184" Column="1" TopLine="179"/>
    601642      </Position9>
    602643      <Position10>
    603         <Filename Value="..\UCore.pas"/>
    604         <Caret Line="83" Column="5" TopLine="66"/>
     644        <Filename Value="..\Packages\Common\URegistry.pas"/>
     645        <Caret Line="51" Column="1" TopLine="39"/>
    605646      </Position10>
    606647      <Position11>
    607         <Filename Value="H:\Lazarus\1.1_2.6.0\lcl\include\application.inc"/>
    608         <Caret Line="2156" Column="3" TopLine="2148"/>
     648        <Filename Value="..\Packages\Common\URegistry.pas"/>
     649        <Caret Line="52" Column="1" TopLine="39"/>
    609650      </Position11>
    610651      <Position12>
    611         <Filename Value="..\UCore.pas"/>
    612         <Caret Line="78" Column="1" TopLine="66"/>
     652        <Filename Value="..\Packages\Common\URegistry.pas"/>
     653        <Caret Line="53" Column="1" TopLine="39"/>
    613654      </Position12>
    614655      <Position13>
    615         <Filename Value="..\UCore.pas"/>
    616         <Caret Line="79" Column="1" TopLine="66"/>
     656        <Filename Value="..\Packages\Common\URegistry.pas"/>
     657        <Caret Line="54" Column="1" TopLine="39"/>
    617658      </Position13>
    618659      <Position14>
    619         <Filename Value="..\UCore.pas"/>
    620         <Caret Line="80" Column="1" TopLine="66"/>
     660        <Filename Value="..\Packages\ModularSystem\UModularSystem.pas"/>
     661        <Caret Line="314" Column="1" TopLine="302"/>
    621662      </Position14>
    622663      <Position15>
    623         <Filename Value="..\UCore.pas"/>
    624         <Caret Line="78" Column="15" TopLine="66"/>
     664        <Filename Value="..\Packages\ModularSystem\UModularSystem.pas"/>
     665        <Caret Line="315" Column="1" TopLine="302"/>
    625666      </Position15>
    626667      <Position16>
    627         <Filename Value="UDataModuleDemo.pas"/>
    628         <Caret Line="46" Column="1" TopLine="24"/>
     668        <Filename Value="..\Packages\ModularSystem\UModularSystem.pas"/>
     669        <Caret Line="316" Column="1" TopLine="302"/>
    629670      </Position16>
    630671      <Position17>
    631         <Filename Value="UDataModuleDemo.pas"/>
    632         <Caret Line="32" Column="18" TopLine="25"/>
     672        <Filename Value="..\Packages\ModularSystem\UModularSystem.pas"/>
     673        <Caret Line="320" Column="25" TopLine="302"/>
    633674      </Position17>
    634675      <Position18>
    635         <Filename Value="ChronisDemo.lpr"/>
    636         <Caret Line="27" Column="1" TopLine="7"/>
     676        <Filename Value="..\Packages\ModularSystem\UModularSystem.pas"/>
     677        <Caret Line="318" Column="1" TopLine="302"/>
    637678      </Position18>
    638679      <Position19>
    639         <Filename Value="ChronisDemo.lpr"/>
    640         <Caret Line="28" Column="57" TopLine="7"/>
     680        <Filename Value="..\Packages\ModularSystem\UModularSystem.pas"/>
     681        <Caret Line="319" Column="1" TopLine="302"/>
    641682      </Position19>
    642683      <Position20>
    643         <Filename Value="ChronisDemo.lpr"/>
    644         <Caret Line="16" Column="59" TopLine="7"/>
     684        <Filename Value="..\Packages\ModularSystem\UModularSystem.pas"/>
     685        <Caret Line="320" Column="1" TopLine="302"/>
    645686      </Position20>
    646687      <Position21>
    647         <Filename Value="ChronisDemo.lpr"/>
    648         <Caret Line="21" Column="52" TopLine="7"/>
     688        <Filename Value="..\Packages\Common\URegistry.pas"/>
     689        <Caret Line="124" Column="1" TopLine="112"/>
    649690      </Position21>
    650691      <Position22>
    651         <Filename Value="ChronisDemo.lpr"/>
    652         <Caret Line="30" Column="1" TopLine="7"/>
     692        <Filename Value="..\Packages\Common\URegistry.pas"/>
     693        <Caret Line="125" Column="1" TopLine="112"/>
    653694      </Position22>
    654695      <Position23>
    655         <Filename Value="ChronisDemo.lpr"/>
    656         <Caret Line="22" Column="46" TopLine="7"/>
     696        <Filename Value="..\Packages\Common\URegistry.pas"/>
     697        <Caret Line="126" Column="1" TopLine="112"/>
    657698      </Position23>
    658699      <Position24>
    659         <Filename Value="UDataModuleDemo.pas"/>
    660         <Caret Line="38" Column="38" TopLine="25"/>
     700        <Filename Value="..\Packages\Common\URegistry.pas"/>
     701        <Caret Line="119" Column="1" TopLine="112"/>
    661702      </Position24>
    662703      <Position25>
    663         <Filename Value="UDataModuleDemo.pas"/>
    664         <Caret Line="8" Column="39" TopLine="1"/>
     704        <Filename Value="..\Packages\Common\URegistry.pas"/>
     705        <Caret Line="120" Column="1" TopLine="112"/>
    665706      </Position25>
    666707      <Position26>
    667         <Filename Value="UDataModuleDemo.pas"/>
    668         <Caret Line="11" Column="44" TopLine="1"/>
     708        <Filename Value="..\Packages\ModularSystem\UModularSystem.pas"/>
     709        <Caret Line="311" Column="42" TopLine="302"/>
    669710      </Position26>
    670711      <Position27>
    671         <Filename Value="UDataModuleDemo.pas"/>
    672         <Caret Line="8" Column="37" TopLine="1"/>
     712        <Filename Value="..\Packages\ModularSystem\UModularSystem.pas"/>
     713        <Caret Line="293" Column="44" TopLine="292"/>
    673714      </Position27>
    674715      <Position28>
    675         <Filename Value="URegistredModules.pas"/>
    676         <Caret Line="25" Column="5" TopLine="10"/>
     716        <Filename Value="..\Packages\ModularSystem\UModularSystem.pas"/>
     717        <Caret Line="137" Column="18" TopLine="122"/>
    677718      </Position28>
    678719      <Position29>
    679         <Filename Value="URegistredModules.pas"/>
    680         <Caret Line="8" Column="24" TopLine="1"/>
     720        <Filename Value="..\Packages\ModularSystem\UModularSystem.pas"/>
     721        <Caret Line="111" Column="1" TopLine="97"/>
    681722      </Position29>
    682723      <Position30>
    683         <Filename Value="Modules\Test\UModuleTest.pas"/>
    684         <Caret Line="18" Column="35" TopLine="1"/>
     724        <Filename Value="..\UCore.pas"/>
     725        <Caret Line="200" Column="58" TopLine="179"/>
    685726      </Position30>
    686727    </JumpHistory>
  • trunk/Demo/Modules/Test/UModuleTest.lfm

    r58 r59  
    22  OldCreateOrder = False
    33  Height = 150
    4   HorizontalOffset = 391
    5   VerticalOffset = 217
     4  HorizontalOffset = 329
     5  VerticalOffset = 80
    66  Width = 150
    77end
  • trunk/Demo/Modules/Test/UModuleTest.pas

    r58 r59  
    1515    { public declarations }
    1616  end;
     17
    1718
    1819  { TModuleTest }
     
    3738resourcestring
    3839  STest = 'Test';
    39   STestDescription = 'Test of various platform features during development';
     40  STestDescription = 'Test module for testing supported features';
    4041
    4142{ TModuleTest }
  • trunk/Demo/UDataModuleDemo.lfm

    r58 r59  
    1 object DataModuleTest: TDataModuleTest
     1object DataModuleDemo: TDataModuleDemo
    22  OnCreate = DataModuleCreate
    33  OnDestroy = DataModuleDestroy
    44  OldCreateOrder = False
    5   Height = 150
    6   HorizontalOffset = 614
    7   VerticalOffset = 181
    8   Width = 150
     5  Height = 279
     6  HorizontalOffset = 366
     7  VerticalOffset = 165
     8  Width = 360
     9  object ChronisPlatform1: TChronisPlatform
     10    OnRegisterModules = ChronisPlatform1RegisterModules
     11    OnUnregisterModules = ChronisPlatform1UnregisterModules
     12    left = 65
     13    top = 58
     14  end
     15  object ApplicationInfo1: TApplicationInfo
     16    Identification = 1
     17    VersionMajor = 1
     18    VersionMinor = 0
     19    VersionBugFix = 0
     20    VersionSuffix = 'alfa'
     21    CompanyName = 'Chronosoft'
     22    AuthorsName = 'Chronos'
     23    EmailContact = 'robie@centrum.cz'
     24    AppName = 'ChronisDemo'
     25    ReleaseDate = 41229
     26    RegistryKey = '\Software\Chronosoft\ChronisDemo'
     27    RegistryRoot = rrKeyCurrentUser
     28    left = 65
     29    top = 120
     30  end
    931end
  • trunk/Demo/UDataModuleDemo.pas

    r58 r59  
    66
    77uses
    8   Classes, SysUtils, FileUtil, Forms;
     8  Classes, SysUtils, FileUtil, Forms, UCore, UApplicationInfo, URegistry,
     9  Registry;
    910
    1011type
    1112
    12   { TDataModuleTest }
     13  { TDataModuleDemo }
    1314
    14   TDataModuleTest = class(TDataModule)
     15  TDataModuleDemo = class(TDataModule)
     16    ApplicationInfo1: TApplicationInfo;
     17    ChronisPlatform1: TChronisPlatform;
     18    procedure ChronisPlatform1RegisterModules(Sender: TObject);
     19    procedure ChronisPlatform1UnregisterModules(Sender: TObject);
    1520    procedure DataModuleCreate(Sender: TObject);
    1621    procedure DataModuleDestroy(Sender: TObject);
     
    2227
    2328var
    24   DataModuleTest: TDataModuleTest;
     29  DataModuleDemo: TDataModuleDemo;
    2530
    2631implementation
     
    2833{$R *.lfm}
    2934
    30 //uses
    31 //  URegistredModules;
     35uses
     36  URegistredModules;
    3237
    3338
    34 { TDataModuleTest }
     39{ TDataModuleDemo }
    3540
    36 procedure TDataModuleTest.DataModuleCreate(Sender: TObject);
     41procedure TDataModuleDemo.DataModuleCreate(Sender: TObject);
    3742begin
    38   //ChronisPlatform1.Init;
    39   //RegisterModules(Core.ModuleManager);
     43  ChronisPlatform1.RegistryContext := RegContext(HKEY(ApplicationInfo1.RegistryRoot), ApplicationInfo1.RegistryKey);
     44  ChronisPlatform1.Init;
    4045end;
    4146
    42 procedure TDataModuleTest.DataModuleDestroy(Sender: TObject);
     47procedure TDataModuleDemo.ChronisPlatform1RegisterModules(Sender: TObject);
    4348begin
    44   //UnregisterModules(Core.ModuleManager);
    45   //ChronisPlatform1.Done;
     49  RegisterModules(Core.ModuleManager);
     50end;
     51
     52procedure TDataModuleDemo.ChronisPlatform1UnregisterModules(Sender: TObject);
     53begin
     54  UnregisterModules(Core.ModuleManager);
     55end;
     56
     57procedure TDataModuleDemo.DataModuleDestroy(Sender: TObject);
     58begin
     59  ChronisPlatform1.Done;
    4660end;
    4761
  • trunk/Demo/URegistredModules.pas

    r58 r59  
    1414implementation
    1515
    16 //uses
    17 //  UModuleTest;
     16uses
     17  UModuleTest;
    1818
    1919procedure RegisterModules(ModuleManager: TModuleManager);
     
    2323  try
    2424    Modules.BeginUpdate;
    25   //  RegisterModule(TModuleTest.Create(nil));
     25    RegisterModule(TModuleTest.Create(nil));
    2626  finally
    2727    Modules.EndUpdate;
  • trunk/Packages/Common/URegistry.pas

    r56 r59  
    1717    rrKeyDynData = HKEY($80000006));
    1818
     19  { TRegistryContext }
     20
    1921  TRegistryContext = record
    2022    RootKey: HKEY;
    2123    Key: string;
     24    class operator Equal(A: TRegistryContext; B: TRegistryContext): Boolean;
    2225  end;
    2326
     
    4952  Result.RootKey := RootKey;
    5053  Result.Key := Key;
     54end;
     55
     56{ TRegistryContext }
     57
     58class operator TRegistryContext.Equal(A: TRegistryContext; B: TRegistryContext
     59  ): Boolean;
     60begin
     61  Result := (A.RootKey = B.RootKey) and (A.Key = B.Key);
    5162end;
    5263
  • trunk/Packages/ModularSystem/Language/UModularSystem.cs.po

    r56 r59  
    1010"Content-Transfer-Encoding: 8bit\n"
    1111
     12#: umodularsystem.sinvalidmodulename
     13msgid "Invalid module name"
     14msgstr ""
     15
    1216#: umodularsystem.smodulenotfound
    1317msgid "Module \"%1:s\" not found as dependency for module \"%0:s\""
  • trunk/Packages/ModularSystem/Language/UModularSystem.po

    r56 r59  
    11msgid ""
    22msgstr "Content-Type: text/plain; charset=UTF-8"
     3
     4#: umodularsystem.sinvalidmodulename
     5msgid "Invalid module name"
     6msgstr ""
    37
    48#: umodularsystem.smodulenotfound
  • trunk/Packages/ModularSystem/UModularSystem.pas

    r56 r59  
    109109    FAPI: TAPI;
    110110    FOnUpdate: TNotifyEvent;
    111     FUpdateCount: Integer;
    112111    FOptions: TModuleManagerOptions;
    113112    procedure SetAPI(AValue: TAPI);
     
    122121    procedure RegisterModule(Module: TModule);
    123122    procedure UnregisterModule(Module: TModule);
    124     procedure LoadFromRegistry(Context: TRegistryContext);
    125     procedure SaveToRegistry(Context: TRegistryContext);
     123    procedure LoadFromRegistry(AContext: TRegistryContext);
     124    procedure SaveToRegistry(AContext: TRegistryContext);
    126125    constructor Create(AOwner: TComponent); override;
    127126    destructor Destroy; override;
     
    139138resourcestring
    140139  SModuleNotFound = 'Module "%1:s" not found as dependency for module "%0:s"';
     140  SInvalidModuleName = 'Invalid module name';
    141141
    142142procedure Register;
     
    264264procedure TModuleManager.RegisterModule(Module: TModule);
    265265begin
     266  if Module.Identification = '' then
     267    raise Exception.Create(SInvalidModuleName);
    266268  Modules.Add(Module);
    267269  Module.FManager := Self;
     
    291293end;
    292294
    293 procedure TModuleManager.LoadFromRegistry(Context: TRegistryContext);
     295procedure TModuleManager.LoadFromRegistry(AContext: TRegistryContext);
    294296var
    295297  I: Integer;
     
    297299  with TRegistryEx.Create do
    298300  try
    299     RootKey := Context.RootKey;
     301    RootKey := AContext.RootKey;
    300302    for I := 0 to Modules.Count - 1 do
    301303    with TModule(Modules[I]) do begin
    302       OpenKey(Context.Key + '\' + Identification, True);
     304      OpenKey(AContext.Key + '\' + Identification, True);
    303305      Installed := ReadBoolWithDefault('Installed', Installed);
    304306      Enabled := ReadBoolWithDefault('Enabled', Enabled);
     
    309311end;
    310312
    311 procedure TModuleManager.SaveToRegistry(Context: TRegistryContext);
     313procedure TModuleManager.SaveToRegistry(AContext: TRegistryContext);
    312314var
    313315  I: Integer;
     
    315317  with TRegistryEx.Create do
    316318  try
    317     RootKey := Context.RootKey;
     319    RootKey := AContext.RootKey;
    318320    for I := 0 to Modules.Count - 1 do
    319321    with TModule(Modules[I]) do begin
    320       OpenKey(Context.Key + '\' + Identification, True);
     322      OpenKey(AContext.Key + '\' + Identification, True);
    321323      WriteBool('Enabled', Enabled);
    322324      WriteBool('Installed', Installed);
  • trunk/UCore.lfm

    r56 r59  
    77  VerticalOffset = 174
    88  Width = 324
    9   object ApplicationInfo1: TApplicationInfo
    10     Identification = 1
    11     VersionMajor = 1
    12     VersionMinor = 0
    13     VersionBugFix = 0
    14     VersionSuffix = 'alfa'
    15     CompanyName = 'Chronosoft'
    16     AuthorsName = 'Chronos'
    17     EmailContact = 'robie@centrum.cz'
    18     AppName = 'Docházka'
    19     ReleaseDate = 41228
    20     RegistryKey = '\Software\Chronosoft\Dochazka'
    21     RegistryRoot = rrKeyCurrentUser
    22     left = 88
    23     top = 72
    24   end
    259  object Database: TSqlDatabase
    2610    Connected = False
  • trunk/UCore.pas

    r58 r59  
    1111
    1212type
     13  TChronisPlatform = class;
    1314
    1415  { TCore }
    1516
    1617  TCore = class(TDataModule)
    17     ApplicationInfo1: TApplicationInfo;
    1818    CoolTranslator1: TCoolTranslator;
    1919    Database: TSqlDatabase;
     
    2323    procedure ModuleManagerUpdate(Sender: TObject);
    2424  private
     25    FRegistryContext: TRegistryContext;
     26    procedure SetRegistryContext(AValue: TRegistryContext);
    2527  public
     28    Platform: TChronisPlatform;
    2629    FormModuleList: TFormModuleList;
    2730    FormList: TForm;
    2831    PersistentForm: TPersistentForm;
    29     RegistryContext: TRegistryContext;
    3032    procedure Init;
    3133    procedure Done;
     
    3436    procedure LoadFromRegistry(AContext: TRegistryContext);
    3537    procedure SaveToRegistry(AContext: TRegistryContext);
     38    property RegistryContext: TRegistryContext read FRegistryContext
     39      write SetRegistryContext;
    3640  end;
    3741
     
    3943
    4044  TChronisPlatform = class(TComponent)
     45  private
     46    FOnRegisterModules: TNotifyEvent;
     47    FOnUnregisterModules: TNotifyEvent;
     48    FRegistryContext: TRegistryContext;
     49    procedure SetRegistryContext(AValue: TRegistryContext);
    4150  public
    4251    constructor Create(AOwner: TComponent); override;
     
    4453    procedure Init;
    4554    procedure Done;
     55    property RegistryContext: TRegistryContext read FRegistryContext
     56      write SetRegistryContext;
     57  published
     58    property OnRegisterModules: TNotifyEvent read FOnRegisterModules
     59      write FOnRegisterModules;
     60    property OnUnregisterModules: TNotifyEvent read FOnUnregisterModules
     61      write FOnUnregisterModules;
    4662  end;
    4763
     
    5672
    5773uses
    58   UFormMain, UFormConnection;
     74  UFormMain, UFormConnection, UFormSetting;
    5975
    6076procedure Register;
     
    6581{ TChronisPlatform }
    6682
     83procedure TChronisPlatform.SetRegistryContext(AValue: TRegistryContext);
     84begin
     85  if FRegistryContext = AValue then Exit;
     86  FRegistryContext := AValue;
     87  if Assigned(Core) then Core.RegistryContext := AValue;
     88end;
     89
    6790constructor TChronisPlatform.Create(AOwner: TComponent);
    6891begin
     
    78101begin
    79102  Application.CreateForm(TCore, Core);
    80   Application.CreateForm(TFormMain, FormMain);
     103  Core.Platform := Self;
     104  Core.RegistryContext := FRegistryContext;
     105  Application.CreateForm(TFormMain, FormMain); // first form
    81106  Application.CreateForm(TFormConnection, FormConnection);
     107  Application.CreateForm(TFormSetting, FormSetting);
    82108  //Core := TCore.Create(Application);
    83109  //FormMain := TFormMain.Create(Application);
     
    87113procedure TChronisPlatform.Done;
    88114begin
    89   FormConnection.Free;
    90   FormMain.Free;
    91   Core.Free;
     115(*  FreeAndNil(FormSetting);
     116  FreeAndNil(FormConnection);
     117  FreeAndNil(FormMain);
     118  FreeAndNil(Core); *)
    92119end;
    93120
     
    98125begin
    99126  PersistentForm := TPersistentForm.Create;
    100   PersistentForm.RegistryContext := RegContext(HKEY(ApplicationInfo1.RegistryRoot),
    101     ApplicationInfo1.RegistryKey + '\Forms');
    102   RegistryContext := RegContext(HKEY(ApplicationInfo1.RegistryRoot), ApplicationInfo1.RegistryKey);
    103127end;
    104128
     
    113137    FormModuleList.Reload;
    114138  FormMain.ReloadPages;
     139end;
     140
     141procedure TCore.SetRegistryContext(AValue: TRegistryContext);
     142begin
     143  if (FRegistryContext.RootKey = AValue.RootKey) and
     144    (FRegistryContext.Key = AValue.Key) then Exit;
     145  FRegistryContext := AValue;
     146  PersistentForm.RegistryContext := RegContext(RegistryContext.RootKey,
     147    RegistryContext.Key + '\Forms');
    115148end;
    116149
     
    126159    try
    127160      Context := RegistryContext;
    128       //RegisterModules(ModuleManager);
     161      if Assigned(Platform.OnRegisterModules) then
     162        Platform.OnRegisterModules(Self);
    129163      if ReadBoolWithDefault('ModuleManagerInstalled', False) then
    130164        ModuleManager.LoadFromRegistry(RegContext(RegistryContext.RootKey, RegistryContext.Key + '\Modules'))
     
    151185  if Assigned(FormModuleList) then FreeAndNil(FormModuleList);
    152186  ModuleManager.OnUpdate := nil;
    153   //UnregisterModules(ModuleManager);
     187  if Assigned(Platform.OnUnregisterModules) then
     188    Platform.OnUnregisterModules(Self);
    154189end;
    155190
Note: See TracChangeset for help on using the changeset viewer.