You've already forked lina-components
mirror of
https://bitbucket.org/Dennis07/lina-components.git
synced 2025-08-24 21:49:04 +02:00
Version 1.0 DEV 1.11c
Signed-off-by: Dennis07 <den.goehlert@t-online.de>
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
These statistics cover the official repository of Lina Components.
|
||||
|
||||
Total lines of code (LoC): 6300+
|
||||
Total lines of code (LoC): 6500+
|
||||
Total visual components (VC): 15
|
@@ -1,46 +1,46 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<BorlandProject>
|
||||
<Transactions>
|
||||
<Transaction>1899.12.30 00:00:00.000.204,C:\Users\Dennis G\Documents\RAD Studio\Projekte\LinaComponents\Package\Delphi_XE5\uFileCtrls.pas=C:\Users\Dennis G\Documents\RAD Studio\Projekte\LinaComponents\Source\uFileCtrls.pas</Transaction>
|
||||
<Transaction>1899.12.30 00:00:00.000.592,=C:\Users\Dennis\Documents\RAD Studio\Projekte\LinaComponents\uFileTools.pas</Transaction>
|
||||
<Transaction>1899.12.30 00:00:00.000.576,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\LinaComponents\Source\uSysTools.pas</Transaction>
|
||||
<Transaction>1899.12.30 00:00:00.000.650,C:\Users\Dennis G\Documents\RAD Studio\Projekte\LinaComponents\Source\uBattery.pas=C:\Users\Dennis G\Documents\RAD Studio\Projekte\LinaComponents\Source\uSysCtrls.pas</Transaction>
|
||||
<Transaction>1899.12.30 00:00:00.000.508,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\LinaComponents\Source\uBase.pas</Transaction>
|
||||
<Transaction>1899.12.30 00:00:00.000.650,C:\Users\Dennis G\Documents\RAD Studio\Projekte\LinaComponents\Source\uSysCtrls.pas=C:\Users\Dennis G\Documents\RAD Studio\Projekte\LinaComponents\Source\uBattery.pas</Transaction>
|
||||
<Transaction>1899.12.30 00:00:00.000.648,=C:\Users\Dennis\Documents\RAD Studio\Projekte\LinaComponents\uScriptMgr.pas</Transaction>
|
||||
<Transaction>1899.12.30 00:00:00.000.518,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\LinaComponents\Source\uBattery.pas</Transaction>
|
||||
<Transaction>1899.12.30 00:00:00.000.837,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\LinaComponents\Package\Delphi_XE5\Unit1.pas</Transaction>
|
||||
<Transaction>1899.12.30 00:00:00.000.791,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\LinaComponents\Package\Delphi_XE5\Unit1.pas</Transaction>
|
||||
<Transaction>1899.12.30 00:00:00.000.681,C:\Users\Dennis G\Documents\RAD Studio\Projekte\LinaComponents\Resource\Lina.rc=</Transaction>
|
||||
<Transaction>1899.12.30 00:00:00.000.325,=dbrtl.dcp</Transaction>
|
||||
<Transaction>1899.12.30 00:00:00.000.809,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\LinaComponents\Resource\Lina.rc</Transaction>
|
||||
<Transaction>1899.12.30 00:00:00.000.932,C:\Users\Dennis G\Documents\RAD Studio\Projekte\LinaComponents\Package\Delphi_XE5\uFileCtrls.pas=C:\Users\Dennis G\Documents\RAD Studio\Projekte\LinaComponents\Package\Delphi_XE5\Unit1.pas</Transaction>
|
||||
<Transaction>1899.12.30 00:00:00.000.592,=C:\Users\Dennis\Documents\RAD Studio\Projekte\LinaComponents\uFileTools.pas</Transaction>
|
||||
<Transaction>1899.12.30 00:00:00.000.537,C:\Users\Dennis G\Documents\RAD Studio\Projekte\LinaComponents\Package\Delphi_XE5\Untitled1.htm=C:\Users\Dennis G\Documents\CodeQuality.htm</Transaction>
|
||||
<Transaction>1899.12.30 00:00:00.000.414,C:\Users\Dennis\Documents\RAD Studio\Projekte\LinaComponents\uLinaTest.pas=</Transaction>
|
||||
<Transaction>1899.12.30 00:00:00.000.143,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\LinaComponents\Package\Delphi_XE5\Untitled1.htm</Transaction>
|
||||
<Transaction>1899.12.30 00:00:00.000.633,C:\Users\Dennis\Documents\RAD Studio\Projekte\LinaComponents\LINA_D_XE5.dproj=C:\Users\Dennis\Documents\RAD Studio\Projekte\Package1.dproj</Transaction>
|
||||
<Transaction>1899.12.30 00:00:00.000.577,=C:\Users\Dennis\Documents\RAD Studio\Projekte\LinaComponents\uBattery.pas</Transaction>
|
||||
<Transaction>1899.12.30 00:00:00.000.318,=vcl.dcp</Transaction>
|
||||
<Transaction>1899.12.30 00:00:00.000.896,C:\Users\Dennis G\Documents\CodeQuality.htm=</Transaction>
|
||||
<Transaction>1899.12.30 00:00:00.000.556,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\LinaComponents\Source\uLocalMgr.pas</Transaction>
|
||||
<Transaction>1899.12.30 00:00:00.000.621,=C:\Users\Dennis\Documents\RAD Studio\Projekte\LinaComponents\uLinaTest.pas</Transaction>
|
||||
<Transaction>1899.12.30 00:00:00.000.204,C:\Users\Dennis G\Documents\RAD Studio\Projekte\LinaComponents\Source\uFileCtrls.pas=C:\Users\Dennis G\Documents\RAD Studio\Projekte\LinaComponents\Package\Delphi_XE5\uFileCtrls.pas</Transaction>
|
||||
<Transaction>1899.12.30 00:00:00.000.412,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\LinaComponents\Package\Delphi_XE5\Unit1.pas</Transaction>
|
||||
<Transaction>1899.12.30 00:00:00.000.196,=rtl.dcp</Transaction>
|
||||
<Transaction>1899.12.30 00:00:00.000.686,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\LinaComponents\uSysTools.pas</Transaction>
|
||||
<Transaction>1899.12.30 00:00:00.000.318,=vcl.dcp</Transaction>
|
||||
<Transaction>1899.12.30 00:00:00.000.577,=C:\Users\Dennis\Documents\RAD Studio\Projekte\LinaComponents\uBattery.pas</Transaction>
|
||||
<Transaction>1899.12.30 00:00:00.000.556,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\LinaComponents\Source\uLocalMgr.pas</Transaction>
|
||||
<Transaction>1899.12.30 00:00:00.000.648,=C:\Users\Dennis\Documents\RAD Studio\Projekte\LinaComponents\uScriptMgr.pas</Transaction>
|
||||
<Transaction>1899.12.30 00:00:00.000.518,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\LinaComponents\Source\uBattery.pas</Transaction>
|
||||
<Transaction>1899.12.30 00:00:00.000.537,C:\Users\Dennis G\Documents\CodeQuality.htm=C:\Users\Dennis G\Documents\RAD Studio\Projekte\LinaComponents\Package\Delphi_XE5\Untitled1.htm</Transaction>
|
||||
<Transaction>1899.12.30 00:00:00.000.414,C:\Users\Dennis\Documents\RAD Studio\Projekte\LinaComponents\uLinaTest.pas=</Transaction>
|
||||
<Transaction>1899.12.30 00:00:00.000.896,C:\Users\Dennis G\Documents\CodeQuality.htm=</Transaction>
|
||||
<Transaction>1899.12.30 00:00:00.000.675,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\LinaComponents\Package\Delphi_XE5\Unit1.pas</Transaction>
|
||||
<Transaction>1899.12.30 00:00:00.000.971,=IndySystem.dcp</Transaction>
|
||||
<Transaction>1899.12.30 00:00:00.000.584,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\LinaComponents\Source\uVirtObj.pas</Transaction>
|
||||
<Transaction>1899.12.30 00:00:00.000.196,=rtl.dcp</Transaction>
|
||||
<Transaction>1899.12.30 00:00:00.000.555,=C:\Users\Dennis\Documents\RAD Studio\Projekte\LinaComponents\uBase.pas</Transaction>
|
||||
<Transaction>1899.12.30 00:00:00.000.525,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\LinaComponents\Source\uCrypt.pas</Transaction>
|
||||
<Transaction>1899.12.30 00:00:00.000.584,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\LinaComponents\Source\uVirtObj.pas</Transaction>
|
||||
<Transaction>1899.12.30 00:00:00.000.118,=IndyCore.dcp</Transaction>
|
||||
<Transaction>1899.12.30 00:00:00.000.535,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\LinaComponents\Source\uFileTools.pas</Transaction>
|
||||
<Transaction>1899.12.30 00:00:00.000.582,C:\Users\Dennis G\Documents\RAD Studio\Projekte\LinaComponents\Source\uWebCtrls.pas=C:\Users\Dennis G\Documents\RAD Studio\Projekte\LinaComponents\Package\Delphi_XE5\Unit1.pas</Transaction>
|
||||
<Transaction>1899.12.30 00:00:00.000.672,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\LinaComponents\uFrmCtrls.pas</Transaction>
|
||||
<Transaction>1899.12.30 00:00:00.000.633,=C:\Users\Dennis\Documents\RAD Studio\Projekte\LinaComponents\uLocalMgr.pas</Transaction>
|
||||
<Transaction>1899.12.30 00:00:00.000.546,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\LinaComponents\Source\uFrmCtrls.pas</Transaction>
|
||||
<Transaction>1899.12.30 00:00:00.000.411,C:\Users\Dennis G\Documents\RAD Studio\Projekte\LinaComponents\Source\uAdvCtrls.pas=C:\Users\Dennis G\Documents\RAD Studio\Projekte\LinaComponents\Package\Delphi_XE5\Unit1.pas</Transaction>
|
||||
<Transaction>1899.12.30 00:00:00.000.791,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\LinaComponents\Package\Delphi_XE5\Unit1.pas</Transaction>
|
||||
<Transaction>1899.12.30 00:00:00.000.837,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\LinaComponents\Package\Delphi_XE5\Unit1.pas</Transaction>
|
||||
<Transaction>1899.12.30 00:00:00.000.675,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\LinaComponents\Package\Delphi_XE5\Unit1.pas</Transaction>
|
||||
<Transaction>1899.12.30 00:00:00.000.045,=IndyProtocols.dcp</Transaction>
|
||||
<Transaction>1899.12.30 00:00:00.000.525,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\LinaComponents\Source\uCrypt.pas</Transaction>
|
||||
<Transaction>1899.12.30 00:00:00.000.857,=PascalScript_Core_D19.dcp</Transaction>
|
||||
<Transaction>1899.12.30 00:00:00.000.686,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\LinaComponents\uSysTools.pas</Transaction>
|
||||
<Transaction>1899.12.30 00:00:00.000.672,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\LinaComponents\uFrmCtrls.pas</Transaction>
|
||||
<Transaction>1899.12.30 00:00:00.000.932,C:\Users\Dennis G\Documents\RAD Studio\Projekte\LinaComponents\Package\Delphi_XE5\Unit1.pas=C:\Users\Dennis G\Documents\RAD Studio\Projekte\LinaComponents\Package\Delphi_XE5\uFileCtrls.pas</Transaction>
|
||||
<Transaction>1899.12.30 00:00:00.000.566,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\LinaComponents\Source\uScriptMgr.pas</Transaction>
|
||||
<Transaction>1899.12.30 00:00:00.000.412,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\LinaComponents\Package\Delphi_XE5\Unit1.pas</Transaction>
|
||||
<Transaction>1899.12.30 00:00:00.000.411,C:\Users\Dennis G\Documents\RAD Studio\Projekte\LinaComponents\Package\Delphi_XE5\Unit1.pas=C:\Users\Dennis G\Documents\RAD Studio\Projekte\LinaComponents\Source\uAdvCtrls.pas</Transaction>
|
||||
<Transaction>1899.12.30 00:00:00.000.582,C:\Users\Dennis G\Documents\RAD Studio\Projekte\LinaComponents\Package\Delphi_XE5\Unit1.pas=C:\Users\Dennis G\Documents\RAD Studio\Projekte\LinaComponents\Source\uWebCtrls.pas</Transaction>
|
||||
<Transaction>1899.12.30 00:00:00.000.045,=IndyProtocols.dcp</Transaction>
|
||||
<Transaction>1899.12.30 00:00:00.000.633,C:\Users\Dennis\Documents\RAD Studio\Projekte\Package1.dproj=C:\Users\Dennis\Documents\RAD Studio\Projekte\LinaComponents\LINA_D_XE5.dproj</Transaction>
|
||||
<Transaction>1899.12.30 00:00:00.000.857,=PascalScript_Core_D19.dcp</Transaction>
|
||||
<Transaction>1899.12.30 00:00:00.000.546,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\LinaComponents\Source\uFrmCtrls.pas</Transaction>
|
||||
<Transaction>1899.12.30 00:00:00.000.799,=PascalScript_Core_D19.dcp</Transaction>
|
||||
</Transactions>
|
||||
<ProjectSortOrder AutoSort="0" SortType="0">
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -393,6 +393,7 @@ type
|
||||
FFormat: TParamFormat;
|
||||
{ Methoden }
|
||||
procedure SetIdentifier(Value: String);
|
||||
function GetFormat: TParamFormat;
|
||||
procedure SetFormat(Value: TParamFormat);
|
||||
public
|
||||
{ Public-Deklarationen }
|
||||
@@ -1606,6 +1607,11 @@ begin
|
||||
inherited;
|
||||
end;
|
||||
|
||||
function TParamReference.GetFormat: TParamFormat;
|
||||
begin
|
||||
Result := FFormat;
|
||||
end;
|
||||
|
||||
procedure TParamReference.SetFormat(Value: TParamFormat);
|
||||
begin
|
||||
FFormat := Value;
|
||||
|
@@ -10,35 +10,72 @@ interface
|
||||
|
||||
uses
|
||||
{ Standard-Units }
|
||||
SysUtils, Classes, IniFiles,
|
||||
SysUtils, Classes,
|
||||
{ Andere Package-Units }
|
||||
uBase;
|
||||
uBase, uSysTools;
|
||||
|
||||
type
|
||||
{ Fehlermeldungen }
|
||||
EInvalidFormat = class(Exception);
|
||||
ELanguageTagExists = class(Exception);
|
||||
|
||||
type
|
||||
{ Hilfsklassen }
|
||||
TLanguageTag = String[3];
|
||||
TComponentDetectMode = (cdTag,cdName);
|
||||
TIdentifyStructure = (isSimple,isSection);
|
||||
|
||||
type
|
||||
{ Hauptklassen }
|
||||
TLocalizationFormat = class(TPersistent)
|
||||
private
|
||||
{ Private-Deklarationen }
|
||||
FComment: ShortString;
|
||||
FSeparator: ShortString;
|
||||
FHeader: ShortString;
|
||||
{ Methoden }
|
||||
procedure SetComment(Value: ShortString);
|
||||
procedure SetSeparator(Value: ShortString);
|
||||
procedure SetHeader(Value: ShortString);
|
||||
public
|
||||
{ Public-Deklarationen }
|
||||
constructor Create;
|
||||
destructor Destroy; override;
|
||||
published
|
||||
{ Published-Deklarationen }
|
||||
property Comment: ShortString read FComment write SetComment;
|
||||
property Separator: ShortString read FSeparator write SetSeparator;
|
||||
property Header: ShortString read FHeader write SetHeader;
|
||||
end;
|
||||
|
||||
TLocalization = class(TCollectionItem)
|
||||
private
|
||||
{ Private-Deklarationen }
|
||||
FLanguageName: ShortString;
|
||||
FName: ShortString;
|
||||
FLines: TStrings;
|
||||
FTag: TLanguageTag;
|
||||
FFormat: TLocalizationFormat;
|
||||
{ Methoden }
|
||||
function GetLines: TStrings;
|
||||
procedure SetLines(Value: TStrings);
|
||||
procedure SetTag(Value: TLanguageTag);
|
||||
function GetFormat: TLocalizationFormat;
|
||||
procedure SetFormat(Value: TLocalizationFormat);
|
||||
protected
|
||||
{ Protected-Deklarationen }
|
||||
public
|
||||
{ Public-Deklarationen }
|
||||
constructor Create; overload;
|
||||
constructor Create(AFileName: TFileName); overload;
|
||||
destructor Destroy; overload;
|
||||
function Check: Boolean;
|
||||
constructor Create(Collection: TCollection); overload; override;
|
||||
constructor Create(Collection: TCollection; const AFileName: TFileName); overload;
|
||||
destructor Destroy; override;
|
||||
function Check: Boolean; overload;
|
||||
function Check(const Line: Integer): Boolean; overload;
|
||||
procedure Apply;
|
||||
published
|
||||
{ Published-Deklarationen }
|
||||
property LanguageName: ShortString read FLanguageName write FLanguageName;
|
||||
property Lines: TStrings read FLines write FLines;
|
||||
property Name: ShortString read FName write FName;
|
||||
property Tag: TLanguageTag read FTag write SetTag;
|
||||
property Lines: TStrings read GetLines write SetLines;
|
||||
property Format: TLocalizationFormat read GetFormat write FFormat;
|
||||
end;
|
||||
|
||||
TLocalizationManager = class;
|
||||
@@ -54,6 +91,8 @@ type
|
||||
{ Public-Deklarationen }
|
||||
constructor Create(ItemClass: TCollectionItemClass; AManager: TLocalizationManager);
|
||||
destructor Destroy; override;
|
||||
function IndexOfTag(const Tag: TLanguageTag): Integer;
|
||||
{ Eigenschaften }
|
||||
property Manager: TLocalizationManager read FManager write FManager;
|
||||
end;
|
||||
|
||||
@@ -62,12 +101,11 @@ type
|
||||
{ Private-Deklarationen }
|
||||
FAbout: TComponentAbout;
|
||||
FLocalizations: TLocalizations;
|
||||
FCurrent: TLocalization;
|
||||
FDefault: TLocalization;
|
||||
FCurrent: Integer;
|
||||
FDefault: Integer;
|
||||
FDetect: TComponentDetectMode;
|
||||
FStructure: TIdentifyStructure;
|
||||
{ Methoden }
|
||||
procedure SetCurrent(Value: TLocalization);
|
||||
procedure SetCurrent(Value: Integer);
|
||||
protected
|
||||
{ Protected-Deklarationen }
|
||||
public
|
||||
@@ -78,10 +116,9 @@ type
|
||||
{ Published-Deklarationen }
|
||||
property About: TComponentAbout read FAbout;
|
||||
property Localizations: TLocalizations read FLocalizations write FLocalizations;
|
||||
property Current: TLocalization read FCurrent write SetCurrent;
|
||||
property Default: TLocalization read FDefault write FDefault;
|
||||
property Current: Integer read FCurrent write SetCurrent default -1;
|
||||
property Default: Integer read FDefault write FDefault default -1;
|
||||
property Detect: TComponentDetectMode read FDetect write FDetect default cdName;
|
||||
property Structure: TIdentifyStructure read FStructure write FStructure default isSection;
|
||||
end;
|
||||
|
||||
procedure Register;
|
||||
@@ -100,56 +137,153 @@ begin
|
||||
RegisterComponents(ComponentsPage,[TLocalizationManager]);
|
||||
end;
|
||||
|
||||
{ ----------------------------------------------------------------------------
|
||||
TLocalizationFormat
|
||||
---------------------------------------------------------------------------- }
|
||||
|
||||
constructor TLocalizationFormat.Create;
|
||||
begin
|
||||
inherited;
|
||||
FComment := ';';
|
||||
FSeparator := '=';
|
||||
FHeader := '*';
|
||||
end;
|
||||
|
||||
destructor TLocalizationFormat.Destroy;
|
||||
begin
|
||||
//...
|
||||
inherited;
|
||||
end;
|
||||
|
||||
procedure TLocalizationFormat.SetComment(Value: ShortString);
|
||||
var
|
||||
Index: Integer;
|
||||
begin
|
||||
for Index := 1 to Length(Value) do
|
||||
begin
|
||||
if Value[Index] in Spaces then
|
||||
begin
|
||||
raise EInvalidFormat.Create('Invalid param format for property: "Comment"');
|
||||
end;
|
||||
end;
|
||||
FComment := Value;
|
||||
end;
|
||||
|
||||
procedure TLocalizationFormat.SetSeparator(Value: ShortString);
|
||||
var
|
||||
Index: Integer;
|
||||
begin
|
||||
for Index := 1 to Length(Value) do
|
||||
begin
|
||||
if Value[Index] in Spaces then
|
||||
begin
|
||||
raise EInvalidFormat.Create('Invalid param format for property: "Separator"');
|
||||
end;
|
||||
end;
|
||||
FSeparator := Value;
|
||||
end;
|
||||
|
||||
procedure TLocalizationFormat.SetHeader(Value: ShortString);
|
||||
var
|
||||
Index: Integer;
|
||||
begin
|
||||
for Index := 1 to Length(Value) do
|
||||
begin
|
||||
if Value[Index] in Spaces then
|
||||
begin
|
||||
raise EInvalidFormat.Create('Invalid param format for property: "Header"');
|
||||
end;
|
||||
end;
|
||||
FHeader := Value;
|
||||
end;
|
||||
|
||||
{ ----------------------------------------------------------------------------
|
||||
TLocalization
|
||||
---------------------------------------------------------------------------- }
|
||||
|
||||
constructor TLocalization.Create;
|
||||
constructor TLocalization.Create(Collection: TCollection);
|
||||
begin
|
||||
Lines := TStringList.Create;
|
||||
inherited;
|
||||
FLines := TStringList.Create;
|
||||
FFormat := TLocalizationFormat.Create;
|
||||
end;
|
||||
|
||||
constructor TLocalization.Create(AFileName: TFileName);
|
||||
constructor TLocalization.Create(Collection: TCollection; const AFileName: TFileName);
|
||||
begin
|
||||
Create;
|
||||
Create(Collection);
|
||||
Lines.LoadFromFile(AFileName);
|
||||
end;
|
||||
|
||||
destructor TLocalization.Destroy;
|
||||
begin
|
||||
Lines.Free;
|
||||
FLines.Free;
|
||||
FFormat.Free;
|
||||
inherited;
|
||||
end;
|
||||
|
||||
function TLocalization.GetLines: TStrings;
|
||||
begin
|
||||
Result := FLines;
|
||||
end;
|
||||
|
||||
procedure TLocalization.SetLines(Value: TStrings);
|
||||
begin
|
||||
(FLines as TStringList).Assign(Value);
|
||||
end;
|
||||
|
||||
procedure TLocalization.SetTag(Value: TLanguageTag);
|
||||
begin
|
||||
if ((Collection as TLocalizations).IndexOfTag(Value) > -1) and
|
||||
((Collection as TLocalizations).IndexOfTag(Value) <> Index)then
|
||||
begin
|
||||
raise ELanguageTagExists.Create('Language tag already exists');
|
||||
end else
|
||||
begin
|
||||
FTag := UpperCase(Value);
|
||||
end;
|
||||
end;
|
||||
|
||||
function TLocalization.GetFormat: TLocalizationFormat;
|
||||
begin
|
||||
Result := FFormat;
|
||||
end;
|
||||
|
||||
procedure TLocalization.SetFormat(Value: TLocalizationFormat);
|
||||
begin
|
||||
FFormat := Value;
|
||||
end;
|
||||
|
||||
function TLocalization.Check: Boolean;
|
||||
var
|
||||
Index: Integer;
|
||||
begin
|
||||
for Index := 0 to Lines.Count do
|
||||
begin
|
||||
//...
|
||||
Check(Index);
|
||||
end;
|
||||
end;
|
||||
|
||||
function TLocalization.Check(const Line: Integer): Boolean;
|
||||
begin
|
||||
//...
|
||||
end;
|
||||
|
||||
procedure TLocalization.Apply;
|
||||
begin
|
||||
//...
|
||||
if Check = True then
|
||||
begin
|
||||
//...
|
||||
(Collection as TLocalizations).Manager.FCurrent := Index;
|
||||
end else
|
||||
begin
|
||||
//...
|
||||
end;
|
||||
end;
|
||||
|
||||
{ ----------------------------------------------------------------------------
|
||||
TLocalizations
|
||||
---------------------------------------------------------------------------- }
|
||||
|
||||
function TLocalizations.GetManager: TLocalizationManager;
|
||||
begin
|
||||
Result := FManager;
|
||||
end;
|
||||
|
||||
procedure TLocalizations.SetManager(Value: TLocalizationManager);
|
||||
begin
|
||||
FManager := Value;
|
||||
end;
|
||||
|
||||
constructor TLocalizations.Create(ItemClass: TCollectionItemClass; AManager: TLocalizationManager);
|
||||
begin
|
||||
inherited Create(ItemClass);
|
||||
@@ -162,6 +296,31 @@ begin
|
||||
inherited;
|
||||
end;
|
||||
|
||||
function TLocalizations.GetManager: TLocalizationManager;
|
||||
begin
|
||||
Result := FManager;
|
||||
end;
|
||||
|
||||
procedure TLocalizations.SetManager(Value: TLocalizationManager);
|
||||
begin
|
||||
FManager := Value;
|
||||
end;
|
||||
|
||||
function TLocalizations.IndexOfTag(const Tag: TLanguageTag): Integer;
|
||||
var
|
||||
Index: Integer;
|
||||
begin
|
||||
Result := -1;
|
||||
for Index := 0 to Count - 1 do
|
||||
begin
|
||||
if (Items[Index] as TLocalization).Tag = UpperCase(Tag) then
|
||||
begin
|
||||
Result := Index;
|
||||
Exit;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
{ ----------------------------------------------------------------------------
|
||||
TLocalizationManager
|
||||
---------------------------------------------------------------------------- }
|
||||
@@ -171,22 +330,29 @@ begin
|
||||
inherited;
|
||||
FAbout := TComponentAbout.Create(LocalizationManagerComponent_Name,LocalizationManagerComponent_Version,LocalizationManagerComponent_Copyright,LocalizationManagerComponent_Author);
|
||||
FLocalizations := TLocalizations.Create(TLocalization,Self);
|
||||
FDetect := cdName;
|
||||
FDefault := -1;
|
||||
//Aktuelle Loc = Standard-Loc
|
||||
Current := Default;
|
||||
end;
|
||||
|
||||
destructor TLocalizationManager.Destroy;
|
||||
begin
|
||||
FCurrent := nil;
|
||||
FAbout.Free;
|
||||
FLocalizations.Free;
|
||||
inherited;
|
||||
end;
|
||||
|
||||
procedure TLocalizationManager.SetCurrent(Value: TLocalization);
|
||||
procedure TLocalizationManager.SetCurrent(Value: Integer);
|
||||
begin
|
||||
FCurrent := Value;
|
||||
Value.Apply;
|
||||
if Value > -1 then
|
||||
begin
|
||||
(Localizations.Items[Value] as TLocalization).Apply;
|
||||
//FCurrent wird in der Apply-Methode ge�ndert...
|
||||
end else
|
||||
begin
|
||||
FCurrent := Value;
|
||||
end;
|
||||
end;
|
||||
|
||||
end.
|
||||
|
@@ -315,7 +315,7 @@ begin
|
||||
Log := TStringList.Create;
|
||||
Code := TStringList.Create;
|
||||
CustomPlugins := TPSPlugins.Create(ScriptEngine);
|
||||
ScriptEngine := TPSScript.Create(nil);
|
||||
ScriptEngine := TPSScript.Create(Self);
|
||||
ScriptEngine.OnNeedFile := ScriptEngineNeedFile;
|
||||
ScriptEngine.OnCompile := ScriptEngineCompile;
|
||||
ScriptEngine.OnExecute := ScriptEngineExecute;
|
||||
|
Reference in New Issue
Block a user