1
0
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:
Dennis07
2014-10-10 20:42:02 +02:00
parent eb0954a2f2
commit 1718efaebf
18 changed files with 239 additions and 67 deletions

View File

@@ -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

View File

@@ -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.

View File

@@ -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;

View File

@@ -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.

View File

@@ -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;