Ignore:
Timestamp:
Jun 24, 2023, 12:33:35 PM (17 months ago)
Author:
chronos
Message:
  • Modified: Use TFormEx for all forms.
  • Modified: Test forms moved into Common package.
Location:
branches/xpascal/Packages/Common
Files:
10 added
3 deleted
4 edited

Legend:

Unmodified
Added
Removed
  • branches/xpascal/Packages/Common/Common.lpk

    r227 r228  
    1111      <PathDelim Value="\"/>
    1212      <SearchPaths>
     13        <OtherUnitFiles Value="Forms"/>
    1314        <UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)-$(BuildMode)"/>
    1415      </SearchPaths>
     
    4243    <License Value="Copy left."/>
    4344    <Version Minor="11"/>
    44     <Files Count="35">
     45    <Files Count="37">
    4546      <Item1>
    4647        <Filename Value="StopWatch.pas"/>
     
    159160      </Item26>
    160161      <Item27>
    161         <Filename Value="FormAbout.pas"/>
    162         <UnitName Value="FormAbout"/>
     162        <Filename Value="AboutDialog.pas"/>
     163        <HasRegisterProc Value="True"/>
     164        <UnitName Value="AboutDialog"/>
    163165      </Item27>
    164166      <Item28>
    165         <Filename Value="AboutDialog.pas"/>
    166         <HasRegisterProc Value="True"/>
    167         <UnitName Value="AboutDialog"/>
     167        <Filename Value="PixelPointer.pas"/>
     168        <UnitName Value="PixelPointer"/>
    168169      </Item28>
    169170      <Item29>
    170         <Filename Value="PixelPointer.pas"/>
    171         <UnitName Value="PixelPointer"/>
     171        <Filename Value="DataFile.pas"/>
     172        <UnitName Value="DataFile"/>
    172173      </Item29>
    173174      <Item30>
    174         <Filename Value="DataFile.pas"/>
    175         <UnitName Value="DataFile"/>
     175        <Filename Value="TestCase.pas"/>
     176        <UnitName Value="TestCase"/>
    176177      </Item30>
    177178      <Item31>
    178         <Filename Value="TestCase.pas"/>
    179         <UnitName Value="TestCase"/>
     179        <Filename Value="Generics.pas"/>
     180        <UnitName Value="Generics"/>
    180181      </Item31>
    181182      <Item32>
    182         <Filename Value="Generics.pas"/>
    183         <UnitName Value="Generics"/>
    184       </Item32>
    185       <Item33>
    186183        <Filename Value="CommonPackage.pas"/>
    187184        <Type Value="Main Unit"/>
    188185        <UnitName Value="CommonPackage"/>
     186      </Item32>
     187      <Item33>
     188        <Filename Value="Table.pas"/>
     189        <UnitName Value="Table"/>
    189190      </Item33>
    190191      <Item34>
    191         <Filename Value="Table.pas"/>
    192         <UnitName Value="Table"/>
     192        <Filename Value="FormEx.pas"/>
     193        <HasRegisterProc Value="True"/>
     194        <UnitName Value="FormEx"/>
    193195      </Item34>
    194196      <Item35>
    195         <Filename Value="FormEx.pas"/>
    196         <HasRegisterProc Value="True"/>
    197         <UnitName Value="FormEx"/>
     197        <Filename Value="Forms\FormTests.pas"/>
     198        <UnitName Value="FormTests"/>
    198199      </Item35>
     200      <Item36>
     201        <Filename Value="Forms\FormTest.pas"/>
     202        <UnitName Value="FormTest"/>
     203      </Item36>
     204      <Item37>
     205        <Filename Value="Forms\FormAbout.pas"/>
     206        <UnitName Value="FormAbout"/>
     207      </Item37>
    199208    </Files>
    200209    <CompatibilityMode Value="True"/>
  • branches/xpascal/Packages/Common/CommonPackage.pas

    r227 r228  
    1313  XML, ApplicationInfo, SyncCounter, ListViewSort, PersistentForm, FindFile,
    1414  ScaleDPI, Theme, StringTable, MetaCanvas, Geometric, Translator, Languages,
    15   FormAbout, AboutDialog, PixelPointer, DataFile, TestCase, Generics, Table,
    16   FormEx, LazarusPackageIntf;
     15  AboutDialog, PixelPointer, DataFile, TestCase, Generics, Table, FormEx,
     16  FormTests, FormTest, FormAbout, LazarusPackageIntf;
    1717
    1818implementation
  • branches/xpascal/Packages/Common/FormEx.pas

    r227 r228  
    1111
    1212  TFormEx = class(TForm)
     13  private
     14    FCounter: Integer; static;
     15  public
    1316    PersistentForm: TPersistentForm; static;
    14     ThemeManager: TThemeManager;
    15     Translator: TTranslator;
     17    ThemeManager: TThemeManager; static;
     18    Translator: TTranslator; static;
    1619    procedure DoShow; override;
    1720    procedure DoCreate; override;
     
    2730procedure Register;
    2831begin
    29   RegisterClass(TFormEx);
     32  RegisterNoIcon([TFormEx]);
    3033end;
    3134
     
    3437procedure TFormEx.DoShow;
    3538begin
     39  inherited;
    3640  PersistentForm.Load(Self);
    37   inherited;
    3841end;
    3942
    4043procedure TFormEx.DoCreate;
    4144begin
    42   inherited;
    4345  if not Assigned(PersistentForm) then
    4446    PersistentForm := TPersistentForm.Create(nil);
     
    5254  Translator.TranslateComponentRecursive(Self);
    5355  ThemeManager.UseTheme(Self);
     56  Inc(FCounter);
     57  inherited;
    5458end;
    5559
     
    6266procedure TFormEx.DoDestroy;
    6367begin
    64   FreeAndNil(PersistentForm);
    65   FreeAndNil(ThemeManager);
    66   FreeAndNil(Translator);
     68  Dec(FCounter);
     69  if FCounter <= 0 then begin
     70    FreeAndNil(PersistentForm);
     71    FreeAndNil(ThemeManager);
     72    FreeAndNil(Translator);
     73  end;
    6774  inherited;
    6875end;
  • branches/xpascal/Packages/Common/Translator.pas

    r227 r228  
    173173begin
    174174  FPoFiles.Clear;
    175   if Assigned(FLanguage) then
    176   try
     175  if Assigned(FLanguage) then begin
    177176    LocaleShort := GetLocaleShort;
    178     //ShowMessage(ExtractFileDir(Application.ExeName) +
    179     //  DirectorySeparator + 'Languages' + ' ' + '*.' + LocaleShort + '.po');
    180177    SearchMask := '*';
    181178    if LocaleShort <> '' then SearchMask := SearchMask + '.' + LocaleShort;
     
    184181    for J := 0 to LangDirs.Count - 1 do begin
    185182      FileList := FindAllFiles(LangDirs[J], SearchMask);
    186       for I := 0 to FileList.Count - 1 do begin
    187         FileName := FileList[I];
    188         //FileName := FindLocaleFileName('.po');
    189         if FileExists(FileName) and (
    190         ((LocaleShort = '') and (Pos('.', FileName) = Pos(PoExt, FileName))) or
    191         (LocaleShort <> '')) then FPoFiles.Add(TPOFile.Create(FileName));
     183      try
     184        for I := 0 to FileList.Count - 1 do begin
     185          FileName := FileList[I];
     186          //FileName := FindLocaleFileName('.po');
     187           if FileExists(FileName) and (
     188          ((LocaleShort = '') and (Pos('.', FileName) = Pos(PoExt, FileName))) or
     189          (LocaleShort <> '')) then FPoFiles.Add(TPOFile.Create(FileName));
     190        end;
     191      finally
     192        FileList.Free;
    192193      end;
    193194    end;
    194195    LangDirs.Free;
    195   finally
    196     FileList.Free;
    197196  end;
    198197end;
Note: See TracChangeset for help on using the changeset viewer.