Version 1.0 DEV 1.15
Signed-off-by: Dennis07 <den.goehlert@t-online.de>
14
Example/TCryptManager/pExample.dpr
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
program pExample;
|
||||||
|
|
||||||
|
uses
|
||||||
|
Vcl.Forms,
|
||||||
|
uMain in 'uMain.pas' {fmMain};
|
||||||
|
|
||||||
|
{$R *.res}
|
||||||
|
|
||||||
|
begin
|
||||||
|
Application.Initialize;
|
||||||
|
Application.MainFormOnTaskbar := True;
|
||||||
|
Application.CreateForm(TfmMain, fmMain);
|
||||||
|
Application.Run;
|
||||||
|
end.
|
170
Example/TCryptManager/pExample.dproj
Normal file
@@ -0,0 +1,170 @@
|
|||||||
|
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<PropertyGroup>
|
||||||
|
<ProjectGuid>{B2F1BE7E-2745-4B2F-A4DE-CA83E5CC75C5}</ProjectGuid>
|
||||||
|
<ProjectVersion>15.3</ProjectVersion>
|
||||||
|
<FrameworkType>VCL</FrameworkType>
|
||||||
|
<MainSource>pExample.dpr</MainSource>
|
||||||
|
<Base>True</Base>
|
||||||
|
<Config Condition="'$(Config)'==''">Debug</Config>
|
||||||
|
<Platform Condition="'$(Platform)'==''">Win32</Platform>
|
||||||
|
<TargetedPlatforms>1</TargetedPlatforms>
|
||||||
|
<AppType>Application</AppType>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''">
|
||||||
|
<Base>true</Base>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Base)'=='true') or '$(Base_Win32)'!=''">
|
||||||
|
<Base_Win32>true</Base_Win32>
|
||||||
|
<CfgParent>Base</CfgParent>
|
||||||
|
<Base>true</Base>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="('$(Platform)'=='Win64' and '$(Base)'=='true') or '$(Base_Win64)'!=''">
|
||||||
|
<Base_Win64>true</Base_Win64>
|
||||||
|
<CfgParent>Base</CfgParent>
|
||||||
|
<Base>true</Base>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_1)'!=''">
|
||||||
|
<Cfg_1>true</Cfg_1>
|
||||||
|
<CfgParent>Base</CfgParent>
|
||||||
|
<Base>true</Base>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Cfg_1)'=='true') or '$(Cfg_1_Win32)'!=''">
|
||||||
|
<Cfg_1_Win32>true</Cfg_1_Win32>
|
||||||
|
<CfgParent>Cfg_1</CfgParent>
|
||||||
|
<Cfg_1>true</Cfg_1>
|
||||||
|
<Base>true</Base>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_2)'!=''">
|
||||||
|
<Cfg_2>true</Cfg_2>
|
||||||
|
<CfgParent>Base</CfgParent>
|
||||||
|
<Base>true</Base>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Base)'!=''">
|
||||||
|
<Icon_MainIcon>$(BDS)\bin\delphi_PROJECTICON.ico</Icon_MainIcon>
|
||||||
|
<DCC_Namespace>System;Xml;Data;Datasnap;Web;Soap;Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;$(DCC_Namespace)</DCC_Namespace>
|
||||||
|
<DCC_DcuOutput>.\$(Platform)\$(Config)</DCC_DcuOutput>
|
||||||
|
<DCC_ExeOutput>.\$(Platform)\$(Config)</DCC_ExeOutput>
|
||||||
|
<DCC_E>false</DCC_E>
|
||||||
|
<DCC_N>false</DCC_N>
|
||||||
|
<DCC_S>false</DCC_S>
|
||||||
|
<DCC_F>false</DCC_F>
|
||||||
|
<DCC_K>false</DCC_K>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Base_Win32)'!=''">
|
||||||
|
<DCC_Namespace>Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace>
|
||||||
|
<Manifest_File>$(BDS)\bin\default_app.manifest</Manifest_File>
|
||||||
|
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
|
||||||
|
<VerInfo_Locale>1033</VerInfo_Locale>
|
||||||
|
<VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=</VerInfo_Keys>
|
||||||
|
<DCC_UsePackage>JvBDE;JvGlobus;O408br;JvMM;JvManagedThreads;FireDACSqliteDriver;DBXSqliteDriver;AbbreviaVCL;FireDACPgDriver;VampyreImagingPackage.D2009;fmx;JvDlgs;IndySystem;JvCrypt;TeeDB;frx19;inetdbbde;vclib;DBXInterBaseDriver;GR32_DSGN_RSXE5;DataSnapCommon;MiscrosoftScriptControls;pkCindyDERDXE5;JvNet;JvDotNetCtrls;DbxCommonDriver;vclimg;dbxcds;PieLib;vclshlctrls;MetropolisUILiveTile;JvXPCtrls;pkCindyPackDXE5;vcldb;vcldsnap;pkCindyIEDXE5;fmxFireDAC;pkCindyDBXDXE5;CustomIPTransport;JvCore;SynEdit_RXE5;vclribbon;dsnap;IndyIPServer;fmxase;vcl;IndyCore;DebenuPDFLibraryLite;DCEF_XE5;CodeSiteExpressPkg;IndyIPCommon;CloudService;FmxTeeUI;FireDACIBDriver;JvAppFrm;JvDB;JvRuntimeDesign;inetdbxpress;webdsnap;frxe19;JclDeveloperTools;JvDocking;adortl;JvWizards;frxDB19;FireDACASADriver;JvHMI;bindcompfmx;JvBands;vcldbx;FireDACODBCDriver;rtl;dbrtl;DbxClientDriver;FireDACCommon;bindcomp;JvPluginSystem;Tee;JclContainers;JvCmp;vclFireDAC;JvSystem;xmlrtl;svnui;ibxpress;SVATimer_DXE5;JvControls;JvTimeFramework;IndyProtocols;DBXMySQLDriver;djsonrt;FireDACCommonDriver;O408_r;bindengine;vclactnband;soaprtl;bindcompdbx;TeeUI;FMXTee;bindcompvcl;JvStdCtrls;JvCustom;Jcl;vclie;JvJans;JvPageComps;JvPrintPreview;pkCindyDBCtrlsPackDXE5;FireDACADSDriver;vcltouch;LINA_D_XE5;VclSmp;FireDAC;VCLRESTComponents;Intraweb;GR32_RSXE5;dsnapcon;inet;fmxobj;JclVcl;JvPascalInterpreter;FireDACMySQLDriver;vclx;svn;fmxdae;RESTComponents;bdertl;FireDACMSAccDriver;dbexpress;IndyIPClient;$(DCC_UsePackage)</DCC_UsePackage>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Base_Win64)'!=''">
|
||||||
|
<DCC_UsePackage>O408br;FireDACSqliteDriver;DBXSqliteDriver;AbbreviaVCL;FireDACPgDriver;fmx;IndySystem;vclib;DBXInterBaseDriver;DataSnapCommon;DbxCommonDriver;vclimg;dbxcds;vclshlctrls;MetropolisUILiveTile;vcldb;vcldsnap;fmxFireDAC;CustomIPTransport;SynEdit_RXE5;vclribbon;dsnap;IndyIPServer;fmxase;vcl;IndyCore;IndyIPCommon;CloudService;FireDACIBDriver;inetdbxpress;webdsnap;adortl;FireDACASADriver;bindcompfmx;FireDACODBCDriver;rtl;dbrtl;DbxClientDriver;FireDACCommon;bindcomp;vclFireDAC;xmlrtl;ibxpress;IndyProtocols;DBXMySQLDriver;FireDACCommonDriver;O408_r;bindengine;vclactnband;soaprtl;bindcompdbx;bindcompvcl;vclie;FireDACADSDriver;vcltouch;LINA_D_XE5;VclSmp;FireDAC;VCLRESTComponents;Intraweb;dsnapcon;inet;fmxobj;FireDACMySQLDriver;vclx;fmxdae;RESTComponents;FireDACMSAccDriver;dbexpress;IndyIPClient;$(DCC_UsePackage)</DCC_UsePackage>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Cfg_1)'!=''">
|
||||||
|
<DCC_Define>DEBUG;$(DCC_Define)</DCC_Define>
|
||||||
|
<DCC_DebugDCUs>true</DCC_DebugDCUs>
|
||||||
|
<DCC_Optimize>false</DCC_Optimize>
|
||||||
|
<DCC_GenerateStackFrames>true</DCC_GenerateStackFrames>
|
||||||
|
<DCC_DebugInfoInExe>true</DCC_DebugInfoInExe>
|
||||||
|
<DCC_RemoteDebug>true</DCC_RemoteDebug>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Cfg_1_Win32)'!=''">
|
||||||
|
<DCC_RemoteDebug>false</DCC_RemoteDebug>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Cfg_2)'!=''">
|
||||||
|
<DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols>
|
||||||
|
<DCC_Define>RELEASE;$(DCC_Define)</DCC_Define>
|
||||||
|
<DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo>
|
||||||
|
<DCC_DebugInformation>0</DCC_DebugInformation>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<DelphiCompile Include="$(MainSource)">
|
||||||
|
<MainSource>MainSource</MainSource>
|
||||||
|
</DelphiCompile>
|
||||||
|
<DCCReference Include="uMain.pas">
|
||||||
|
<Form>fmMain</Form>
|
||||||
|
<FormType>dfm</FormType>
|
||||||
|
</DCCReference>
|
||||||
|
<BuildConfiguration Include="Release">
|
||||||
|
<Key>Cfg_2</Key>
|
||||||
|
<CfgParent>Base</CfgParent>
|
||||||
|
</BuildConfiguration>
|
||||||
|
<BuildConfiguration Include="Base">
|
||||||
|
<Key>Base</Key>
|
||||||
|
</BuildConfiguration>
|
||||||
|
<BuildConfiguration Include="Debug">
|
||||||
|
<Key>Cfg_1</Key>
|
||||||
|
<CfgParent>Base</CfgParent>
|
||||||
|
</BuildConfiguration>
|
||||||
|
</ItemGroup>
|
||||||
|
<ProjectExtensions>
|
||||||
|
<Borland.Personality>Delphi.Personality.12</Borland.Personality>
|
||||||
|
<Borland.ProjectType/>
|
||||||
|
<BorlandProject>
|
||||||
|
<Delphi.Personality>
|
||||||
|
<VersionInfo>
|
||||||
|
<VersionInfo Name="IncludeVerInfo">False</VersionInfo>
|
||||||
|
<VersionInfo Name="AutoIncBuild">False</VersionInfo>
|
||||||
|
<VersionInfo Name="MajorVer">1</VersionInfo>
|
||||||
|
<VersionInfo Name="MinorVer">0</VersionInfo>
|
||||||
|
<VersionInfo Name="Release">0</VersionInfo>
|
||||||
|
<VersionInfo Name="Build">0</VersionInfo>
|
||||||
|
<VersionInfo Name="Debug">False</VersionInfo>
|
||||||
|
<VersionInfo Name="PreRelease">False</VersionInfo>
|
||||||
|
<VersionInfo Name="Special">False</VersionInfo>
|
||||||
|
<VersionInfo Name="Private">False</VersionInfo>
|
||||||
|
<VersionInfo Name="DLL">False</VersionInfo>
|
||||||
|
<VersionInfo Name="Locale">1031</VersionInfo>
|
||||||
|
<VersionInfo Name="CodePage">1252</VersionInfo>
|
||||||
|
</VersionInfo>
|
||||||
|
<VersionInfoKeys>
|
||||||
|
<VersionInfoKeys Name="CompanyName"/>
|
||||||
|
<VersionInfoKeys Name="FileDescription"/>
|
||||||
|
<VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys>
|
||||||
|
<VersionInfoKeys Name="InternalName"/>
|
||||||
|
<VersionInfoKeys Name="LegalCopyright"/>
|
||||||
|
<VersionInfoKeys Name="LegalTrademarks"/>
|
||||||
|
<VersionInfoKeys Name="OriginalFilename"/>
|
||||||
|
<VersionInfoKeys Name="ProductName"/>
|
||||||
|
<VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys>
|
||||||
|
<VersionInfoKeys Name="Comments"/>
|
||||||
|
<VersionInfoKeys Name="CFBundleName"/>
|
||||||
|
<VersionInfoKeys Name="CFBundleDisplayName"/>
|
||||||
|
<VersionInfoKeys Name="UIDeviceFamily"/>
|
||||||
|
<VersionInfoKeys Name="CFBundleIdentifier"/>
|
||||||
|
<VersionInfoKeys Name="CFBundleVersion"/>
|
||||||
|
<VersionInfoKeys Name="CFBundlePackageType"/>
|
||||||
|
<VersionInfoKeys Name="CFBundleSignature"/>
|
||||||
|
<VersionInfoKeys Name="CFBundleAllowMixedLocalizations"/>
|
||||||
|
<VersionInfoKeys Name="UISupportedInterfaceOrientations"/>
|
||||||
|
<VersionInfoKeys Name="CFBundleExecutable"/>
|
||||||
|
<VersionInfoKeys Name="CFBundleResourceSpecification"/>
|
||||||
|
<VersionInfoKeys Name="LSRequiresIPhoneOS"/>
|
||||||
|
<VersionInfoKeys Name="CFBundleInfoDictionaryVersion"/>
|
||||||
|
<VersionInfoKeys Name="CFBundleDevelopmentRegion"/>
|
||||||
|
<VersionInfoKeys Name="package"/>
|
||||||
|
<VersionInfoKeys Name="label"/>
|
||||||
|
<VersionInfoKeys Name="versionCode"/>
|
||||||
|
<VersionInfoKeys Name="versionName"/>
|
||||||
|
<VersionInfoKeys Name="persistent"/>
|
||||||
|
<VersionInfoKeys Name="restoreAnyVersion"/>
|
||||||
|
<VersionInfoKeys Name="installLocation"/>
|
||||||
|
<VersionInfoKeys Name="largeHeap"/>
|
||||||
|
<VersionInfoKeys Name="theme"/>
|
||||||
|
</VersionInfoKeys>
|
||||||
|
<Source>
|
||||||
|
<Source Name="MainSource">pExample.dpr</Source>
|
||||||
|
</Source>
|
||||||
|
</Delphi.Personality>
|
||||||
|
<Deployment/>
|
||||||
|
<Platforms>
|
||||||
|
<Platform value="Win32">True</Platform>
|
||||||
|
<Platform value="Win64">False</Platform>
|
||||||
|
</Platforms>
|
||||||
|
</BorlandProject>
|
||||||
|
<ProjectFileVersion>12</ProjectFileVersion>
|
||||||
|
</ProjectExtensions>
|
||||||
|
<Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/>
|
||||||
|
<Import Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj" Condition="Exists('$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj')"/>
|
||||||
|
</Project>
|
40
Example/TCryptManager/pExample.dproj.local
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<BorlandProject>
|
||||||
|
<Transactions>
|
||||||
|
<Transaction>1899.12.30 00:00:00.000.629,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\Unit1.pas</Transaction>
|
||||||
|
<Transaction>1899.12.30 00:00:00.000.911,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\Unit1.pas</Transaction>
|
||||||
|
<Transaction>1899.12.30 00:00:00.000.029,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\Unit1.pas</Transaction>
|
||||||
|
<Transaction>1899.12.30 00:00:00.000.228,C:\Users\Dennis G\Documents\RAD Studio\Projekte\Unit1.pas=C:\Users\Dennis G\Documents\RAD Studio\Projekte\LinaComponents\Example\TContextMenu\uMain.pas</Transaction>
|
||||||
|
<Transaction>1899.12.30 00:00:00.000.505,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\Unit1.pas</Transaction>
|
||||||
|
<Transaction>1899.12.30 00:00:00.000.438,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\Unit1.pas</Transaction>
|
||||||
|
<Transaction>1899.12.30 00:00:00.000.832,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\Unit1.pas</Transaction>
|
||||||
|
<Transaction>1899.12.30 00:00:00.000.376,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\Unit1.pas</Transaction>
|
||||||
|
<Transaction>1899.12.30 00:00:00.000.579,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\Unit1.pas</Transaction>
|
||||||
|
<Transaction>1899.12.30 00:00:00.000.086,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\Unit1.pas</Transaction>
|
||||||
|
<Transaction>1899.12.30 00:00:00.000.036,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\Unit1.pas</Transaction>
|
||||||
|
<Transaction>1899.12.30 00:00:00.000.283,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\Unit1.pas</Transaction>
|
||||||
|
<Transaction>1899.12.30 00:00:00.000.634,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\Unit1.pas</Transaction>
|
||||||
|
<Transaction>1899.12.30 00:00:00.000.044,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\Unit1.pas</Transaction>
|
||||||
|
<Transaction>1899.12.30 00:00:00.000.562,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\Unit1.pas</Transaction>
|
||||||
|
<Transaction>1899.12.30 00:00:00.000.012,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\Unit1.pas</Transaction>
|
||||||
|
<Transaction>1899.12.30 00:00:00.000.689,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\Unit1.pas</Transaction>
|
||||||
|
<Transaction>1899.12.30 00:00:00.000.779,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\Unit1.pas</Transaction>
|
||||||
|
<Transaction>1899.12.30 00:00:00.000.120,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\Unit1.pas</Transaction>
|
||||||
|
<Transaction>1899.12.30 00:00:00.000.963,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\Unit1.pas</Transaction>
|
||||||
|
<Transaction>1899.12.30 00:00:00.000.256,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\Unit1.pas</Transaction>
|
||||||
|
<Transaction>1899.12.30 00:00:00.000.169,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\Unit1.pas</Transaction>
|
||||||
|
<Transaction>1899.12.30 00:00:00.000.228,C:\Users\Dennis G\Documents\RAD Studio\Projekte\Unit1.dfm=C:\Users\Dennis G\Documents\RAD Studio\Projekte\LinaComponents\Example\TContextMenu\uMain.dfm</Transaction>
|
||||||
|
<Transaction>1899.12.30 00:00:00.000.191,C:\Users\Dennis G\Documents\RAD Studio\Projekte\Project1.dproj=C:\Users\Dennis G\Documents\RAD Studio\Projekte\LinaComponents\Example\TContextMenu\pExample.dproj</Transaction>
|
||||||
|
<Transaction>1899.12.30 00:00:00.000.028,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\Unit1.pas</Transaction>
|
||||||
|
<Transaction>1899.12.30 00:00:00.000.726,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\Unit1.pas</Transaction>
|
||||||
|
<Transaction>1899.12.30 00:00:00.000.541,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\Unit1.pas</Transaction>
|
||||||
|
<Transaction>1899.12.30 00:00:00.000.129,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\Unit1.pas</Transaction>
|
||||||
|
<Transaction>1899.12.30 00:00:00.000.165,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\Unit1.pas</Transaction>
|
||||||
|
<Transaction>1899.12.30 00:00:00.000.957,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\Unit1.pas</Transaction>
|
||||||
|
<Transaction>1899.12.30 00:00:00.000.106,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\Unit1.pas</Transaction>
|
||||||
|
<Transaction>1899.12.30 00:00:00.000.356,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\Unit1.pas</Transaction>
|
||||||
|
<Transaction>1899.12.30 00:00:00.000.177,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\Unit1.pas</Transaction>
|
||||||
|
<Transaction>1899.12.30 00:00:00.000.215,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\Unit1.pas</Transaction>
|
||||||
|
<Transaction>1899.12.30 00:00:00.000.333,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\Unit1.pas</Transaction>
|
||||||
|
</Transactions>
|
||||||
|
</BorlandProject>
|
BIN
Example/TCryptManager/pExample.exe
Normal file
BIN
Example/TCryptManager/pExample.identcache
Normal file
BIN
Example/TCryptManager/pExample.res
Normal file
100
Example/TCryptManager/uMain.dfm
Normal file
@@ -0,0 +1,100 @@
|
|||||||
|
object fmMain: TfmMain
|
||||||
|
Left = 0
|
||||||
|
Top = 0
|
||||||
|
BorderIcons = [biSystemMenu, biMinimize]
|
||||||
|
BorderStyle = bsSingle
|
||||||
|
Caption = 'LinaComponents "TCryptManager" Example'
|
||||||
|
ClientHeight = 281
|
||||||
|
ClientWidth = 761
|
||||||
|
Color = clBtnFace
|
||||||
|
Font.Charset = DEFAULT_CHARSET
|
||||||
|
Font.Color = clWindowText
|
||||||
|
Font.Height = -11
|
||||||
|
Font.Name = 'Tahoma'
|
||||||
|
Font.Style = []
|
||||||
|
OldCreateOrder = False
|
||||||
|
Position = poScreenCenter
|
||||||
|
OnCreate = FormCreate
|
||||||
|
PixelsPerInch = 96
|
||||||
|
TextHeight = 13
|
||||||
|
object mmDecrypted: TMemo
|
||||||
|
Left = 8
|
||||||
|
Top = 8
|
||||||
|
Width = 330
|
||||||
|
Height = 265
|
||||||
|
Lines.Strings = (
|
||||||
|
'This is a sample test to show the usability of the'
|
||||||
|
'"TCryptManager" component from Lina Components'
|
||||||
|
'for Delphi.')
|
||||||
|
ScrollBars = ssBoth
|
||||||
|
TabOrder = 0
|
||||||
|
WordWrap = False
|
||||||
|
end
|
||||||
|
object mmEncrypted: TMemo
|
||||||
|
Left = 425
|
||||||
|
Top = 8
|
||||||
|
Width = 330
|
||||||
|
Height = 265
|
||||||
|
ScrollBars = ssBoth
|
||||||
|
TabOrder = 1
|
||||||
|
WordWrap = False
|
||||||
|
end
|
||||||
|
object btEncrypt: TButton
|
||||||
|
Left = 344
|
||||||
|
Top = 87
|
||||||
|
Width = 75
|
||||||
|
Height = 25
|
||||||
|
Caption = 'Encrypt '#187
|
||||||
|
TabOrder = 2
|
||||||
|
OnClick = btEncryptClick
|
||||||
|
end
|
||||||
|
object rgMode: TRadioGroup
|
||||||
|
Left = 344
|
||||||
|
Top = 8
|
||||||
|
Width = 75
|
||||||
|
Height = 73
|
||||||
|
Caption = 'Mode'
|
||||||
|
Items.Strings = (
|
||||||
|
'Xor'
|
||||||
|
'Caesar'
|
||||||
|
'Vigenere')
|
||||||
|
TabOrder = 3
|
||||||
|
OnClick = rgModeClick
|
||||||
|
end
|
||||||
|
object btDecrypt: TButton
|
||||||
|
Left = 344
|
||||||
|
Top = 118
|
||||||
|
Width = 75
|
||||||
|
Height = 25
|
||||||
|
Caption = #171' Decrypt'
|
||||||
|
TabOrder = 4
|
||||||
|
OnClick = btDecryptClick
|
||||||
|
end
|
||||||
|
object leKey: TLabeledEdit
|
||||||
|
Left = 344
|
||||||
|
Top = 221
|
||||||
|
Width = 75
|
||||||
|
Height = 21
|
||||||
|
CharCase = ecUpperCase
|
||||||
|
EditLabel.Width = 22
|
||||||
|
EditLabel.Height = 13
|
||||||
|
EditLabel.Caption = 'Key:'
|
||||||
|
TabOrder = 5
|
||||||
|
OnChange = leKeyChange
|
||||||
|
OnContextPopup = leKeyContextPopup
|
||||||
|
OnKeyPress = leKeyKeyPress
|
||||||
|
end
|
||||||
|
object brGenerate: TButton
|
||||||
|
Left = 344
|
||||||
|
Top = 248
|
||||||
|
Width = 75
|
||||||
|
Height = 25
|
||||||
|
Caption = 'Generate'
|
||||||
|
TabOrder = 6
|
||||||
|
OnClick = brGenerateClick
|
||||||
|
end
|
||||||
|
object CryptManager: TCryptManager
|
||||||
|
Left = 704
|
||||||
|
Top = 8
|
||||||
|
end
|
||||||
|
end
|
105
Example/TCryptManager/uMain.pas
Normal file
@@ -0,0 +1,105 @@
|
|||||||
|
unit uMain;
|
||||||
|
|
||||||
|
//////////////////////////////////////
|
||||||
|
/// Lina Cryption Example ///
|
||||||
|
/// **************************** ///
|
||||||
|
/// (c) 2014 Dennis G�hlert a.o. ///
|
||||||
|
//////////////////////////////////////
|
||||||
|
|
||||||
|
{$IF CompilerVersion <> 26.0}
|
||||||
|
{$MESSAGE ERROR 'This example was written to compile under Delphi XE5'}
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
|
interface
|
||||||
|
|
||||||
|
uses
|
||||||
|
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
|
||||||
|
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, Vcl.StdCtrls, uBase,
|
||||||
|
uSysCtrls, uSysTools;
|
||||||
|
|
||||||
|
type
|
||||||
|
TfmMain = class(TForm)
|
||||||
|
mmDecrypted: TMemo;
|
||||||
|
mmEncrypted: TMemo;
|
||||||
|
btEncrypt: TButton;
|
||||||
|
rgMode: TRadioGroup;
|
||||||
|
btDecrypt: TButton;
|
||||||
|
leKey: TLabeledEdit;
|
||||||
|
CryptManager: TCryptManager;
|
||||||
|
brGenerate: TButton;
|
||||||
|
procedure rgModeClick(Sender: TObject);
|
||||||
|
procedure FormCreate(Sender: TObject);
|
||||||
|
procedure btEncryptClick(Sender: TObject);
|
||||||
|
procedure btDecryptClick(Sender: TObject);
|
||||||
|
procedure leKeyChange(Sender: TObject);
|
||||||
|
procedure leKeyKeyPress(Sender: TObject; var Key: Char);
|
||||||
|
procedure leKeyContextPopup(Sender: TObject; MousePos: TPoint;
|
||||||
|
var Handled: Boolean);
|
||||||
|
procedure brGenerateClick(Sender: TObject);
|
||||||
|
private
|
||||||
|
{ Private-Deklarationen }
|
||||||
|
public
|
||||||
|
{ Public-Deklarationen }
|
||||||
|
end;
|
||||||
|
|
||||||
|
var
|
||||||
|
fmMain: TfmMain;
|
||||||
|
|
||||||
|
implementation
|
||||||
|
|
||||||
|
{$R *.dfm}
|
||||||
|
|
||||||
|
procedure TfmMain.btEncryptClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
CryptManager.Decrypted.Assign(mmDecrypted.Lines);
|
||||||
|
mmEncrypted.Lines.Assign(CryptManager.Encrypted);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TfmMain.brGenerateClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
leKey.Text := CryptManager.GenerateKey;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TfmMain.btDecryptClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
CryptManager.Encrypted.Assign(mmEncrypted.Lines);
|
||||||
|
mmDecrypted.Lines.Assign(CryptManager.Decrypted);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TfmMain.FormCreate(Sender: TObject);
|
||||||
|
begin
|
||||||
|
rgMode.ItemIndex := 0;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TfmMain.leKeyChange(Sender: TObject);
|
||||||
|
begin
|
||||||
|
CryptManager.Key := leKey.Text;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TfmMain.leKeyContextPopup(Sender: TObject; MousePos: TPoint;
|
||||||
|
var Handled: Boolean);
|
||||||
|
begin
|
||||||
|
Handled := True;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TfmMain.leKeyKeyPress(Sender: TObject; var Key: Char);
|
||||||
|
begin
|
||||||
|
if (Key in Numbers + Letters) and (CryptManager.ValidKey(leKey.Text + Key) = False) then
|
||||||
|
begin
|
||||||
|
Key := #0;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TfmMain.rgModeClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
leKey.Clear;
|
||||||
|
leKey.NumbersOnly := rgMode.ItemIndex = 0;
|
||||||
|
leKey.MaxLength := Abs(BoolToInt(rgMode.ItemIndex = 1));
|
||||||
|
case rgMode.ItemIndex of
|
||||||
|
0: CryptManager.Mode := cmXor;
|
||||||
|
1: CryptManager.Mode := cmCaesar;
|
||||||
|
2: CryptManager.Mode := cmVigenere;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
end.
|
14
Example/TDelphiManager/pExample.dpr
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
program pExample;
|
||||||
|
|
||||||
|
uses
|
||||||
|
Vcl.Forms,
|
||||||
|
uMain in 'uMain.pas' {fmMain};
|
||||||
|
|
||||||
|
{$R *.res}
|
||||||
|
|
||||||
|
begin
|
||||||
|
Application.Initialize;
|
||||||
|
Application.MainFormOnTaskbar := True;
|
||||||
|
Application.CreateForm(TfmMain, fmMain);
|
||||||
|
Application.Run;
|
||||||
|
end.
|
170
Example/TDelphiManager/pExample.dproj
Normal file
@@ -0,0 +1,170 @@
|
|||||||
|
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<PropertyGroup>
|
||||||
|
<ProjectGuid>{B2F1BE7E-2745-4B2F-A4DE-CA83E5CC75C5}</ProjectGuid>
|
||||||
|
<ProjectVersion>15.3</ProjectVersion>
|
||||||
|
<FrameworkType>VCL</FrameworkType>
|
||||||
|
<MainSource>pExample.dpr</MainSource>
|
||||||
|
<Base>True</Base>
|
||||||
|
<Config Condition="'$(Config)'==''">Debug</Config>
|
||||||
|
<Platform Condition="'$(Platform)'==''">Win32</Platform>
|
||||||
|
<TargetedPlatforms>1</TargetedPlatforms>
|
||||||
|
<AppType>Application</AppType>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''">
|
||||||
|
<Base>true</Base>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Base)'=='true') or '$(Base_Win32)'!=''">
|
||||||
|
<Base_Win32>true</Base_Win32>
|
||||||
|
<CfgParent>Base</CfgParent>
|
||||||
|
<Base>true</Base>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="('$(Platform)'=='Win64' and '$(Base)'=='true') or '$(Base_Win64)'!=''">
|
||||||
|
<Base_Win64>true</Base_Win64>
|
||||||
|
<CfgParent>Base</CfgParent>
|
||||||
|
<Base>true</Base>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_1)'!=''">
|
||||||
|
<Cfg_1>true</Cfg_1>
|
||||||
|
<CfgParent>Base</CfgParent>
|
||||||
|
<Base>true</Base>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Cfg_1)'=='true') or '$(Cfg_1_Win32)'!=''">
|
||||||
|
<Cfg_1_Win32>true</Cfg_1_Win32>
|
||||||
|
<CfgParent>Cfg_1</CfgParent>
|
||||||
|
<Cfg_1>true</Cfg_1>
|
||||||
|
<Base>true</Base>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_2)'!=''">
|
||||||
|
<Cfg_2>true</Cfg_2>
|
||||||
|
<CfgParent>Base</CfgParent>
|
||||||
|
<Base>true</Base>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Base)'!=''">
|
||||||
|
<Icon_MainIcon>$(BDS)\bin\delphi_PROJECTICON.ico</Icon_MainIcon>
|
||||||
|
<DCC_Namespace>System;Xml;Data;Datasnap;Web;Soap;Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;$(DCC_Namespace)</DCC_Namespace>
|
||||||
|
<DCC_DcuOutput>.\$(Platform)\$(Config)</DCC_DcuOutput>
|
||||||
|
<DCC_ExeOutput>.\$(Platform)\$(Config)</DCC_ExeOutput>
|
||||||
|
<DCC_E>false</DCC_E>
|
||||||
|
<DCC_N>false</DCC_N>
|
||||||
|
<DCC_S>false</DCC_S>
|
||||||
|
<DCC_F>false</DCC_F>
|
||||||
|
<DCC_K>false</DCC_K>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Base_Win32)'!=''">
|
||||||
|
<DCC_Namespace>Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace>
|
||||||
|
<Manifest_File>$(BDS)\bin\default_app.manifest</Manifest_File>
|
||||||
|
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
|
||||||
|
<VerInfo_Locale>1033</VerInfo_Locale>
|
||||||
|
<VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=</VerInfo_Keys>
|
||||||
|
<DCC_UsePackage>JvBDE;JvGlobus;O408br;JvMM;JvManagedThreads;FireDACSqliteDriver;DBXSqliteDriver;AbbreviaVCL;FireDACPgDriver;VampyreImagingPackage.D2009;fmx;JvDlgs;IndySystem;JvCrypt;TeeDB;frx19;inetdbbde;vclib;DBXInterBaseDriver;GR32_DSGN_RSXE5;DataSnapCommon;MiscrosoftScriptControls;pkCindyDERDXE5;JvNet;JvDotNetCtrls;DbxCommonDriver;vclimg;dbxcds;PieLib;vclshlctrls;MetropolisUILiveTile;JvXPCtrls;pkCindyPackDXE5;vcldb;vcldsnap;pkCindyIEDXE5;fmxFireDAC;pkCindyDBXDXE5;CustomIPTransport;JvCore;SynEdit_RXE5;vclribbon;dsnap;IndyIPServer;fmxase;vcl;IndyCore;DebenuPDFLibraryLite;DCEF_XE5;CodeSiteExpressPkg;IndyIPCommon;CloudService;FmxTeeUI;FireDACIBDriver;JvAppFrm;JvDB;JvRuntimeDesign;inetdbxpress;webdsnap;frxe19;JclDeveloperTools;JvDocking;adortl;JvWizards;frxDB19;FireDACASADriver;JvHMI;bindcompfmx;JvBands;vcldbx;FireDACODBCDriver;rtl;dbrtl;DbxClientDriver;FireDACCommon;bindcomp;JvPluginSystem;Tee;JclContainers;JvCmp;vclFireDAC;JvSystem;xmlrtl;svnui;ibxpress;SVATimer_DXE5;JvControls;JvTimeFramework;IndyProtocols;DBXMySQLDriver;djsonrt;FireDACCommonDriver;O408_r;bindengine;vclactnband;soaprtl;bindcompdbx;TeeUI;FMXTee;bindcompvcl;JvStdCtrls;JvCustom;Jcl;vclie;JvJans;JvPageComps;JvPrintPreview;pkCindyDBCtrlsPackDXE5;FireDACADSDriver;vcltouch;LINA_D_XE5;VclSmp;FireDAC;VCLRESTComponents;Intraweb;GR32_RSXE5;dsnapcon;inet;fmxobj;JclVcl;JvPascalInterpreter;FireDACMySQLDriver;vclx;svn;fmxdae;RESTComponents;bdertl;FireDACMSAccDriver;dbexpress;IndyIPClient;$(DCC_UsePackage)</DCC_UsePackage>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Base_Win64)'!=''">
|
||||||
|
<DCC_UsePackage>O408br;FireDACSqliteDriver;DBXSqliteDriver;AbbreviaVCL;FireDACPgDriver;fmx;IndySystem;vclib;DBXInterBaseDriver;DataSnapCommon;DbxCommonDriver;vclimg;dbxcds;vclshlctrls;MetropolisUILiveTile;vcldb;vcldsnap;fmxFireDAC;CustomIPTransport;SynEdit_RXE5;vclribbon;dsnap;IndyIPServer;fmxase;vcl;IndyCore;IndyIPCommon;CloudService;FireDACIBDriver;inetdbxpress;webdsnap;adortl;FireDACASADriver;bindcompfmx;FireDACODBCDriver;rtl;dbrtl;DbxClientDriver;FireDACCommon;bindcomp;vclFireDAC;xmlrtl;ibxpress;IndyProtocols;DBXMySQLDriver;FireDACCommonDriver;O408_r;bindengine;vclactnband;soaprtl;bindcompdbx;bindcompvcl;vclie;FireDACADSDriver;vcltouch;LINA_D_XE5;VclSmp;FireDAC;VCLRESTComponents;Intraweb;dsnapcon;inet;fmxobj;FireDACMySQLDriver;vclx;fmxdae;RESTComponents;FireDACMSAccDriver;dbexpress;IndyIPClient;$(DCC_UsePackage)</DCC_UsePackage>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Cfg_1)'!=''">
|
||||||
|
<DCC_Define>DEBUG;$(DCC_Define)</DCC_Define>
|
||||||
|
<DCC_DebugDCUs>true</DCC_DebugDCUs>
|
||||||
|
<DCC_Optimize>false</DCC_Optimize>
|
||||||
|
<DCC_GenerateStackFrames>true</DCC_GenerateStackFrames>
|
||||||
|
<DCC_DebugInfoInExe>true</DCC_DebugInfoInExe>
|
||||||
|
<DCC_RemoteDebug>true</DCC_RemoteDebug>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Cfg_1_Win32)'!=''">
|
||||||
|
<DCC_RemoteDebug>false</DCC_RemoteDebug>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Cfg_2)'!=''">
|
||||||
|
<DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols>
|
||||||
|
<DCC_Define>RELEASE;$(DCC_Define)</DCC_Define>
|
||||||
|
<DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo>
|
||||||
|
<DCC_DebugInformation>0</DCC_DebugInformation>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<DelphiCompile Include="$(MainSource)">
|
||||||
|
<MainSource>MainSource</MainSource>
|
||||||
|
</DelphiCompile>
|
||||||
|
<DCCReference Include="uMain.pas">
|
||||||
|
<Form>fmMain</Form>
|
||||||
|
<FormType>dfm</FormType>
|
||||||
|
</DCCReference>
|
||||||
|
<BuildConfiguration Include="Release">
|
||||||
|
<Key>Cfg_2</Key>
|
||||||
|
<CfgParent>Base</CfgParent>
|
||||||
|
</BuildConfiguration>
|
||||||
|
<BuildConfiguration Include="Base">
|
||||||
|
<Key>Base</Key>
|
||||||
|
</BuildConfiguration>
|
||||||
|
<BuildConfiguration Include="Debug">
|
||||||
|
<Key>Cfg_1</Key>
|
||||||
|
<CfgParent>Base</CfgParent>
|
||||||
|
</BuildConfiguration>
|
||||||
|
</ItemGroup>
|
||||||
|
<ProjectExtensions>
|
||||||
|
<Borland.Personality>Delphi.Personality.12</Borland.Personality>
|
||||||
|
<Borland.ProjectType/>
|
||||||
|
<BorlandProject>
|
||||||
|
<Delphi.Personality>
|
||||||
|
<VersionInfo>
|
||||||
|
<VersionInfo Name="IncludeVerInfo">False</VersionInfo>
|
||||||
|
<VersionInfo Name="AutoIncBuild">False</VersionInfo>
|
||||||
|
<VersionInfo Name="MajorVer">1</VersionInfo>
|
||||||
|
<VersionInfo Name="MinorVer">0</VersionInfo>
|
||||||
|
<VersionInfo Name="Release">0</VersionInfo>
|
||||||
|
<VersionInfo Name="Build">0</VersionInfo>
|
||||||
|
<VersionInfo Name="Debug">False</VersionInfo>
|
||||||
|
<VersionInfo Name="PreRelease">False</VersionInfo>
|
||||||
|
<VersionInfo Name="Special">False</VersionInfo>
|
||||||
|
<VersionInfo Name="Private">False</VersionInfo>
|
||||||
|
<VersionInfo Name="DLL">False</VersionInfo>
|
||||||
|
<VersionInfo Name="Locale">1031</VersionInfo>
|
||||||
|
<VersionInfo Name="CodePage">1252</VersionInfo>
|
||||||
|
</VersionInfo>
|
||||||
|
<VersionInfoKeys>
|
||||||
|
<VersionInfoKeys Name="CompanyName"/>
|
||||||
|
<VersionInfoKeys Name="FileDescription"/>
|
||||||
|
<VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys>
|
||||||
|
<VersionInfoKeys Name="InternalName"/>
|
||||||
|
<VersionInfoKeys Name="LegalCopyright"/>
|
||||||
|
<VersionInfoKeys Name="LegalTrademarks"/>
|
||||||
|
<VersionInfoKeys Name="OriginalFilename"/>
|
||||||
|
<VersionInfoKeys Name="ProductName"/>
|
||||||
|
<VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys>
|
||||||
|
<VersionInfoKeys Name="Comments"/>
|
||||||
|
<VersionInfoKeys Name="CFBundleName"/>
|
||||||
|
<VersionInfoKeys Name="CFBundleDisplayName"/>
|
||||||
|
<VersionInfoKeys Name="UIDeviceFamily"/>
|
||||||
|
<VersionInfoKeys Name="CFBundleIdentifier"/>
|
||||||
|
<VersionInfoKeys Name="CFBundleVersion"/>
|
||||||
|
<VersionInfoKeys Name="CFBundlePackageType"/>
|
||||||
|
<VersionInfoKeys Name="CFBundleSignature"/>
|
||||||
|
<VersionInfoKeys Name="CFBundleAllowMixedLocalizations"/>
|
||||||
|
<VersionInfoKeys Name="UISupportedInterfaceOrientations"/>
|
||||||
|
<VersionInfoKeys Name="CFBundleExecutable"/>
|
||||||
|
<VersionInfoKeys Name="CFBundleResourceSpecification"/>
|
||||||
|
<VersionInfoKeys Name="LSRequiresIPhoneOS"/>
|
||||||
|
<VersionInfoKeys Name="CFBundleInfoDictionaryVersion"/>
|
||||||
|
<VersionInfoKeys Name="CFBundleDevelopmentRegion"/>
|
||||||
|
<VersionInfoKeys Name="package"/>
|
||||||
|
<VersionInfoKeys Name="label"/>
|
||||||
|
<VersionInfoKeys Name="versionCode"/>
|
||||||
|
<VersionInfoKeys Name="versionName"/>
|
||||||
|
<VersionInfoKeys Name="persistent"/>
|
||||||
|
<VersionInfoKeys Name="restoreAnyVersion"/>
|
||||||
|
<VersionInfoKeys Name="installLocation"/>
|
||||||
|
<VersionInfoKeys Name="largeHeap"/>
|
||||||
|
<VersionInfoKeys Name="theme"/>
|
||||||
|
</VersionInfoKeys>
|
||||||
|
<Source>
|
||||||
|
<Source Name="MainSource">pExample.dpr</Source>
|
||||||
|
</Source>
|
||||||
|
</Delphi.Personality>
|
||||||
|
<Deployment/>
|
||||||
|
<Platforms>
|
||||||
|
<Platform value="Win32">True</Platform>
|
||||||
|
<Platform value="Win64">False</Platform>
|
||||||
|
</Platforms>
|
||||||
|
</BorlandProject>
|
||||||
|
<ProjectFileVersion>12</ProjectFileVersion>
|
||||||
|
</ProjectExtensions>
|
||||||
|
<Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/>
|
||||||
|
<Import Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj" Condition="Exists('$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj')"/>
|
||||||
|
</Project>
|
40
Example/TDelphiManager/pExample.dproj.local
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<BorlandProject>
|
||||||
|
<Transactions>
|
||||||
|
<Transaction>1899.12.30 00:00:00.000.541,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\Unit1.pas</Transaction>
|
||||||
|
<Transaction>1899.12.30 00:00:00.000.177,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\Unit1.pas</Transaction>
|
||||||
|
<Transaction>1899.12.30 00:00:00.000.356,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\Unit1.pas</Transaction>
|
||||||
|
<Transaction>1899.12.30 00:00:00.000.333,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\Unit1.pas</Transaction>
|
||||||
|
<Transaction>1899.12.30 00:00:00.000.963,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\Unit1.pas</Transaction>
|
||||||
|
<Transaction>1899.12.30 00:00:00.000.120,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\Unit1.pas</Transaction>
|
||||||
|
<Transaction>1899.12.30 00:00:00.000.215,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\Unit1.pas</Transaction>
|
||||||
|
<Transaction>1899.12.30 00:00:00.000.165,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\Unit1.pas</Transaction>
|
||||||
|
<Transaction>1899.12.30 00:00:00.000.129,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\Unit1.pas</Transaction>
|
||||||
|
<Transaction>1899.12.30 00:00:00.000.106,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\Unit1.pas</Transaction>
|
||||||
|
<Transaction>1899.12.30 00:00:00.000.957,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\Unit1.pas</Transaction>
|
||||||
|
<Transaction>1899.12.30 00:00:00.000.779,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\Unit1.pas</Transaction>
|
||||||
|
<Transaction>1899.12.30 00:00:00.000.438,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\Unit1.pas</Transaction>
|
||||||
|
<Transaction>1899.12.30 00:00:00.000.169,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\Unit1.pas</Transaction>
|
||||||
|
<Transaction>1899.12.30 00:00:00.000.911,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\Unit1.pas</Transaction>
|
||||||
|
<Transaction>1899.12.30 00:00:00.000.726,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\Unit1.pas</Transaction>
|
||||||
|
<Transaction>1899.12.30 00:00:00.000.832,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\Unit1.pas</Transaction>
|
||||||
|
<Transaction>1899.12.30 00:00:00.000.029,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\Unit1.pas</Transaction>
|
||||||
|
<Transaction>1899.12.30 00:00:00.000.283,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\Unit1.pas</Transaction>
|
||||||
|
<Transaction>1899.12.30 00:00:00.000.036,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\Unit1.pas</Transaction>
|
||||||
|
<Transaction>1899.12.30 00:00:00.000.579,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\Unit1.pas</Transaction>
|
||||||
|
<Transaction>1899.12.30 00:00:00.000.376,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\Unit1.pas</Transaction>
|
||||||
|
<Transaction>1899.12.30 00:00:00.000.191,C:\Users\Dennis G\Documents\RAD Studio\Projekte\LinaComponents\Example\TContextMenu\pExample.dproj=C:\Users\Dennis G\Documents\RAD Studio\Projekte\Project1.dproj</Transaction>
|
||||||
|
<Transaction>1899.12.30 00:00:00.000.228,C:\Users\Dennis G\Documents\RAD Studio\Projekte\LinaComponents\Example\TContextMenu\uMain.pas=C:\Users\Dennis G\Documents\RAD Studio\Projekte\Unit1.pas</Transaction>
|
||||||
|
<Transaction>1899.12.30 00:00:00.000.086,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\Unit1.pas</Transaction>
|
||||||
|
<Transaction>1899.12.30 00:00:00.000.228,C:\Users\Dennis G\Documents\RAD Studio\Projekte\LinaComponents\Example\TContextMenu\uMain.dfm=C:\Users\Dennis G\Documents\RAD Studio\Projekte\Unit1.dfm</Transaction>
|
||||||
|
<Transaction>1899.12.30 00:00:00.000.634,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\Unit1.pas</Transaction>
|
||||||
|
<Transaction>1899.12.30 00:00:00.000.256,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\Unit1.pas</Transaction>
|
||||||
|
<Transaction>1899.12.30 00:00:00.000.505,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\Unit1.pas</Transaction>
|
||||||
|
<Transaction>1899.12.30 00:00:00.000.028,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\Unit1.pas</Transaction>
|
||||||
|
<Transaction>1899.12.30 00:00:00.000.629,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\Unit1.pas</Transaction>
|
||||||
|
<Transaction>1899.12.30 00:00:00.000.562,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\Unit1.pas</Transaction>
|
||||||
|
<Transaction>1899.12.30 00:00:00.000.044,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\Unit1.pas</Transaction>
|
||||||
|
<Transaction>1899.12.30 00:00:00.000.689,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\Unit1.pas</Transaction>
|
||||||
|
<Transaction>1899.12.30 00:00:00.000.012,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\Unit1.pas</Transaction>
|
||||||
|
</Transactions>
|
||||||
|
</BorlandProject>
|
BIN
Example/TDelphiManager/pExample.exe
Normal file
BIN
Example/TDelphiManager/pExample.identcache
Normal file
BIN
Example/TDelphiManager/pExample.res
Normal file
80
Example/TDelphiManager/uMain.dfm
Normal file
@@ -0,0 +1,80 @@
|
|||||||
|
object fmMain: TfmMain
|
||||||
|
Left = 0
|
||||||
|
Top = 0
|
||||||
|
BorderIcons = [biSystemMenu, biMinimize]
|
||||||
|
BorderStyle = bsSingle
|
||||||
|
Caption = 'LinaComponents "TDelphiManager" Example'
|
||||||
|
ClientHeight = 219
|
||||||
|
ClientWidth = 474
|
||||||
|
Color = clBtnFace
|
||||||
|
Font.Charset = DEFAULT_CHARSET
|
||||||
|
Font.Color = clWindowText
|
||||||
|
Font.Height = -11
|
||||||
|
Font.Name = 'Tahoma'
|
||||||
|
Font.Style = []
|
||||||
|
OldCreateOrder = False
|
||||||
|
Position = poScreenCenter
|
||||||
|
OnCreate = FormCreate
|
||||||
|
PixelsPerInch = 96
|
||||||
|
TextHeight = 13
|
||||||
|
object rgVersions: TRadioGroup
|
||||||
|
Left = 8
|
||||||
|
Top = 8
|
||||||
|
Width = 371
|
||||||
|
Height = 185
|
||||||
|
Caption = 'Installed Delphi versions'
|
||||||
|
TabOrder = 0
|
||||||
|
end
|
||||||
|
object pnButtons: TPanel
|
||||||
|
Left = 385
|
||||||
|
Top = 0
|
||||||
|
Width = 89
|
||||||
|
Height = 200
|
||||||
|
Align = alRight
|
||||||
|
TabOrder = 1
|
||||||
|
ExplicitHeight = 201
|
||||||
|
object btLaunch: TButton
|
||||||
|
Left = 8
|
||||||
|
Top = 168
|
||||||
|
Width = 75
|
||||||
|
Height = 25
|
||||||
|
Caption = 'Launch'
|
||||||
|
Default = True
|
||||||
|
TabOrder = 2
|
||||||
|
OnClick = btLaunchClick
|
||||||
|
end
|
||||||
|
object btRefresh: TButton
|
||||||
|
Left = 8
|
||||||
|
Top = 8
|
||||||
|
Width = 75
|
||||||
|
Height = 25
|
||||||
|
Caption = 'Refresh'
|
||||||
|
TabOrder = 0
|
||||||
|
OnClick = btRefreshClick
|
||||||
|
end
|
||||||
|
object btInfo: TButton
|
||||||
|
Left = 8
|
||||||
|
Top = 137
|
||||||
|
Width = 75
|
||||||
|
Height = 25
|
||||||
|
Caption = 'Info'
|
||||||
|
TabOrder = 1
|
||||||
|
OnClick = btInfoClick
|
||||||
|
end
|
||||||
|
end
|
||||||
|
object StatusBar: TStatusBar
|
||||||
|
Left = 0
|
||||||
|
Top = 200
|
||||||
|
Width = 474
|
||||||
|
Height = 19
|
||||||
|
Panels = <>
|
||||||
|
SimplePanel = True
|
||||||
|
ExplicitLeft = 192
|
||||||
|
ExplicitTop = 208
|
||||||
|
ExplicitWidth = 0
|
||||||
|
end
|
||||||
|
object DelphiManager: TDelphiManager
|
||||||
|
Left = 40
|
||||||
|
Top = 32
|
||||||
|
end
|
||||||
|
end
|
93
Example/TDelphiManager/uMain.pas
Normal file
@@ -0,0 +1,93 @@
|
|||||||
|
unit uMain;
|
||||||
|
|
||||||
|
//////////////////////////////////////
|
||||||
|
/// Lina Delphi Manager Example ///
|
||||||
|
/// **************************** ///
|
||||||
|
/// (c) 2014 Dennis G�hlert a.o. ///
|
||||||
|
//////////////////////////////////////
|
||||||
|
|
||||||
|
{$IF CompilerVersion <> 26.0}
|
||||||
|
{$MESSAGE ERROR 'This example was written to compile under Delphi XE5'}
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
|
interface
|
||||||
|
|
||||||
|
uses
|
||||||
|
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
|
||||||
|
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls, uBase,
|
||||||
|
uSysCtrls, Vcl.ComCtrls;
|
||||||
|
|
||||||
|
type
|
||||||
|
TfmMain = class(TForm)
|
||||||
|
rgVersions: TRadioGroup;
|
||||||
|
pnButtons: TPanel;
|
||||||
|
btLaunch: TButton;
|
||||||
|
btRefresh: TButton;
|
||||||
|
DelphiManager: TDelphiManager;
|
||||||
|
btInfo: TButton;
|
||||||
|
StatusBar: TStatusBar;
|
||||||
|
procedure FormCreate(Sender: TObject);
|
||||||
|
procedure btRefreshClick(Sender: TObject);
|
||||||
|
procedure btLaunchClick(Sender: TObject);
|
||||||
|
procedure btInfoClick(Sender: TObject);
|
||||||
|
private
|
||||||
|
{ Private-Deklarationen }
|
||||||
|
public
|
||||||
|
{ Public-Deklarationen }
|
||||||
|
end;
|
||||||
|
|
||||||
|
var
|
||||||
|
fmMain: TfmMain;
|
||||||
|
|
||||||
|
implementation
|
||||||
|
|
||||||
|
{$R *.dfm}
|
||||||
|
|
||||||
|
procedure TfmMain.btInfoClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
MessageDlg(DelphiVersionToFullName(NameToDelphiVersion(rgVersions.Items.Strings[rgVersions.ItemIndex])) +
|
||||||
|
sLineBreak + 'Code name: ' + DelphiVersionToCodeName(NameToDelphiVersion(rgVersions.Items.Strings[rgVersions.ItemIndex])) +
|
||||||
|
sLineBreak + 'Product version: ' + IntToStr(DelphiVersionToProductVersion(NameToDelphiVersion(rgVersions.Items.Strings[rgVersions.ItemIndex]))) +
|
||||||
|
sLineBreak + 'Package version: ' + IntToStr(DelphiVersionToPackageVersion(NameToDelphiVersion(rgVersions.Items.Strings[rgVersions.ItemIndex]))),
|
||||||
|
mtInformation,[mbOK],0);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TfmMain.btLaunchClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
DelphiManager.Launch(NameToDelphiVersion(rgVersions.Items.Strings[rgVersions.ItemIndex]));
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TfmMain.btRefreshClick(Sender: TObject);
|
||||||
|
var
|
||||||
|
Installed: TDelphiVersions;
|
||||||
|
Index: TDelphiVersion;
|
||||||
|
begin
|
||||||
|
rgVersions.Items.Clear;
|
||||||
|
Installed := DelphiManager.Installed;
|
||||||
|
for Index := Low(TDelphiVersion) to High(TDelphiVersion) do
|
||||||
|
begin
|
||||||
|
if Index in Installed then
|
||||||
|
begin
|
||||||
|
rgVersions.Items.Add(DelphiVersionToName(Index));
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
if rgVersions.Items.Count <> 0 then
|
||||||
|
begin
|
||||||
|
rgVersions.ItemIndex := 0;
|
||||||
|
btInfo.Enabled := True;
|
||||||
|
btLaunch.Enabled := True;
|
||||||
|
end else
|
||||||
|
begin
|
||||||
|
rgVersions.ItemIndex := -1;
|
||||||
|
btInfo.Enabled := False;
|
||||||
|
btLaunch.Enabled := False;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TfmMain.FormCreate(Sender: TObject);
|
||||||
|
begin
|
||||||
|
StatusBar.SimpleText := 'Built with ' + DelphiManager.VersionFullName + ' "' + DelphiManager.VersionCodeName + '" and Lina Components v' + FloatToStr(DelphiManager.LinaVersion) + ' for ' + DelphiManager.LocalPlatformFullName;
|
||||||
|
btRefresh.Click;
|
||||||
|
end;
|
||||||
|
|
||||||
|
end.
|
@@ -31,7 +31,6 @@ object Form1: TForm1
|
|||||||
Height = 41
|
Height = 41
|
||||||
Align = alBottom
|
Align = alBottom
|
||||||
TabOrder = 0
|
TabOrder = 0
|
||||||
ExplicitTop = 139
|
|
||||||
object btClose: TButton
|
object btClose: TButton
|
||||||
Left = 8
|
Left = 8
|
||||||
Top = 8
|
Top = 8
|
||||||
@@ -112,7 +111,7 @@ object Form1: TForm1
|
|||||||
Indent = 'Coding'
|
Indent = 'Coding'
|
||||||
Field = 'Caption'
|
Field = 'Caption'
|
||||||
end>
|
end>
|
||||||
Left = 240
|
Left = 280
|
||||||
Top = 32
|
Top = 24
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@@ -52,8 +52,13 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TForm1.btHelloClick(Sender: TObject);
|
procedure TForm1.btHelloClick(Sender: TObject);
|
||||||
|
//var g: TLocalizationGenerator;
|
||||||
begin
|
begin
|
||||||
ShowMessage(HelloWorld);
|
//g := TLocalizationGenerator.Create(LocalizationManager.Data);
|
||||||
|
// ShowMessage(HelloWorld);
|
||||||
|
//showmessage(g.Localization.Lines.Text);
|
||||||
|
//g.Free;
|
||||||
|
showmessage((localizationmanager.Localizations.Items[LocalizationManager.Current] as TLocalization).Name);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TForm1.coEncodingChange(Sender: TObject);
|
procedure TForm1.coEncodingChange(Sender: TObject);
|
||||||
@@ -75,12 +80,12 @@ end;
|
|||||||
procedure TForm1.FormCreate(Sender: TObject);
|
procedure TForm1.FormCreate(Sender: TObject);
|
||||||
var
|
var
|
||||||
Index: Integer;
|
Index: Integer;
|
||||||
LanguageFiles: TStrings;
|
// LanguageFiles: TStrings;
|
||||||
begin
|
begin
|
||||||
LocalizationManager.References.Add;
|
LocalizationManager.References.Add;
|
||||||
HelloWorld := 'Hello,' + #10 + 'World!';
|
HelloWorld := 'Hello,' + #10 + 'World!';
|
||||||
(LocalizationManager.References.Items[0] as TLocalizationReference).Reference := @HelloWorld;
|
(LocalizationManager.References.Items[0] as TLocalizationReference).Reference := @HelloWorld;
|
||||||
LanguageFiles := TStringList.Create;
|
{LanguageFiles := TStringList.Create;
|
||||||
ListFiles(ExtractFileDir(Application.ExeName),LanguageFiles,['*.loc']);
|
ListFiles(ExtractFileDir(Application.ExeName),LanguageFiles,['*.loc']);
|
||||||
lbLanguage.Items.Assign(LanguageFiles);
|
lbLanguage.Items.Assign(LanguageFiles);
|
||||||
for Index := 0 to LanguageFiles.Count - 1 do
|
for Index := 0 to LanguageFiles.Count - 1 do
|
||||||
@@ -92,7 +97,12 @@ begin
|
|||||||
// if (LocalizationManager.Localizations.Items[Index] as TLocalization).Lines.DefaultEncoding = TEncoding.ANSI then showmessage('');
|
// if (LocalizationManager.Localizations.Items[Index] as TLocalization).Lines.DefaultEncoding = TEncoding.ANSI then showmessage('');
|
||||||
// TLocalization(LocalizationManager.Localizations.Items[Index]).Encoding := ceANSI;
|
// TLocalization(LocalizationManager.Localizations.Items[Index]).Encoding := ceANSI;
|
||||||
end;
|
end;
|
||||||
//LocalizationManager.Applier.ApplyMode := laMainForm;
|
//LocalizationManager.Applier.ApplyMode := laMainForm; }
|
||||||
|
LocalizationManager.Localizations.LoadFromDirectory(ExtractFileDir(Application.ExeName),['*.loc']);
|
||||||
|
for Index := 0 to LocalizationManager.Localizations.Count - 1 do
|
||||||
|
begin
|
||||||
|
lbLanguage.Items.Add((LocalizationManager.Localizations.Items[Index] as TLocalization).Name);
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TForm1.lbLanguageClick(Sender: TObject);
|
procedure TForm1.lbLanguageClick(Sender: TObject);
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
These statistics cover the official repository of Lina Components.
|
These statistics cover the official repository of Lina Components.
|
||||||
|
|
||||||
Total lines of code (LoC): 10300+
|
Total lines of code (LoC): 12000+
|
||||||
Total visual components (VC): 17
|
Total visual components (VC): 20
|
@@ -41,7 +41,7 @@ package LINA_D_XE5;
|
|||||||
requires
|
requires
|
||||||
rtl,
|
rtl,
|
||||||
vcl,
|
vcl,
|
||||||
dbrtl,
|
vclx,
|
||||||
PascalScript_Core_D19,
|
PascalScript_Core_D19,
|
||||||
IndySystem,
|
IndySystem,
|
||||||
IndyProtocols,
|
IndyProtocols,
|
||||||
@@ -60,7 +60,9 @@ contains
|
|||||||
uAdvCtrls in '..\..\Source\uAdvCtrls.pas',
|
uAdvCtrls in '..\..\Source\uAdvCtrls.pas',
|
||||||
uWebCtrls in '..\..\Source\uWebCtrls.pas',
|
uWebCtrls in '..\..\Source\uWebCtrls.pas',
|
||||||
uFileCtrls in '..\..\Source\uFileCtrls.pas',
|
uFileCtrls in '..\..\Source\uFileCtrls.pas',
|
||||||
uInit in '..\..\Source\uInit.pas',
|
{$IFDEF WIN32}
|
||||||
|
uInit in '..\..\Source\uInit.pas',
|
||||||
|
{$ENDIF}
|
||||||
uCalc in '..\..\Source\uCalc.pas';
|
uCalc in '..\..\Source\uCalc.pas';
|
||||||
|
|
||||||
end.
|
end.
|
||||||
|
@@ -115,7 +115,7 @@
|
|||||||
<DCCReference Include="..\..\Resource\Compiled\uWebCtrls.dcr"/>
|
<DCCReference Include="..\..\Resource\Compiled\uWebCtrls.dcr"/>
|
||||||
<DCCReference Include="rtl.dcp"/>
|
<DCCReference Include="rtl.dcp"/>
|
||||||
<DCCReference Include="vcl.dcp"/>
|
<DCCReference Include="vcl.dcp"/>
|
||||||
<DCCReference Include="dbrtl.dcp"/>
|
<DCCReference Include="vclx.dcp"/>
|
||||||
<DCCReference Include="PascalScript_Core_D19.dcp"/>
|
<DCCReference Include="PascalScript_Core_D19.dcp"/>
|
||||||
<DCCReference Include="IndySystem.dcp"/>
|
<DCCReference Include="IndySystem.dcp"/>
|
||||||
<DCCReference Include="IndyProtocols.dcp"/>
|
<DCCReference Include="IndyProtocols.dcp"/>
|
||||||
|
@@ -1,50 +1,53 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<BorlandProject>
|
<BorlandProject>
|
||||||
<Transactions>
|
<Transactions>
|
||||||
<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.809,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\LinaComponents\Resource\Lina.rc</Transaction>
|
|
||||||
<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.508,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\LinaComponents\Source\uBase.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.576,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\LinaComponents\Source\uSysTools.pas</Transaction>
|
||||||
<Transaction>1899.12.30 00:00:00.000.325,=dbrtl.dcp</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.674,=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.592,=C:\Users\Dennis\Documents\RAD Studio\Projekte\LinaComponents\uFileTools.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.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.508,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\LinaComponents\Source\uBase.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.318,=vcl.dcp</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.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.143,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\LinaComponents\Package\Delphi_XE5\Untitled1.htm</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.518,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\LinaComponents\Source\uBattery.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.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.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.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.675,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\LinaComponents\Package\Delphi_XE5\Unit1.pas</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.325,=dbrtl.dcp</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.934,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\LinaComponents\Source\Config.inc</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.621,=C:\Users\Dennis\Documents\RAD Studio\Projekte\LinaComponents\uLinaTest.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.577,=C:\Users\Dennis\Documents\RAD Studio\Projekte\LinaComponents\uBattery.pas</Transaction>
|
||||||
|
<Transaction>1899.12.30 00:00:00.000.861,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\LinaComponents\Package\Settings.inc</Transaction>
|
||||||
|
<Transaction>1899.12.30 00:00:00.000.318,=vcl.dcp</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.648,=C:\Users\Dennis\Documents\RAD Studio\Projekte\LinaComponents\uScriptMgr.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.938,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\LinaComponents\Source\Config.inc</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.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.143,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\LinaComponents\Package\Delphi_XE5\Untitled1.htm</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.412,=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.971,=IndySystem.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.555,=C:\Users\Dennis\Documents\RAD Studio\Projekte\LinaComponents\uBase.pas</Transaction>
|
||||||
<Transaction>1899.12.30 00:00:00.000.196,=rtl.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.584,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\LinaComponents\Source\uVirtObj.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.686,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\LinaComponents\uSysTools.pas</Transaction>
|
||||||
|
<Transaction>1899.12.30 00:00:00.000.196,=rtl.dcp</Transaction>
|
||||||
<Transaction>1899.12.30 00:00:00.000.075,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\LinaComponents\Source\uCalc.pas</Transaction>
|
<Transaction>1899.12.30 00:00:00.000.075,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\LinaComponents\Source\uCalc.pas</Transaction>
|
||||||
<Transaction>1899.12.30 00:00:00.000.118,=IndyCore.dcp</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.535,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\LinaComponents\Source\uFileTools.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.633,=C:\Users\Dennis\Documents\RAD Studio\Projekte\LinaComponents\uLocalMgr.pas</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.525,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\LinaComponents\Source\uCrypt.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.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.173,C:\Users\Dennis G\Documents\RAD Studio\Projekte\LinaComponents\Package\Delphi_XE5\Unit1.pas=C:\Users\Dennis G\Documents\RAD Studio\Projekte\LinaComponents\Source\uInit.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.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.566,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\LinaComponents\Source\uScriptMgr.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.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.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.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.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.674,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\LinaComponents\Package\Delphi_XE5\Unit1.pas</Transaction>
|
||||||
|
<Transaction>1899.12.30 00:00:00.000.173,C:\Users\Dennis G\Documents\RAD Studio\Projekte\LinaComponents\Package\Delphi_XE5\Unit1.pas=C:\Users\Dennis G\Documents\RAD Studio\Projekte\LinaComponents\Source\uInit.pas</Transaction>
|
||||||
<Transaction>1899.12.30 00:00:00.000.857,=PascalScript_Core_D19.dcp</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.045,=IndyProtocols.dcp</Transaction>
|
||||||
<Transaction>1899.12.30 00:00:00.000.799,=PascalScript_Core_D19.dcp</Transaction>
|
<Transaction>1899.12.30 00:00:00.000.799,=PascalScript_Core_D19.dcp</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.546,=C:\Users\Dennis G\Documents\RAD Studio\Projekte\LinaComponents\Source\uFrmCtrls.pas</Transaction>
|
||||||
</Transactions>
|
</Transactions>
|
||||||
<ProjectSortOrder AutoSort="0" SortType="0">
|
<ProjectSortOrder AutoSort="0" SortType="0">
|
||||||
<File Path="..\..\..\LinaComponents"/>
|
<File Path="..\..\..\LinaComponents"/>
|
||||||
@@ -75,12 +78,12 @@
|
|||||||
<File Path="..\..\Source\uSysTools.pas"/>
|
<File Path="..\..\Source\uSysTools.pas"/>
|
||||||
<File Path="..\..\Source\uVirtObj.pas"/>
|
<File Path="..\..\Source\uVirtObj.pas"/>
|
||||||
<File Path="..\..\Source\uWebCtrls.pas"/>
|
<File Path="..\..\Source\uWebCtrls.pas"/>
|
||||||
<File Path="dbrtl.dcp"/>
|
|
||||||
<File Path="IndyCore.dcp"/>
|
<File Path="IndyCore.dcp"/>
|
||||||
<File Path="IndyProtocols.dcp"/>
|
<File Path="IndyProtocols.dcp"/>
|
||||||
<File Path="IndySystem.dcp"/>
|
<File Path="IndySystem.dcp"/>
|
||||||
<File Path="PascalScript_Core_D19.dcp"/>
|
<File Path="PascalScript_Core_D19.dcp"/>
|
||||||
<File Path="rtl.dcp"/>
|
<File Path="rtl.dcp"/>
|
||||||
<File Path="vcl.dcp"/>
|
<File Path="vcl.dcp"/>
|
||||||
|
<File Path="vclx.dcp"/>
|
||||||
</ProjectSortOrder>
|
</ProjectSortOrder>
|
||||||
</BorlandProject>
|
</BorlandProject>
|
||||||
|
BIN
Resource/Bitmap/Large/TCryptManager.bmp
Normal file
After Width: | Height: | Size: 2.1 KiB |
BIN
Resource/Bitmap/Large/TDelphiManager.bmp
Normal file
After Width: | Height: | Size: 2.1 KiB |
BIN
Resource/Bitmap/Large/TStringContainer.bmp
Normal file
After Width: | Height: | Size: 2.1 KiB |
BIN
Resource/Bitmap/Large/TValueEdit.bmp
Normal file
After Width: | Height: | Size: 2.1 KiB |
BIN
Resource/Bitmap/Small/TCryptManager.bmp
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
Resource/Bitmap/Small/TDelphiManager.bmp
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
Resource/Bitmap/Small/TSizePanel.bmp
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
Resource/Bitmap/Small/TStringContainer.bmp
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
Resource/Bitmap/TCryptManager.bmp
Normal file
After Width: | Height: | Size: 1.6 KiB |
BIN
Resource/Bitmap/TDelphiManager.bmp
Normal file
After Width: | Height: | Size: 1.6 KiB |
BIN
Resource/Bitmap/TStringContainer.bmp
Normal file
After Width: | Height: | Size: 1.6 KiB |
BIN
Resource/Bitmap/TValueEdit.bmp
Normal file
After Width: | Height: | Size: 1.6 KiB |
@@ -14,9 +14,15 @@ TCOMPONENTMANAGER32 BITMAP "Bitmap\Large\TComponentManager.bmp"
|
|||||||
TCONTEXTMENU BITMAP "Bitmap\TContextMenu.bmp"
|
TCONTEXTMENU BITMAP "Bitmap\TContextMenu.bmp"
|
||||||
TCONTEXTMENU16 BITMAP "Bitmap\Small\TContextMenu.bmp"
|
TCONTEXTMENU16 BITMAP "Bitmap\Small\TContextMenu.bmp"
|
||||||
TCONTEXTMENU32 BITMAP "Bitmap\Large\TContextMenu.bmp"
|
TCONTEXTMENU32 BITMAP "Bitmap\Large\TContextMenu.bmp"
|
||||||
|
TCRYPTMANAGER BITMAP "Bitmap\TCryptManager.bmp"
|
||||||
|
TCRYPTMANAGER16 BITMAP "Bitmap\Small\TCryptManager.bmp"
|
||||||
|
TCRYPTMANAGER32 BITMAP "Bitmap\Large\TCryptManager.bmp"
|
||||||
TCURSORFIX BITMAP "Bitmap\TCursorFix.bmp"
|
TCURSORFIX BITMAP "Bitmap\TCursorFix.bmp"
|
||||||
TCURSORFIX16 BITMAP "Bitmap\Small\TCursorFix.bmp"
|
TCURSORFIX16 BITMAP "Bitmap\Small\TCursorFix.bmp"
|
||||||
TCURSORFIX32 BITMAP "Bitmap\Large\TCursorFix.bmp"
|
TCURSORFIX32 BITMAP "Bitmap\Large\TCursorFix.bmp"
|
||||||
|
TDELPHIMANAGER BITMAP "Bitmap\TDelphiManager.bmp"
|
||||||
|
TDELPHIMANAGER16 BITMAP "Bitmap\Small\TDelphiManager.bmp"
|
||||||
|
TDELPHIMANAGER32 BITMAP "Bitmap\Large\TDelphiManager.bmp"
|
||||||
TDOWNLOAD BITMAP "Bitmap\TDownload.bmp"
|
TDOWNLOAD BITMAP "Bitmap\TDownload.bmp"
|
||||||
TDOWNLOAD16 BITMAP "Bitmap\Small\TDownload.bmp"
|
TDOWNLOAD16 BITMAP "Bitmap\Small\TDownload.bmp"
|
||||||
TDOWNLOAD32 BITMAP "Bitmap\Large\TDownload.bmp"
|
TDOWNLOAD32 BITMAP "Bitmap\Large\TDownload.bmp"
|
||||||
@@ -41,9 +47,18 @@ TSCROLLLISTBOX32 BITMAP "Bitmap\Large\TScrollListBox.bmp"
|
|||||||
TSHORTCUTLABEL BITMAP "Bitmap\TShortcutLabel.bmp"
|
TSHORTCUTLABEL BITMAP "Bitmap\TShortcutLabel.bmp"
|
||||||
TSHORTCUTLABEL16 BITMAP "Bitmap\Small\TShortcutLabel.bmp"
|
TSHORTCUTLABEL16 BITMAP "Bitmap\Small\TShortcutLabel.bmp"
|
||||||
TSHORTCUTLABEL32 BITMAP "Bitmap\Large\TShortcutLabel.bmp"
|
TSHORTCUTLABEL32 BITMAP "Bitmap\Large\TShortcutLabel.bmp"
|
||||||
|
TSIZEPANEL BITMAP "Bitmap\TSizePanel.bmp"
|
||||||
|
TSIZEPANEL16 BITMAP "Bitmap\Small\TSizePanel.bmp"
|
||||||
|
TSIZEPANEL32 BITMAP "Bitmap\Large\TSizePanel.bmp"
|
||||||
TSPLASHSCREEN BITMAP "Bitmap\TSplashScreen.bmp"
|
TSPLASHSCREEN BITMAP "Bitmap\TSplashScreen.bmp"
|
||||||
TSPLASHSCREEN16 BITMAP "Bitmap\Small\TSplashScreen.bmp"
|
TSPLASHSCREEN16 BITMAP "Bitmap\Small\TSplashScreen.bmp"
|
||||||
TSPLASHSCREEN32 BITMAP "Bitmap\Large\TSplashScreen.bmp"
|
TSPLASHSCREEN32 BITMAP "Bitmap\Large\TSplashScreen.bmp"
|
||||||
|
TSTRINGCONTAINER BITMAP "Bitmap\TStringContainer.bmp"
|
||||||
|
TSTRINGCONTAINER16 BITMAP "Bitmap\Small\TStringContainer.bmp"
|
||||||
|
TSTRINGCONTAINER32 BITMAP "Bitmap\Large\TStringContainer.bmp"
|
||||||
|
TVALUEEDIT BITMAP "Bitmap\TValueEdit.bmp"
|
||||||
|
TVALUEEDIT16 BITMAP "Bitmap\Small\TValueEdit.bmp"
|
||||||
|
TVALUEEDIT32 BITMAP "Bitmap\Large\TValueEdit.bmp"
|
||||||
TVIRTUALPROGRAM BITMAP "Bitmap\TVirtualProgram.bmp"
|
TVIRTUALPROGRAM BITMAP "Bitmap\TVirtualProgram.bmp"
|
||||||
TVIRTUALPROGRAM16 BITMAP "Bitmap\Small\TVirtualProgram.bmp"
|
TVIRTUALPROGRAM16 BITMAP "Bitmap\Small\TVirtualProgram.bmp"
|
||||||
TVIRTUALPROGRAM32 BITMAP "Bitmap\Large\TVirtualProgram.bmp"
|
TVIRTUALPROGRAM32 BITMAP "Bitmap\Large\TVirtualProgram.bmp"
|
76
Source/Config.inc
Normal file
@@ -0,0 +1,76 @@
|
|||||||
|
//////////////////////////////////////
|
||||||
|
/// Lina Configuration File ///
|
||||||
|
/// **************************** ///
|
||||||
|
/// (c) 2015 Dennis G�hlert a.o. ///
|
||||||
|
//////////////////////////////////////
|
||||||
|
|
||||||
|
{$DEFINE LINA}
|
||||||
|
{ Globale Einstellungen }
|
||||||
|
{$DEFINE ADD_SPLASHENTRY}
|
||||||
|
{$DEFINE ADD_ABOUTENTRY}
|
||||||
|
{$DEFINE ADD_COMPONENTREG}
|
||||||
|
{$DEFINE ADD_SINGLECATEGORY}
|
||||||
|
{$DEFINE WARN_INCOMPATIBLEPLATFORM}
|
||||||
|
{$DEFINE WARN_INCOMPATIBLECOMPILER}
|
||||||
|
{$DEFINE WARN_INCOMPATIBLEVERSION}
|
||||||
|
{ Globale Einschr�nkungen }
|
||||||
|
{$IFDEF CONDITIONALEXPRESSIONS}
|
||||||
|
{$IF (NOT Defined(DCC)) AND Defined(WARN_INCOMPATIBLECOMPILER)}
|
||||||
|
{ Nur der Delphi-Compiler wird (offiziell) unterst�tzt. }
|
||||||
|
{$MESSAGE ERROR 'Lina Components requires Delphi'}
|
||||||
|
{$IFEND}
|
||||||
|
{$IF (NOT Defined(MSWINDOWS)) AND Defined(WARN_INCOMPATIBLECOMPILER)}
|
||||||
|
{ Nur Windows wird (offiziell) als Ziel-Platform unterst�tzt. }
|
||||||
|
{$MESSAGE ERROR 'Lina Components requires Microsoft Windows'}
|
||||||
|
{$IFEND}
|
||||||
|
{$IF (CompilerVersion < 15.0) AND Defined(WARN_INCOMPATIBLEVERSION)}
|
||||||
|
{ Fr�here Delphi-Versionen als Delphi 7 werden nicht (offiziell)
|
||||||
|
unterst�tzt. }
|
||||||
|
{$MESSAGE ERROR 'Lina Components requires Delphi 7 or higher'}
|
||||||
|
{$IFEND}
|
||||||
|
{$IF CompilerVersion < 17.0}
|
||||||
|
{ Unter fr�heren Delphi-Versionen als 2005 gab es noch nicht die
|
||||||
|
M�glichkeit, Records mit methoden zu versehen. Die Implementierung von
|
||||||
|
Prozeduren und/oder Funktionen war Klassen vorenthalten. }
|
||||||
|
{$DEFINE NO_RECORDMETHODS}
|
||||||
|
{$IFEND}
|
||||||
|
{$IF CompilerVersion < 18.5}
|
||||||
|
{ Unter fr�heren Delphi-Versionen als 2007 gab es (offiziell) noch keine
|
||||||
|
Unterst�tzung f�r Windows-Vista-spezifische funktionen wie die TaskDialog-
|
||||||
|
Komponente oder einige Funktionen.
|
||||||
|
Damit dies nicht zu Problemen f�hrt, geht der Compiler darauf mithilfe
|
||||||
|
dieser Direktive ein. }
|
||||||
|
{$DEFINE NO_VISTA}
|
||||||
|
{$IFEND}
|
||||||
|
{$IF CompilerVersion < 20.0}
|
||||||
|
{ Unter fr�heren Delphi-Versionen als 2009 war die Nutzung generischer
|
||||||
|
Datentypen (Generics) nicht m�glich. Da es ohne diese nahezu unm�glich
|
||||||
|
scheint, typisierte Objekte, wie zum Beispiel typisierte TObjectList's
|
||||||
|
zu deklarieren, fallen diese Deklarationen unter fr�heren Delphi-Versionen
|
||||||
|
weg. Dies kann eventuell zu kompatibilit�tsproblemen zwischen
|
||||||
|
unterschiedlichen Nutzern dieser Komponenten f�hren, l�sst sich aber nicht
|
||||||
|
vermeiden. }
|
||||||
|
{$DEFINE NO_GENERIC}
|
||||||
|
{ Unter fr�heren Delphi-Versionen als 2009 entsprach der String-Typenalias
|
||||||
|
dem AnsiString-Typen. Da es gegebenfalls bei manchen externen (zB. OS-
|
||||||
|
Spezifischen) Klassen zu Kompatibilit�tsproblemen kommmen k�nnte, wird
|
||||||
|
hier eine �berpr�fung der Unicode-Unterst�tzung durchgef�hrt.
|
||||||
|
Zu beachten ist jedoch, dass Delphi 2009 und h�her AnsiStrings implizit
|
||||||
|
in UnicodeStrings umwandelt und umgekehrt (sofern m�glich). }
|
||||||
|
{$DEFINE NO_UNICODE}
|
||||||
|
{$IFEND}
|
||||||
|
{$IF CompilerVersion < 21.0}
|
||||||
|
{ Unter fr�heren Delphi-Versionen als 2010 gab es ein Problem mit dem
|
||||||
|
"crHandPoint" cursor, sodass dieser nicht korrekt unter Windows Vista oder
|
||||||
|
h�her dargestellt wurde, sondern stattdessen im alten Windows-Look.
|
||||||
|
Bei �lteren Delphi-Versionen als 2010 steht deswegen eine Pseudo-
|
||||||
|
Komponente zur Behebung dieses Problems zur Verf�gung. }
|
||||||
|
{$DEFINE NO_HANDPOINT}
|
||||||
|
{$IFEND}
|
||||||
|
{$IF CompilerVersion < 23.0}
|
||||||
|
{ Unter fr�heren Delphi-Versionen als XE2 stand lediglich eine Ziel-Platform
|
||||||
|
f�r kompilierte Anwendungen zur Verf�gung. Deshalb brauchte noch nicht auf
|
||||||
|
Kompatibilit�t zu mehrfacher Platform-Unterst�tzung geachtet werden. }
|
||||||
|
{$DEFINE NO_MULTIPLATFORM}
|
||||||
|
{$IFEND}
|
||||||
|
{$ENDIF}
|
@@ -3,21 +3,17 @@ unit uAdvCtrls;
|
|||||||
//////////////////////////////////////
|
//////////////////////////////////////
|
||||||
/// Lina Advanced Controls Unit ///
|
/// Lina Advanced Controls Unit ///
|
||||||
/// **************************** ///
|
/// **************************** ///
|
||||||
/// (c) 2014 Dennis G�hlert a.o. ///
|
/// (c) 2015 Dennis G�hlert a.o. ///
|
||||||
//////////////////////////////////////
|
//////////////////////////////////////
|
||||||
|
|
||||||
{$IFNDEF MSWINDOWS}
|
{$I 'Config.inc'}
|
||||||
{$IFDEF WARN_INCOMPATIBLEOS}
|
|
||||||
{$MESSAGE ERROR 'The "uAdvCtrls" unit is only available under MS-Windows OS'}
|
|
||||||
{$ENDIF}
|
|
||||||
{$ENDIF}
|
|
||||||
|
|
||||||
interface
|
interface
|
||||||
|
|
||||||
uses
|
uses
|
||||||
{ Standard-Units }
|
{ Standard-Units }
|
||||||
SysUtils, Classes, StdCtrls, Windows, Messages, Graphics, Controls, Printers,
|
SysUtils, Classes, StdCtrls, ExtCtrls, Windows, Messages, Graphics, Controls,
|
||||||
Contnrs, Forms,
|
Printers, Contnrs, Forms, Math,
|
||||||
{ Andere Package-Units }
|
{ Andere Package-Units }
|
||||||
uBase, uSysTools, uFileTools;
|
uBase, uSysTools, uFileTools;
|
||||||
|
|
||||||
@@ -25,12 +21,19 @@ type
|
|||||||
{ Hilfsklassen }
|
{ Hilfsklassen }
|
||||||
TMemoCaptionMode = (mcmAnyState,mcmUnfocusedOnly);
|
TMemoCaptionMode = (mcmAnyState,mcmUnfocusedOnly);
|
||||||
TShortcutLabelState = (slsDefault,slsHovered,slsPressed);
|
TShortcutLabelState = (slsDefault,slsHovered,slsPressed);
|
||||||
|
TSizePanelAllow = set of (spaResize,spaMove);
|
||||||
|
TPanelBorderStyle = bsNone..bsSizeable;
|
||||||
|
TValueEditAllow = set of (veaNumbers,veaLetters,veaSpaces,veaSeparators,veaOperators,veaOther);
|
||||||
|
|
||||||
type
|
type
|
||||||
{ Ereignisse }
|
{ Ereignisse }
|
||||||
TPaintMemoPaintEvent = procedure(Sender: TObject) of object;
|
TPaintMemoPaintEvent = procedure(Sender: TObject) of object;
|
||||||
|
|
||||||
type
|
type
|
||||||
|
{ Hauptklassen }
|
||||||
|
{$IFNDEF NO_MULTIPLATFORM}
|
||||||
|
[ComponentPlatformsAttribute(pidWin32 or pidWin64)]
|
||||||
|
{$ENDIF}
|
||||||
TCommandButton = class(TButton)
|
TCommandButton = class(TButton)
|
||||||
protected
|
protected
|
||||||
procedure CreateWnd; override;
|
procedure CreateWnd; override;
|
||||||
@@ -67,6 +70,9 @@ type
|
|||||||
property ReplaceCaption: Boolean read FReplaceCaption write SetReplaceCaption default False;
|
property ReplaceCaption: Boolean read FReplaceCaption write SetReplaceCaption default False;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
{$IFNDEF NO_MULTIPLATFORM}
|
||||||
|
[ComponentPlatformsAttribute(pidWin32 or pidWin64)]
|
||||||
|
{$ENDIF}
|
||||||
TScrollListBox = class(TListBox)
|
TScrollListBox = class(TListBox)
|
||||||
protected
|
protected
|
||||||
{ Protected-Deklarationen }
|
{ Protected-Deklarationen }
|
||||||
@@ -100,6 +106,9 @@ type
|
|||||||
property WordWrap: Boolean read FWordWrap write SetWordWrap default False;
|
property WordWrap: Boolean read FWordWrap write SetWordWrap default False;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
{$IFNDEF NO_MULTIPLATFORM}
|
||||||
|
[ComponentPlatformsAttribute(pidWin32 or pidWin64)]
|
||||||
|
{$ENDIF}
|
||||||
TPaintMemo = class(TMemo)
|
TPaintMemo = class(TMemo)
|
||||||
private
|
private
|
||||||
{ Private-Deklarationen }
|
{ Private-Deklarationen }
|
||||||
@@ -120,6 +129,7 @@ type
|
|||||||
{ Public-Deklarationen }
|
{ Public-Deklarationen }
|
||||||
constructor Create(AOwner: TComponent); override;
|
constructor Create(AOwner: TComponent); override;
|
||||||
destructor Destroy; override;
|
destructor Destroy; override;
|
||||||
|
procedure Clear; override;
|
||||||
property CaptionVisible: Boolean read FCaptionVisible default False;
|
property CaptionVisible: Boolean read FCaptionVisible default False;
|
||||||
published
|
published
|
||||||
{ Ereignisse}
|
{ Ereignisse}
|
||||||
@@ -162,6 +172,9 @@ type
|
|||||||
property Visited: TColor read FVisited write SetVisited default clPurple;
|
property Visited: TColor read FVisited write SetVisited default clPurple;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
{$IFNDEF NO_MULTIPLATFORM}
|
||||||
|
[ComponentPlatformsAttribute(pidWin32 or pidWin64)]
|
||||||
|
{$ENDIF}
|
||||||
TShortcutLabel = class(TLabel)
|
TShortcutLabel = class(TLabel)
|
||||||
protected
|
protected
|
||||||
{ Protected-Deklarationen }
|
{ Protected-Deklarationen }
|
||||||
@@ -197,28 +210,72 @@ type
|
|||||||
property StoreVisited: Boolean read FStoreVisited write FStoreVisited default True;
|
property StoreVisited: Boolean read FStoreVisited write FStoreVisited default True;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure Register;
|
{$IFNDEF NO_MULTIPLATFORM}
|
||||||
|
[ComponentPlatformsAttribute(pidWin32 or pidWin64)]
|
||||||
|
{$ENDIF}
|
||||||
|
TSizePanel = class(TPanel)
|
||||||
|
private
|
||||||
|
{ Private-Deklarationen }
|
||||||
|
FAbout: TComponentAbout;
|
||||||
|
FAllow: TSizePanelAllow;
|
||||||
|
FBorderStyle: TPanelBorderStyle;
|
||||||
|
{ Methoden }
|
||||||
|
procedure SetBorderStyle(Value: TPanelBorderStyle);
|
||||||
|
procedure WMNCHitTest(var Message: TWMNCHitTest); message WM_NCHITTEST;
|
||||||
|
procedure CreateParams(var Params: TCreateParams); override;
|
||||||
|
public
|
||||||
|
{ Public-Deklarationen }
|
||||||
|
constructor Create(AOwner: TComponent); override;
|
||||||
|
destructor Destroy; override;
|
||||||
|
published
|
||||||
|
{ Published-Deklarationen }
|
||||||
|
property About: TComponentAbout read FAbout;
|
||||||
|
property Allow: TSizePanelAllow read FAllow write FAllow default [spaResize,spaMove];
|
||||||
|
property BorderStyle: TPanelBorderStyle read FBorderStyle write SetBorderStyle default bsNone;
|
||||||
|
end;
|
||||||
|
|
||||||
|
{$IFNDEF NO_MULTIPLATFORM}
|
||||||
|
[ComponentPlatformsAttribute(pidWin32 or pidWin64)]
|
||||||
|
{$ENDIF}
|
||||||
|
TValueEdit = class(TEdit)
|
||||||
|
protected
|
||||||
|
{ Protected-Deklarationen }
|
||||||
|
procedure Change; override;
|
||||||
|
private
|
||||||
|
{ Private-Deklarationen }
|
||||||
|
FAbout: TComponentAbout;
|
||||||
|
FMinValue: Extended;
|
||||||
|
FMaxValue: Extended;
|
||||||
|
FAllow: TValueEditAllow;
|
||||||
|
FMaxSeparators: Byte;
|
||||||
|
FSeparatorChar: Char;
|
||||||
|
{ Methoden }
|
||||||
|
procedure SetMinValue(Value: Extended);
|
||||||
|
procedure SetMaxValue(Value: Extended);
|
||||||
|
procedure SetAllow(Value: TValueEditAllow);
|
||||||
|
procedure SetMaxSeparators(Value: Byte);
|
||||||
|
procedure SetSeparatorChar(Value: Char);
|
||||||
|
public
|
||||||
|
{ Public-Deklarationen }
|
||||||
|
constructor Create(AOwner: TComponent); override;
|
||||||
|
destructor Destroy; override;
|
||||||
|
published
|
||||||
|
{ Published-Deklarationen }
|
||||||
|
property MinValue: Extended read FMinValue write SetMinValue;
|
||||||
|
property MaxValue: Extended read FMaxValue write SetMaxValue;
|
||||||
|
property Allow: TValueEditAllow read FAllow write SetAllow default [veaNumbers,veaSeparators];
|
||||||
|
property MaxSeparators: Byte read FMaxSeparators write SetMaxSeparators default 1;
|
||||||
|
property SeparatorChar: Char read FSeparatorChar write SetSeparatorChar default '.';
|
||||||
|
end;
|
||||||
|
|
||||||
|
{$IFDEF ADD_COMPONENTREG}
|
||||||
|
procedure Register;
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
function BmpToIco(Bitmap: TBitmap): TIcon;
|
function BmpToIco(Bitmap: TBitmap): TIcon;
|
||||||
function TargetVisited(Target: String): Boolean;
|
function TargetVisited(Target: String): Boolean;
|
||||||
|
|
||||||
const
|
const
|
||||||
{ Meta-Daten }
|
|
||||||
CommandButtonComponent_Version = '1.0';
|
|
||||||
CommandButtonComponent_Copyright = 'Copyright � 2015';
|
|
||||||
CommandButtonComponent_Author = 'Dennis G�hlert a.o.';
|
|
||||||
|
|
||||||
ScrollListBoxComponent_Version = '1.0';
|
|
||||||
ScrollListBoxComponent_Copyright = 'Copyright � 2015';
|
|
||||||
ScrollListBoxComponent_Author = 'Dennis G�hlert a.o.';
|
|
||||||
|
|
||||||
PaintMemoComponent_Version = '1.0';
|
|
||||||
PaintMemoComponent_Copyright = 'Copyright � 2015';
|
|
||||||
PaintMemoComponent_Author = 'Dennis G�hlert a.o.';
|
|
||||||
|
|
||||||
ShortcutLabelComponent_Version = '1.0';
|
|
||||||
ShortcutLabelComponent_Copyright = 'Copyright � 2015';
|
|
||||||
ShortcutLabelComponent_Author = 'Dennis G�hlert a.o.';
|
|
||||||
{ Messages }
|
{ Messages }
|
||||||
BS_COMMANDLINK = $0000000E;
|
BS_COMMANDLINK = $0000000E;
|
||||||
BM_SETIMAGE = $00F7;
|
BM_SETIMAGE = $00F7;
|
||||||
@@ -232,10 +289,12 @@ var
|
|||||||
|
|
||||||
implementation
|
implementation
|
||||||
|
|
||||||
procedure Register;
|
{$IFDEF ADD_COMPONENTREG}
|
||||||
begin
|
procedure Register;
|
||||||
RegisterComponents(ComponentsPage,[TCommandButton,TScrollListBox,TPaintMemo,TShortcutLabel]);
|
begin
|
||||||
end;
|
RegisterComponents(ComponentsPage,[TCommandButton,TScrollListBox,TPaintMemo,TShortcutLabel,TSizePanel,TValueEdit]);
|
||||||
|
end;
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
function BmpToIco(Bitmap: TBitmap): TIcon;
|
function BmpToIco(Bitmap: TBitmap): TIcon;
|
||||||
begin
|
begin
|
||||||
@@ -268,7 +327,7 @@ end;
|
|||||||
constructor TCommandButton.Create(AOwner: TComponent);
|
constructor TCommandButton.Create(AOwner: TComponent);
|
||||||
begin
|
begin
|
||||||
inherited;
|
inherited;
|
||||||
FAbout := TComponentAbout.Create(TCommandButton,CommandButtonComponent_Version,CommandButtonComponent_Copyright,CommandButtonComponent_Author);
|
FAbout := TComponentAbout.Create(TCommandButton);
|
||||||
FCommandLink := False;
|
FCommandLink := False;
|
||||||
FShield := False;
|
FShield := False;
|
||||||
FIcon := TIcon.Create;
|
FIcon := TIcon.Create;
|
||||||
@@ -379,7 +438,7 @@ end;
|
|||||||
constructor TScrollListBox.Create(AOwner: TComponent);
|
constructor TScrollListBox.Create(AOwner: TComponent);
|
||||||
begin
|
begin
|
||||||
inherited;
|
inherited;
|
||||||
FAbout := TComponentAbout.Create(TScrollListBox,ScrollListBoxComponent_Version,ScrollListBoxComponent_Copyright,ScrollListBoxComponent_Author);
|
FAbout := TComponentAbout.Create(TScrollListBox);
|
||||||
FHorizontalScrollBar := False;
|
FHorizontalScrollBar := False;
|
||||||
FWordWrap := False;
|
FWordWrap := False;
|
||||||
end;
|
end;
|
||||||
@@ -510,7 +569,7 @@ end;
|
|||||||
constructor TPaintMemo.Create(AOwner: TComponent);
|
constructor TPaintMemo.Create(AOwner: TComponent);
|
||||||
begin
|
begin
|
||||||
inherited;
|
inherited;
|
||||||
FAbout := TComponentAbout.Create(TPaintMemo,PaintMemoComponent_Version,PaintMemoComponent_Copyright,PaintMemoComponent_Author);
|
FAbout := TComponentAbout.Create(TPaintMemo);
|
||||||
FShowCaption := True;
|
FShowCaption := True;
|
||||||
FCaptionFont := TFont.Create;
|
FCaptionFont := TFont.Create;
|
||||||
FCaptionFont.Assign(Font);
|
FCaptionFont.Assign(Font);
|
||||||
@@ -529,6 +588,17 @@ begin
|
|||||||
inherited;
|
inherited;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TPaintMemo.Clear;
|
||||||
|
{ Hier wurde ein Bug behoben, bei dem das OnChange-Ereignis beim aufrufen der
|
||||||
|
"Clear"-Methode nicht aufgerufen wurde. }
|
||||||
|
begin
|
||||||
|
inherited;
|
||||||
|
if Assigned(OnChange) then
|
||||||
|
begin
|
||||||
|
OnChange(Self);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TPaintMemo.SetShowCaption(Value: Boolean);
|
procedure TPaintMemo.SetShowCaption(Value: Boolean);
|
||||||
begin
|
begin
|
||||||
FShowCaption := Value;
|
FShowCaption := Value;
|
||||||
@@ -651,7 +721,7 @@ end;
|
|||||||
constructor TShortcutLabel.Create(AOwner: TComponent);
|
constructor TShortcutLabel.Create(AOwner: TComponent);
|
||||||
begin
|
begin
|
||||||
inherited;
|
inherited;
|
||||||
FAbout := TComponentAbout.Create(TShortcutLabel,ShortcutLabelComponent_Version,ShortcutLabelComponent_Copyright,ShortcutLabelComponent_Author);
|
FAbout := TComponentAbout.Create(TShortcutLabel);
|
||||||
FState := slsDefault;
|
FState := slsDefault;
|
||||||
FFont := TShortcutLabelFont.Create(Self);
|
FFont := TShortcutLabelFont.Create(Self);
|
||||||
FHighlightVisited := True;
|
FHighlightVisited := True;
|
||||||
@@ -741,6 +811,164 @@ begin
|
|||||||
Font.Update;
|
Font.Update;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
{ ----------------------------------------------------------------------------
|
||||||
|
TSizePanel
|
||||||
|
---------------------------------------------------------------------------- }
|
||||||
|
|
||||||
|
constructor TSizePanel.Create(AOwner: TComponent);
|
||||||
|
begin
|
||||||
|
inherited;
|
||||||
|
FAbout := TComponentAbout.Create(TSizePanel);
|
||||||
|
FAllow := [spaResize,spaMove];
|
||||||
|
FBorderStyle := bsNone;
|
||||||
|
end;
|
||||||
|
|
||||||
|
destructor TSizePanel.Destroy;
|
||||||
|
begin
|
||||||
|
FAbout.Free;
|
||||||
|
inherited;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TSizePanel.SetBorderStyle(Value: TPanelBorderStyle);
|
||||||
|
begin
|
||||||
|
if Value <> FBorderStyle then
|
||||||
|
begin
|
||||||
|
if Value <> bsSizeable then
|
||||||
|
begin
|
||||||
|
(Self as TPanel).BorderStyle := Value;
|
||||||
|
end;
|
||||||
|
FBorderStyle := Value;
|
||||||
|
RecreateWnd;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TSizePanel.WMNCHitTest(var Message: TWMNCHitTest);
|
||||||
|
var
|
||||||
|
ScreenPos: TPoint;
|
||||||
|
MoveArea: TRect;
|
||||||
|
begin
|
||||||
|
inherited;
|
||||||
|
if not (csDesigning in ComponentState) then
|
||||||
|
begin
|
||||||
|
ScreenPos := ScreenToClient(Point(Message.XPos,Message.YPos));
|
||||||
|
MoveArea := Rect(BevelWidth,BevelWidth,Width - BevelWidth,Height - BevelWidth);
|
||||||
|
if (spaResize in Allow) and (BorderStyle <> bsSizeable) then
|
||||||
|
begin
|
||||||
|
if ScreenPos.X < BevelWidth then
|
||||||
|
begin
|
||||||
|
if ScreenPos.Y < BevelWidth then
|
||||||
|
begin
|
||||||
|
Message.Result := HTTOPLEFT;
|
||||||
|
end else
|
||||||
|
begin
|
||||||
|
if ScreenPos.Y >= Height - BevelWidth then
|
||||||
|
begin
|
||||||
|
Message.Result := HTBOTTOMLEFT;
|
||||||
|
end else
|
||||||
|
begin
|
||||||
|
Message.Result := HTLEFT;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end else
|
||||||
|
begin
|
||||||
|
if ScreenPos.X >= Width - BevelWidth then
|
||||||
|
begin
|
||||||
|
if ScreenPos.Y < BevelWidth then
|
||||||
|
begin
|
||||||
|
Message.Result := HTTOPRIGHT;
|
||||||
|
end else
|
||||||
|
begin
|
||||||
|
if ScreenPos.Y >= Height - BevelWidth then
|
||||||
|
begin
|
||||||
|
Message.Result := HTBOTTOMRIGHT;
|
||||||
|
end else
|
||||||
|
begin
|
||||||
|
Message.Result := HTRIGHT;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end else
|
||||||
|
begin
|
||||||
|
if ScreenPos.Y < BevelWidth then
|
||||||
|
begin
|
||||||
|
Message.Result := HTTOP;
|
||||||
|
end else
|
||||||
|
begin
|
||||||
|
if ScreenPos.Y >= Height - BevelWidth then
|
||||||
|
begin
|
||||||
|
Message.Result := HTBOTTOM;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
if (Message.Result = HTCLIENT) and (PtInRect(MoveArea,ScreenPos) = True) and (spaMove in Allow) then
|
||||||
|
begin
|
||||||
|
Message.Result := HTCAPTION;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TSizePanel.CreateParams(var Params: TCreateParams);
|
||||||
|
begin
|
||||||
|
inherited;
|
||||||
|
if NewStyleControls and Ctl3D and (BorderStyle = bsSizeable) then
|
||||||
|
begin
|
||||||
|
Params.Style := Params.Style or WS_SIZEBOX and not WS_BORDER;
|
||||||
|
Params.ExStyle := Params.ExStyle and not WS_EX_CLIENTEDGE;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
{ ----------------------------------------------------------------------------
|
||||||
|
TValueEdit
|
||||||
|
---------------------------------------------------------------------------- }
|
||||||
|
|
||||||
|
constructor TValueEdit.Create(AOwner: TComponent);
|
||||||
|
begin
|
||||||
|
inherited;
|
||||||
|
FAbout := TComponentAbout.Create(TValueEdit);
|
||||||
|
FAllow := [veaNumbers,veaSeparators];
|
||||||
|
end;
|
||||||
|
|
||||||
|
destructor TValueEdit.Destroy;
|
||||||
|
begin
|
||||||
|
FAbout.Free;
|
||||||
|
inherited;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TValueEdit.SetMinValue(Value: Extended);
|
||||||
|
begin
|
||||||
|
if True then
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TValueEdit.SetMaxValue(Value: Extended);
|
||||||
|
begin
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TValueEdit.SetAllow(Value: TValueEditAllow);
|
||||||
|
begin
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TValueEdit.SetMaxSeparators(Value: Byte);
|
||||||
|
begin
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TValueEdit.SetSeparatorChar(Value: Char);
|
||||||
|
begin
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TValueEdit.Change;
|
||||||
|
begin
|
||||||
|
if False then
|
||||||
|
begin
|
||||||
|
inherited;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
initialization
|
initialization
|
||||||
|
|
||||||
finalization
|
finalization
|
||||||
|
@@ -3,9 +3,11 @@ unit uBase;
|
|||||||
//////////////////////////////////////
|
//////////////////////////////////////
|
||||||
/// Lina Base Unit ///
|
/// Lina Base Unit ///
|
||||||
/// **************************** ///
|
/// **************************** ///
|
||||||
/// (c) 2014 Dennis G�hlert a.o. ///
|
/// (c) 2015 Dennis G�hlert a.o. ///
|
||||||
//////////////////////////////////////
|
//////////////////////////////////////
|
||||||
|
|
||||||
|
{$I 'Config.inc'}
|
||||||
|
|
||||||
interface
|
interface
|
||||||
|
|
||||||
{ Dies ist die Basis-Unit f�r die Lina-Komponenten bzw. Methoden und Klassen.
|
{ Dies ist die Basis-Unit f�r die Lina-Komponenten bzw. Methoden und Klassen.
|
||||||
@@ -16,6 +18,17 @@ uses
|
|||||||
{ Standard-Units }
|
{ Standard-Units }
|
||||||
SysUtils, Classes, Dialogs, uSysTools;
|
SysUtils, Classes, Dialogs, uSysTools;
|
||||||
|
|
||||||
|
const
|
||||||
|
UnitName = 'uBase';
|
||||||
|
LinaVersion = 1.00;
|
||||||
|
About_Title = 'About...';
|
||||||
|
{ Komponenten-Informationen }
|
||||||
|
ComponentsPage = 'Lina';
|
||||||
|
ComponentsVersion = '1.0';
|
||||||
|
ComponentsCopyright = 'Copyright � 2016';
|
||||||
|
ComponentsAuthor = 'Dennis G�hlert a.o.';
|
||||||
|
ComponentsHomepage = '';
|
||||||
|
|
||||||
type
|
type
|
||||||
TComponentAbout = class
|
TComponentAbout = class
|
||||||
private
|
private
|
||||||
@@ -30,6 +43,7 @@ type
|
|||||||
{ Protected-Deklarationen }
|
{ Protected-Deklarationen }
|
||||||
property Component: TComponentClass read FComponent write FComponent;
|
property Component: TComponentClass read FComponent write FComponent;
|
||||||
published
|
published
|
||||||
|
{ Published-Deklarationen }
|
||||||
property Name: TComponentName read FName;
|
property Name: TComponentName read FName;
|
||||||
property Version: ShortString read FVersion;
|
property Version: ShortString read FVersion;
|
||||||
property Copyright: ShortString read FCopyright;
|
property Copyright: ShortString read FCopyright;
|
||||||
@@ -37,21 +51,19 @@ type
|
|||||||
property Homepage: ShortString read FHomepage;
|
property Homepage: ShortString read FHomepage;
|
||||||
public
|
public
|
||||||
{ Public-Deklarationen }
|
{ Public-Deklarationen }
|
||||||
constructor Create(Component: TComponentClass; Ver: ShortString = '1.0';
|
constructor Create(Component: TComponentClass; Ver:
|
||||||
Copy: ShortString = ''; Auth: ShortString = ''; Home: ShortString = '');
|
ShortString = ComponentsVersion; Copy: ShortString = ComponentsCopyright;
|
||||||
|
Auth: ShortString = ComponentsAuthor;
|
||||||
|
Home: ShortString = ComponentsHomepage);
|
||||||
{ �ber-Dialog }
|
{ �ber-Dialog }
|
||||||
procedure AboutDlg;
|
procedure AboutDlg;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
const
|
|
||||||
ComponentsPage = 'Lina';
|
|
||||||
About_Title = 'About...';
|
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
|
|
||||||
constructor TComponentAbout.Create(Component: TComponentClass;
|
constructor TComponentAbout.Create(Component: TComponentClass;
|
||||||
Ver: ShortString = '1.0'; Copy: ShortString = ''; Auth: ShortString = '';
|
Ver: ShortString = ComponentsVersion; Copy: ShortString = ComponentsCopyright;
|
||||||
Home: ShortString = '');
|
Auth: ShortString = ComponentsAuthor; Home: ShortString = ComponentsHomepage);
|
||||||
begin
|
begin
|
||||||
FComponent := Component;
|
FComponent := Component;
|
||||||
FName := ExtractClassName(Component.ClassName);
|
FName := ExtractClassName(Component.ClassName);
|
||||||
|
@@ -1,5 +1,13 @@
|
|||||||
unit uCalc;
|
unit uCalc;
|
||||||
|
|
||||||
|
//////////////////////////////////////
|
||||||
|
/// Lina Calculator Unit ///
|
||||||
|
/// **************************** ///
|
||||||
|
/// (c) 2015 Dennis G�hlert a.o. ///
|
||||||
|
//////////////////////////////////////
|
||||||
|
|
||||||
|
{$I 'Config.inc'}
|
||||||
|
|
||||||
interface
|
interface
|
||||||
|
|
||||||
uses
|
uses
|
||||||
@@ -73,6 +81,9 @@ type
|
|||||||
function IndexOf(Name: String): Integer;
|
function IndexOf(Name: String): Integer;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
{$IFNDEF NO_MULTIPLATFORM}
|
||||||
|
[ComponentPlatformsAttribute(pidWin32 or pidWin64)]
|
||||||
|
{$ENDIF}
|
||||||
TCalculator = class(TComponent)
|
TCalculator = class(TComponent)
|
||||||
private
|
private
|
||||||
{ Ereignisse}
|
{ Ereignisse}
|
||||||
@@ -128,13 +139,11 @@ type
|
|||||||
property Options: TCalculatorOptions read FOptions write FOptions;
|
property Options: TCalculatorOptions read FOptions write FOptions;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure Register;
|
{$IFDEF ADD_COMPONENTREG}
|
||||||
|
procedure Register;
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
const
|
const
|
||||||
{ Meta-Daten }
|
|
||||||
CalculatorComponent_Version = '1.0';
|
|
||||||
CalculatorComponent_Copyright = 'Copyright � 2015';
|
|
||||||
CalculatorComponent_Author = 'Dennis G�hlert a.o.';
|
|
||||||
{ Sonderzeichen f�r Ausdr�cke }
|
{ Sonderzeichen f�r Ausdr�cke }
|
||||||
CalcSeperators = ['.',','];
|
CalcSeperators = ['.',','];
|
||||||
CalcBrackets = ['(',')'];
|
CalcBrackets = ['(',')'];
|
||||||
@@ -143,10 +152,12 @@ const
|
|||||||
|
|
||||||
implementation
|
implementation
|
||||||
|
|
||||||
procedure Register;
|
{$IFDEF ADD_COMPONENTREG}
|
||||||
begin
|
procedure Register;
|
||||||
RegisterComponents(ComponentsPage,[TCalculator]);
|
begin
|
||||||
end;
|
RegisterComponents(ComponentsPage,[TCalculator]);
|
||||||
|
end;
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
{ ----------------------------------------------------------------------------
|
{ ----------------------------------------------------------------------------
|
||||||
TCalculatorConstant
|
TCalculatorConstant
|
||||||
@@ -218,7 +229,7 @@ end;
|
|||||||
constructor TCalculator.Create(AOwner: TComponent);
|
constructor TCalculator.Create(AOwner: TComponent);
|
||||||
begin
|
begin
|
||||||
inherited;
|
inherited;
|
||||||
FAbout := TComponentAbout.Create(TCalculator,CalculatorComponent_Version,CalculatorComponent_Copyright,CalculatorComponent_Author);
|
FAbout := TComponentAbout.Create(TCalculator);
|
||||||
FExpression := '';
|
FExpression := '';
|
||||||
FValue := 0;
|
FValue := 0;
|
||||||
FConstants := TCalculatorConstants.Create(TCalculatorConstant,Self);
|
FConstants := TCalculatorConstants.Create(TCalculatorConstant,Self);
|
||||||
|
@@ -1,374 +0,0 @@
|
|||||||
unit uCrypt;
|
|
||||||
|
|
||||||
//////////////////////////////////////
|
|
||||||
/// Lina Cryption Unit ///
|
|
||||||
/// **************************** ///
|
|
||||||
/// (c) 2014 Dennis G�hlert a.o. ///
|
|
||||||
//////////////////////////////////////
|
|
||||||
|
|
||||||
{$IFNDEF MSWINDOWS}
|
|
||||||
{$IFDEF WARN_INCOMPATIBLEOS}
|
|
||||||
{$MESSAGE ERROR 'The "uCrypt" unit is only available under MS-Windows OS'}
|
|
||||||
{$ENDIF}
|
|
||||||
{$ENDIF}
|
|
||||||
|
|
||||||
interface
|
|
||||||
|
|
||||||
uses
|
|
||||||
{ Standard-Units }
|
|
||||||
SysUtils, Classes,
|
|
||||||
{ Andere Package-Units }
|
|
||||||
uSysTools;
|
|
||||||
|
|
||||||
type
|
|
||||||
{ Fehlermeldungen }
|
|
||||||
EInvalidKey = class(Exception);
|
|
||||||
|
|
||||||
type
|
|
||||||
{ Hilfsklassen }
|
|
||||||
TCryptMode = (cmEncrypt,cmDecrypt);
|
|
||||||
|
|
||||||
type
|
|
||||||
{ Ereignisse }
|
|
||||||
TCryptWorkEvent = procedure(Sender: TObject; const Mode: TCryptMode) of object;
|
|
||||||
TCryptKeyChangeEvent = procedure(Sender: TObject) of object;
|
|
||||||
TCryptKeyChangeQueryEvent = procedure(Sender: TObject; var CanChange: Boolean) of object;
|
|
||||||
|
|
||||||
type
|
|
||||||
{ Hauptklassen }
|
|
||||||
TCrypt = class
|
|
||||||
private
|
|
||||||
{ Private-Deklarationen }
|
|
||||||
FKeyString: String;
|
|
||||||
FKeyChar: Char;
|
|
||||||
FKeyInteger: Integer;
|
|
||||||
FLines: TStrings;
|
|
||||||
FWorkEvent: TCryptWorkEvent;
|
|
||||||
FKeyChangeEvent: TCryptKeyChangeEvent;
|
|
||||||
FKeyChangeQueryEvent: TCryptKeyChangeQueryEvent;
|
|
||||||
{ Methoden }
|
|
||||||
procedure SetKeyString(Value: String);
|
|
||||||
procedure SetKeyChar(Value: Char);
|
|
||||||
procedure SetKeyInteger(Value: Integer);
|
|
||||||
{ Eigenschaften }
|
|
||||||
property KeyString: String read FKeyString write SetKeyString;
|
|
||||||
property KeyChar: Char read FKeyChar write SetKeyChar;
|
|
||||||
property KeyInteger: Integer read FKeyInteger write SetKeyInteger;
|
|
||||||
public
|
|
||||||
{ Public-Deklarationen }
|
|
||||||
constructor Create;
|
|
||||||
destructor Destroy; override;
|
|
||||||
property Lines: TStrings read FLines write FLines;
|
|
||||||
procedure Decrypt; virtual;
|
|
||||||
procedure Encrypt; virtual;
|
|
||||||
{ Ereignisse }
|
|
||||||
property OnWork: TCryptWorkEvent read FWorkEvent write FWorkEvent;
|
|
||||||
property OnKeyChange: TCryptKeyChangeEvent read FKeyChangeEvent write FKeyChangeEvent;
|
|
||||||
property OnKeyChangeQuery: TCryptKeyChangeQueryEvent read FKeyChangeQueryEvent write FKeyChangeQueryEvent;
|
|
||||||
end;
|
|
||||||
|
|
||||||
{ Spezifische Kryptologie-Verfahren }
|
|
||||||
|
|
||||||
TXorCrypt = class(TCrypt)
|
|
||||||
private
|
|
||||||
{ Private-Deklarationen }
|
|
||||||
procedure SetKeyInteger(Value: Integer);
|
|
||||||
public
|
|
||||||
{ Public-Deklarationen }
|
|
||||||
procedure Decrypt;
|
|
||||||
procedure Encrypt;
|
|
||||||
{ Eigenschaften }
|
|
||||||
property KeyInteger;
|
|
||||||
end;
|
|
||||||
|
|
||||||
TVigenereCrypt = class(TCrypt)
|
|
||||||
private
|
|
||||||
{ Private-Deklarationen }
|
|
||||||
procedure SetKeyString(Value: String);
|
|
||||||
public
|
|
||||||
{ Public-Deklarationen }
|
|
||||||
procedure Decrypt;
|
|
||||||
procedure Encrypt;
|
|
||||||
{ Eigenschaften }
|
|
||||||
property KeyChar;
|
|
||||||
end;
|
|
||||||
|
|
||||||
TCaesarCrypt = class(TCrypt)
|
|
||||||
private
|
|
||||||
{ Private-Deklarationen }
|
|
||||||
procedure SetKeyChar(Value: Char);
|
|
||||||
public
|
|
||||||
{ Public-Deklarationen }
|
|
||||||
procedure Decrypt;
|
|
||||||
procedure Encrypt;
|
|
||||||
{ Eigenschaften }
|
|
||||||
property KeyString;
|
|
||||||
end;
|
|
||||||
|
|
||||||
//TDynaCrypt = class(TCrypt)
|
|
||||||
//public
|
|
||||||
{ Public-Deklarationen }
|
|
||||||
//procedure Decrypt;
|
|
||||||
//procedure Encrypt;
|
|
||||||
{ Eigenschaften }
|
|
||||||
//property KeyChar;
|
|
||||||
//end;
|
|
||||||
|
|
||||||
implementation
|
|
||||||
|
|
||||||
{ ----------------------------------------------------------------------------
|
|
||||||
TCrypt
|
|
||||||
---------------------------------------------------------------------------- }
|
|
||||||
|
|
||||||
constructor TCrypt.Create;
|
|
||||||
begin
|
|
||||||
FLines := TStringList.Create;
|
|
||||||
end;
|
|
||||||
|
|
||||||
destructor TCrypt.Destroy;
|
|
||||||
begin
|
|
||||||
FLines.Free;
|
|
||||||
inherited;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TCrypt.SetKeyString(Value: String);
|
|
||||||
var
|
|
||||||
CanChange: Boolean;
|
|
||||||
begin
|
|
||||||
CanChange := True;
|
|
||||||
if Assigned(OnKeyChange) then
|
|
||||||
begin
|
|
||||||
OnKeyChangeQuery(Self,CanChange);
|
|
||||||
end;
|
|
||||||
if CanChange = True then
|
|
||||||
begin
|
|
||||||
FKeyString := Value;
|
|
||||||
if Assigned(OnKeyChange) then
|
|
||||||
begin
|
|
||||||
OnKeyChange(Self);
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TCrypt.SetKeyChar(Value: Char);
|
|
||||||
var
|
|
||||||
CanChange: Boolean;
|
|
||||||
begin
|
|
||||||
CanChange := True;
|
|
||||||
if Assigned(OnKeyChange) then
|
|
||||||
begin
|
|
||||||
OnKeyChangeQuery(Self,CanChange);
|
|
||||||
end;
|
|
||||||
if CanChange = True then
|
|
||||||
begin
|
|
||||||
FKeyChar := Value;
|
|
||||||
if Assigned(OnKeyChange) then
|
|
||||||
begin
|
|
||||||
OnKeyChange(Self);
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TCrypt.SetKeyInteger(Value: Integer);
|
|
||||||
var
|
|
||||||
CanChange: Boolean;
|
|
||||||
begin
|
|
||||||
CanChange := True;
|
|
||||||
if Assigned(OnKeyChange) then
|
|
||||||
begin
|
|
||||||
OnKeyChangeQuery(Self,CanChange);
|
|
||||||
end;
|
|
||||||
if CanChange = True then
|
|
||||||
begin
|
|
||||||
FKeyInteger := Value;
|
|
||||||
if Assigned(OnKeyChange) then
|
|
||||||
begin
|
|
||||||
OnKeyChange(Self);
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TCrypt.Decrypt;
|
|
||||||
begin
|
|
||||||
//...
|
|
||||||
if Assigned(OnWork) = True then
|
|
||||||
begin
|
|
||||||
OnWork(Self,cmDecrypt);
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TCrypt.Encrypt;
|
|
||||||
begin
|
|
||||||
//...
|
|
||||||
if Assigned(OnWork) = True then
|
|
||||||
begin
|
|
||||||
OnWork(Self,cmEncrypt);
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
|
|
||||||
{ ----------------------------------------------------------------------------
|
|
||||||
TXorCrypt
|
|
||||||
---------------------------------------------------------------------------- }
|
|
||||||
|
|
||||||
procedure TXorCrypt.SetKeyInteger(Value: Integer);
|
|
||||||
begin
|
|
||||||
if not (KeyInteger in [0..31]) then
|
|
||||||
begin
|
|
||||||
raise EInvalidKey.Create('Invalid key value');
|
|
||||||
end;
|
|
||||||
inherited;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TXorCrypt.Decrypt;
|
|
||||||
begin
|
|
||||||
{ Bei Xor entspricht der Entschl�sselungs-Algorithmus dem der
|
|
||||||
Verschl�sselung. Deshalb gen�gt hier ein Verweis auf "TXorCrypt.Encrypt". }
|
|
||||||
Encrypt;
|
|
||||||
inherited;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TXorCrypt.Encrypt;
|
|
||||||
var
|
|
||||||
Encrypted: TStrings;
|
|
||||||
LineIndex: Integer;
|
|
||||||
CharIndex: Integer;
|
|
||||||
Line: String;
|
|
||||||
begin
|
|
||||||
Encrypted := TStringList.Create;
|
|
||||||
try
|
|
||||||
Encrypted.Assign(Lines);
|
|
||||||
for LineIndex := 0 to Encrypted.Count do
|
|
||||||
begin
|
|
||||||
Line := Encrypted.Strings[LineIndex];
|
|
||||||
for CharIndex := 1 to Length(Line) do
|
|
||||||
begin
|
|
||||||
if Line[CharIndex] > #31 then
|
|
||||||
begin
|
|
||||||
Line[CharIndex] := Chr(Ord(Line[CharIndex]) xor KeyInteger);
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
Encrypted.Strings[LineIndex] := Line;
|
|
||||||
end;
|
|
||||||
Lines.Assign(Encrypted);
|
|
||||||
finally
|
|
||||||
Encrypted.Free;
|
|
||||||
end;
|
|
||||||
inherited;
|
|
||||||
end;
|
|
||||||
|
|
||||||
{ ----------------------------------------------------------------------------
|
|
||||||
TVigenereCrypt
|
|
||||||
---------------------------------------------------------------------------- }
|
|
||||||
|
|
||||||
procedure TVigenereCrypt.SetKeyString(Value: String);
|
|
||||||
var
|
|
||||||
Index: Integer;
|
|
||||||
begin
|
|
||||||
Value := UpperCase(Value);
|
|
||||||
for Index := 1 to Length(Value) do
|
|
||||||
begin
|
|
||||||
if not (Value[Index] in ['A'..'Z']) then
|
|
||||||
begin
|
|
||||||
raise EInvalidKey.Create('Invalid key value');
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
inherited;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TVigenereCrypt.Decrypt;
|
|
||||||
var
|
|
||||||
Encrypted: TStrings;
|
|
||||||
LineIndex: Integer;
|
|
||||||
CharIndex: Integer;
|
|
||||||
Line: String;
|
|
||||||
KeyIndex: Integer;
|
|
||||||
CurKeyLetter: Integer;
|
|
||||||
CurLetter: Integer;
|
|
||||||
begin
|
|
||||||
Encrypted := TStringList.Create;
|
|
||||||
try
|
|
||||||
Encrypted.Assign(Lines);
|
|
||||||
for LineIndex := 0 to Encrypted.Count do
|
|
||||||
begin
|
|
||||||
Line := Encrypted.Strings[LineIndex];
|
|
||||||
for CharIndex := 1 to Length(Line) do
|
|
||||||
begin
|
|
||||||
if Line[CharIndex] in ['A'..'Z'] then
|
|
||||||
begin
|
|
||||||
CurKeyLetter := Ord(KeyString[1 + (KeyIndex mod Length(KeyString))]) - Ord('A');
|
|
||||||
CurLetter := Ord(Line[CharIndex]) - Ord('A');
|
|
||||||
Line[CharIndex] := Chr(Ord('A') + ((26 + CurLetter - CurKeyLetter) mod 26));
|
|
||||||
Inc(KeyIndex);
|
|
||||||
end
|
|
||||||
end;
|
|
||||||
Encrypted.Strings[LineIndex] := Line;
|
|
||||||
end;
|
|
||||||
Lines.Assign(Encrypted);
|
|
||||||
finally
|
|
||||||
Encrypted.Free;
|
|
||||||
end;
|
|
||||||
inherited;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TVigenereCrypt.Encrypt;
|
|
||||||
var
|
|
||||||
Encrypted: TStrings;
|
|
||||||
LineIndex: Integer;
|
|
||||||
CharIndex: Integer;
|
|
||||||
Line: String;
|
|
||||||
KeyIndex: Integer;
|
|
||||||
CurKeyLetter: Integer;
|
|
||||||
CurLetter: Integer;
|
|
||||||
begin
|
|
||||||
Encrypted := TStringList.Create;
|
|
||||||
try
|
|
||||||
Encrypted.Assign(Lines);
|
|
||||||
for LineIndex := 0 to Encrypted.Count do
|
|
||||||
begin
|
|
||||||
Line := Encrypted.Strings[LineIndex];
|
|
||||||
for CharIndex := 1 to Length(Line) do
|
|
||||||
begin
|
|
||||||
if Line[CharIndex] in ['A'..'Z'] then
|
|
||||||
begin
|
|
||||||
CurKeyLetter := Ord(KeyString[1 + (KeyIndex mod Length(KeyString))]) - Ord('A');
|
|
||||||
CurLetter := Ord(Line[CharIndex]) - Ord('A');
|
|
||||||
Line[CharIndex] := Chr(Ord('A') + ((CurLetter + CurKeyLetter) mod 26));
|
|
||||||
Inc(KeyIndex);
|
|
||||||
end
|
|
||||||
end;
|
|
||||||
Encrypted.Strings[LineIndex] := Line;
|
|
||||||
end;
|
|
||||||
Lines.Assign(Encrypted);
|
|
||||||
finally
|
|
||||||
Encrypted.Free;
|
|
||||||
end;
|
|
||||||
inherited;
|
|
||||||
end;
|
|
||||||
|
|
||||||
{ ----------------------------------------------------------------------------
|
|
||||||
TCaesarCrypt
|
|
||||||
---------------------------------------------------------------------------- }
|
|
||||||
|
|
||||||
procedure TCaesarCrypt.SetKeyChar(Value: Char);
|
|
||||||
begin
|
|
||||||
Value := CharUpperCase(Value);
|
|
||||||
if not (Value in ['A'..'Z']) then
|
|
||||||
begin
|
|
||||||
raise EInvalidKey.Create('Invalid key value');
|
|
||||||
end;
|
|
||||||
inherited;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TCaesarCrypt.Decrypt;
|
|
||||||
begin
|
|
||||||
//...
|
|
||||||
inherited;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TCaesarCrypt.Encrypt;
|
|
||||||
begin
|
|
||||||
//...
|
|
||||||
inherited;
|
|
||||||
end;
|
|
||||||
|
|
||||||
end.
|
|
@@ -3,14 +3,10 @@ unit uFileCtrls;
|
|||||||
//////////////////////////////////////
|
//////////////////////////////////////
|
||||||
/// Lina File Controls Unit ///
|
/// Lina File Controls Unit ///
|
||||||
/// **************************** ///
|
/// **************************** ///
|
||||||
/// (c) 2014 Dennis G�hlert a.o. ///
|
/// (c) 2015 Dennis G�hlert a.o. ///
|
||||||
//////////////////////////////////////
|
//////////////////////////////////////
|
||||||
|
|
||||||
{$IFNDEF MSWINDOWS}
|
{$I 'Config.inc'}
|
||||||
{$IFDEF WARN_INCOMPATIBLEOS}
|
|
||||||
{$MESSAGE ERROR 'The "uFileCtrls" unit is only available under MS-Windows OS'}
|
|
||||||
{$ENDIF}
|
|
||||||
{$ENDIF}
|
|
||||||
|
|
||||||
interface
|
interface
|
||||||
|
|
||||||
@@ -18,7 +14,7 @@ uses
|
|||||||
{ Standard-Units }
|
{ Standard-Units }
|
||||||
SysUtils, Classes, Windows, Registry,
|
SysUtils, Classes, Windows, Registry,
|
||||||
{ Andere Package-Units }
|
{ Andere Package-Units }
|
||||||
uBase;
|
uBase, uSysTools;
|
||||||
|
|
||||||
type
|
type
|
||||||
{ Fehlermeldungen }
|
{ Fehlermeldungen }
|
||||||
@@ -57,6 +53,9 @@ type
|
|||||||
|
|
||||||
TContextMenuItems = class(TCollection);
|
TContextMenuItems = class(TCollection);
|
||||||
|
|
||||||
|
{$IFNDEF NO_MULTIPLATFORM}
|
||||||
|
[ComponentPlatformsAttribute(pidWin32 or pidWin64)]
|
||||||
|
{$ENDIF}
|
||||||
TContextMenu = class(TComponent)
|
TContextMenu = class(TComponent)
|
||||||
private
|
private
|
||||||
{ Private-Deklarationen }
|
{ Private-Deklarationen }
|
||||||
@@ -98,25 +97,25 @@ type
|
|||||||
property OnCreateEntry: TContextMenuCreateEntryEvent read FCreateEntryEvent write FCreateEntryEvent;
|
property OnCreateEntry: TContextMenuCreateEntryEvent read FCreateEntryEvent write FCreateEntryEvent;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure Register;
|
{$IFDEF ADD_COMPONENTREG}
|
||||||
|
procedure Register;
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
function ExtStrToRegKey(ExtStr: String): String;
|
function ExtStrToRegKey(ExtStr: String): String;
|
||||||
|
|
||||||
const
|
const
|
||||||
{ Meta-Daten }
|
|
||||||
ContextMenuComponent_Version = '1.0';
|
|
||||||
ContextMenuComponent_Copyright = 'Copyright � 2015';
|
|
||||||
ContextMenuComponent_Author = 'Dennis G�hlert a.o.';
|
|
||||||
{ Sonstige }
|
{ Sonstige }
|
||||||
ContextRegPathShell = '\shell';
|
ContextRegPathShell = '\shell';
|
||||||
ContextRegPathCommand = '\command';
|
ContextRegPathCommand = '\command';
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
|
|
||||||
procedure Register;
|
{$IFDEF ADD_COMPONENTREG}
|
||||||
begin
|
procedure Register;
|
||||||
RegisterComponents(ComponentsPage,[TContextMenu]);
|
begin
|
||||||
end;
|
RegisterComponents(ComponentsPage,[TContextMenu]);
|
||||||
|
end;
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
function ExtStrToRegKey(ExtStr: String): String;
|
function ExtStrToRegKey(ExtStr: String): String;
|
||||||
begin
|
begin
|
||||||
@@ -181,7 +180,7 @@ end;
|
|||||||
constructor TContextMenu.Create(AOwner: TComponent);
|
constructor TContextMenu.Create(AOwner: TComponent);
|
||||||
begin
|
begin
|
||||||
inherited;
|
inherited;
|
||||||
FAbout := TComponentAbout.Create(TContextMenu,ContextMenuComponent_Version,ContextMenuComponent_Copyright,ContextMenuComponent_Author);
|
FAbout := TComponentAbout.Create(TContextMenu);
|
||||||
FItems := TContextMenuItems.Create(TContextMenuItem);
|
FItems := TContextMenuItems.Create(TContextMenuItem);
|
||||||
FExt := '*';
|
FExt := '*';
|
||||||
FAutoLoad := False;
|
FAutoLoad := False;
|
||||||
@@ -208,7 +207,7 @@ begin
|
|||||||
begin
|
begin
|
||||||
for Index := 1 to Length(Value) do
|
for Index := 1 to Length(Value) do
|
||||||
begin
|
begin
|
||||||
if not (Value[Index] in ['0'..'9','A'..'Z','a'..'z']) then
|
if not (Value[Index] in Numbers + Letters) then
|
||||||
begin
|
begin
|
||||||
raise EInvalidExt.Create('Invalid file extension value');
|
raise EInvalidExt.Create('Invalid file extension value');
|
||||||
end;
|
end;
|
||||||
@@ -246,7 +245,7 @@ begin
|
|||||||
begin
|
begin
|
||||||
for Index := 1 to Length(Value) do
|
for Index := 1 to Length(Value) do
|
||||||
begin
|
begin
|
||||||
if not (Value[Index] in ['0'..'9','A'..'Z','a'..'z']) then
|
if not (Value[Index] in Numbers + Letters) then
|
||||||
begin
|
begin
|
||||||
raise EInvalidAlias.Create('Invalid extension alias value');
|
raise EInvalidAlias.Create('Invalid extension alias value');
|
||||||
end;
|
end;
|
||||||
|
@@ -3,14 +3,10 @@ unit uFileTools;
|
|||||||
//////////////////////////////////////
|
//////////////////////////////////////
|
||||||
/// Lina File Tools Unit ///
|
/// Lina File Tools Unit ///
|
||||||
/// **************************** ///
|
/// **************************** ///
|
||||||
/// (c) 2014 Dennis G�hlert a.o. ///
|
/// (c) 2015 Dennis G�hlert a.o. ///
|
||||||
//////////////////////////////////////
|
//////////////////////////////////////
|
||||||
|
|
||||||
{$IFNDEF MSWINDOWS}
|
{$I 'Config.inc'}
|
||||||
{$IFDEF WARN_INCOMPATIBLEOS}
|
|
||||||
{$MESSAGE ERROR 'The "uFileTools" unit is only available under MS-Windows OS'}
|
|
||||||
{$ENDIF}
|
|
||||||
{$ENDIF}
|
|
||||||
|
|
||||||
interface
|
interface
|
||||||
|
|
||||||
@@ -166,14 +162,15 @@ const
|
|||||||
B_TO_TB = -4;
|
B_TO_TB = -4;
|
||||||
{ Dateierweiterungen f�r ListFiles() }
|
{ Dateierweiterungen f�r ListFiles() }
|
||||||
FXT_ANY = '*.*';
|
FXT_ANY = '*.*';
|
||||||
FXT_EXE = '*.exe';
|
FXT_EXEC: array [0..2] of String = ('*.exe','*.com','*.scr');
|
||||||
FXT_TXT = '*.txt';
|
FXT_TEXT: array [0..1] of String = ('*.txt','*.rtf');
|
||||||
{ Vielleicht sp�ter mal implementieren...
|
FXT_IMAGE: array [0..6] of String = ('*.jpg','*.jpeg','*.png','*.tif','*.tiff','*.bmp','*.gif');
|
||||||
FXT_IMG = ('*.jpg','*.jpeg','*.png','*.tif','*.tiff','*.bmp','*.gif');
|
FXT_SOURCE: array [0..3] of String = ('*.pas','*.dpr','*.dpk','*.dfm');
|
||||||
FXT_PAS = ('*.pas','*.dpr','*.dpk','*.dfm');
|
FXT_OFFICE: array [0..2] of String = ('*.doc','*.xls','*.ppt');
|
||||||
FXT_MSO = ('*.doc','*.xls','*.ppt');
|
FXT_OFFICEX: array [0..2] of String = ('*.docx','*.xlsx','*.pptx');
|
||||||
FXT_MSI = ('*.msi');
|
FXT_INSTALL: array [0..1] of String = ('*.msi','*.msu');
|
||||||
FXT_IMG = ('*.img','*.iso'); }
|
FXT_DISK: array [0..2] of String = ('*.img','*.iso','*.bin');
|
||||||
|
FXT_ARCHIVE: array [0..4] of String = ('*.zip','*.rar','*.7z','*.tar','*.gz');
|
||||||
|
|
||||||
var
|
var
|
||||||
InvalidFileNames: TInvalidFileNames;
|
InvalidFileNames: TInvalidFileNames;
|
||||||
|
@@ -3,14 +3,10 @@ unit uFrmCtrls;
|
|||||||
//////////////////////////////////////
|
//////////////////////////////////////
|
||||||
/// Lina Form Controls Unit ///
|
/// Lina Form Controls Unit ///
|
||||||
/// **************************** ///
|
/// **************************** ///
|
||||||
/// (c) 2014 Dennis G�hlert a.o. ///
|
/// (c) 2015 Dennis G�hlert a.o. ///
|
||||||
//////////////////////////////////////
|
//////////////////////////////////////
|
||||||
|
|
||||||
{$IFNDEF MSWINDOWS}
|
{$I 'Config.inc'}
|
||||||
{$IFDEF WARN_INCOMPATIBLEOS}
|
|
||||||
{$MESSAGE ERROR 'The "uFrmCtrls" unit is only available under MS-Windows OS'}
|
|
||||||
{$ENDIF}
|
|
||||||
{$ENDIF}
|
|
||||||
|
|
||||||
interface
|
interface
|
||||||
|
|
||||||
@@ -223,6 +219,9 @@ type
|
|||||||
property Interval: Cardinal read GetInterval write SetInterval default 1000;
|
property Interval: Cardinal read GetInterval write SetInterval default 1000;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
{$IFNDEF NO_MULTIPLATFORM}
|
||||||
|
[ComponentPlatformsAttribute(pidWin32 or pidWin64)]
|
||||||
|
{$ENDIF}
|
||||||
TSplashScreen = class(TComponent)
|
TSplashScreen = class(TComponent)
|
||||||
private
|
private
|
||||||
{ Private-Deklarationen }
|
{ Private-Deklarationen }
|
||||||
@@ -292,7 +291,6 @@ type
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
{ T...Manager }
|
{ T...Manager }
|
||||||
|
|
||||||
TComponentManager = class(TComponent)
|
TComponentManager = class(TComponent)
|
||||||
private
|
private
|
||||||
{ Private-Deklarationen }
|
{ Private-Deklarationen }
|
||||||
@@ -312,6 +310,9 @@ type
|
|||||||
property About: TComponentAbout read FAbout;
|
property About: TComponentAbout read FAbout;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
{$IFNDEF NO_MULTIPLATFORM}
|
||||||
|
[ComponentPlatformsAttribute(pidWin32 or pidWin64)]
|
||||||
|
{$ENDIF}
|
||||||
TProgressBarManager = class(TComponentManager)
|
TProgressBarManager = class(TComponentManager)
|
||||||
private
|
private
|
||||||
{ Private-Deklarationen }
|
{ Private-Deklarationen }
|
||||||
@@ -337,6 +338,9 @@ type
|
|||||||
property Mode: TProgressBarManagerMode read FMode write SetMode default pmmNone;
|
property Mode: TProgressBarManagerMode read FMode write SetMode default pmmNone;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
{$IFNDEF NO_MULTIPLATFORM}
|
||||||
|
[ComponentPlatformsAttribute(pidWin32 or pidWin64)]
|
||||||
|
{$ENDIF}
|
||||||
TListBoxManager = class(TComponentManager)
|
TListBoxManager = class(TComponentManager)
|
||||||
private
|
private
|
||||||
{ Private-Deklarationen }
|
{ Private-Deklarationen }
|
||||||
@@ -418,6 +422,9 @@ type
|
|||||||
|
|
||||||
TParamReferences = class(TCollection);
|
TParamReferences = class(TCollection);
|
||||||
|
|
||||||
|
{$IFNDEF NO_MULTIPLATFORM}
|
||||||
|
[ComponentPlatformsAttribute(pidWin32 or pidWin64)]
|
||||||
|
{$ENDIF}
|
||||||
TParamDefiner = class(TComponent)
|
TParamDefiner = class(TComponent)
|
||||||
private
|
private
|
||||||
{ Private-Deklarationen }
|
{ Private-Deklarationen }
|
||||||
@@ -452,32 +459,18 @@ type
|
|||||||
procedure SetTaskBarVisibe(const Value: Boolean);
|
procedure SetTaskBarVisibe(const Value: Boolean);
|
||||||
procedure ListParams(var OutList: TStrings);
|
procedure ListParams(var OutList: TStrings);
|
||||||
|
|
||||||
procedure Register;
|
{$IFDEF ADD_COMPONENTREG}
|
||||||
|
procedure Register;
|
||||||
const
|
{$ENDIF}
|
||||||
{ Meta-Daten }
|
|
||||||
SplashScreenComponent_Version = '1.0';
|
|
||||||
SplashScreenComponent_Copyright = 'Copyright � 2015';
|
|
||||||
SplashScreenComponent_Author = 'Dennis G�hlert a.o.';
|
|
||||||
|
|
||||||
ProgressBarManagerComponent_Version = '1.0';
|
|
||||||
ProgressBarManagerComponent_Copyright = 'Copyright � 2015';
|
|
||||||
ProgressBarManagerComponent_Author = 'Dennis G�hlert a.o.';
|
|
||||||
|
|
||||||
ListBoxManagerComponent_Version = '1.0';
|
|
||||||
ListBoxManagerComponent_Copyright = 'Copyright � 2015';
|
|
||||||
ListBoxManagerComponent_Author = 'Dennis G�hlert a.o.';
|
|
||||||
|
|
||||||
ParamDefinerComponent_Version = '1.0';
|
|
||||||
ParamDefinerComponent_Copyright = 'Copyright � 2015';
|
|
||||||
ParamDefinerComponent_Author = 'Dennis G�hlert a.o.';
|
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
|
|
||||||
procedure Register;
|
{$IFDEF ADD_COMPONENTREG}
|
||||||
begin
|
procedure Register;
|
||||||
RegisterComponents(ComponentsPage,[TSplashScreen,TProgressBarManager,TListBoxManager,TParamDefiner]);
|
begin
|
||||||
end;
|
RegisterComponents(ComponentsPage,[TSplashScreen,TProgressBarManager,TListBoxManager,TParamDefiner]);
|
||||||
|
end;
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
procedure ShowMessageVal(const Msg: Integer);
|
procedure ShowMessageVal(const Msg: Integer);
|
||||||
begin
|
begin
|
||||||
@@ -1043,7 +1036,7 @@ begin
|
|||||||
FAnimationSpeed := 10;
|
FAnimationSpeed := 10;
|
||||||
FVisible := False;
|
FVisible := False;
|
||||||
|
|
||||||
FAbout := TComponentAbout.Create(TSplashScreen,SplashScreenComponent_Version,SplashScreenComponent_Copyright,SplashScreenComponent_Author);
|
FAbout := TComponentAbout.Create(TSplashScreen);
|
||||||
FSplashForm := TSplashForm.Create;
|
FSplashForm := TSplashForm.Create;
|
||||||
FSplashForm.FormObject.OnShow := FormObjectShow;
|
FSplashForm.FormObject.OnShow := FormObjectShow;
|
||||||
FSplashForm.FormObject.OnHide := FormObjectHide;
|
FSplashForm.FormObject.OnHide := FormObjectHide;
|
||||||
@@ -1396,7 +1389,7 @@ end;
|
|||||||
constructor TProgressBarManager.Create(AOwner: TComponent);
|
constructor TProgressBarManager.Create(AOwner: TComponent);
|
||||||
begin
|
begin
|
||||||
inherited;
|
inherited;
|
||||||
FAbout := TComponentAbout.Create(TProgressBarManager,ProgressBarManagerComponent_Version,ProgressBarManagerComponent_Copyright,ProgressBarManagerComponent_Author);
|
FAbout := TComponentAbout.Create(TProgressBarManager);
|
||||||
FMode := pmmNone;
|
FMode := pmmNone;
|
||||||
|
|
||||||
Update;
|
Update;
|
||||||
@@ -1470,7 +1463,7 @@ end;
|
|||||||
constructor TListBoxManager.Create(AOwner: TComponent);
|
constructor TListBoxManager.Create(AOwner: TComponent);
|
||||||
begin
|
begin
|
||||||
inherited;
|
inherited;
|
||||||
FAbout := TComponentAbout.Create(TListBoxManager,ListBoxManagerComponent_Version,ListBoxManagerComponent_Copyright,ListBoxManagerComponent_Author);
|
FAbout := TComponentAbout.Create(TListBoxManager);
|
||||||
FMode := lmmNone;
|
FMode := lmmNone;
|
||||||
FFilterOptions := [sfoCaseSensitive,sfoForceTrim,sfoDefaultVisible];
|
FFilterOptions := [sfoCaseSensitive,sfoForceTrim,sfoDefaultVisible];
|
||||||
FilteredList := TFilteredStringList.Create;
|
FilteredList := TFilteredStringList.Create;
|
||||||
@@ -1805,7 +1798,7 @@ end;
|
|||||||
constructor TParamDefiner.Create;
|
constructor TParamDefiner.Create;
|
||||||
begin
|
begin
|
||||||
inherited;
|
inherited;
|
||||||
FAbout := TComponentAbout.Create(TParamDefiner,ParamDefinerComponent_Version,ParamDefinerComponent_Copyright,ParamDefinerComponent_Author);
|
FAbout := TComponentAbout.Create(TParamDefiner);
|
||||||
FReferences := TParamReferences.Create(TParamReference);
|
FReferences := TParamReferences.Create(TParamReference);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
@@ -3,13 +3,15 @@ unit uInit;
|
|||||||
//////////////////////////////////////
|
//////////////////////////////////////
|
||||||
/// Lina Initialization Unit ///
|
/// Lina Initialization Unit ///
|
||||||
/// **************************** ///
|
/// **************************** ///
|
||||||
/// (c) 2014 Dennis G�hlert a.o. ///
|
/// (c) 2015 Dennis G�hlert a.o. ///
|
||||||
//////////////////////////////////////
|
//////////////////////////////////////
|
||||||
|
|
||||||
|
{$I 'Config.inc'}
|
||||||
|
|
||||||
interface
|
interface
|
||||||
|
|
||||||
{ Dies ist die Initialisierungs-Unit f�r das Lina Components Package.
|
{ Dies ist die Initialisierungs-Unit f�r das Lina Components Package.
|
||||||
Diese Unit darf NIEMALS direkt in eine Laufzeit-Library eingebunden
|
Diese Unit darf NIEMALS direkt in eine Laufzeit-Bibliothek eingebunden
|
||||||
werden! }
|
werden! }
|
||||||
|
|
||||||
uses
|
uses
|
||||||
@@ -39,7 +41,7 @@ begin
|
|||||||
SplashBitmap := TBitmap.Create;
|
SplashBitmap := TBitmap.Create;
|
||||||
try
|
try
|
||||||
SplashBitmap.LoadFromResourceName(HInstance,'LINA');
|
SplashBitmap.LoadFromResourceName(HInstance,'LINA');
|
||||||
(ToolsAPI.SplashScreenServices as IOTASplashScreenServices).AddPluginBitmap(
|
(SplashScreenServices as IOTASplashScreenServices).AddPluginBitmap(
|
||||||
Package_Name,SplashBitmap.Handle,False,Package_License,Package_SKU);
|
Package_Name,SplashBitmap.Handle,False,Package_License,Package_SKU);
|
||||||
finally
|
finally
|
||||||
SplashBitmap.Free;
|
SplashBitmap.Free;
|
||||||
@@ -51,7 +53,7 @@ begin
|
|||||||
AboutBitmap := TBitmap.Create;
|
AboutBitmap := TBitmap.Create;
|
||||||
try
|
try
|
||||||
AboutBitmap.LoadFromResourceName(HInstance,'LINA');
|
AboutBitmap.LoadFromResourceName(HInstance,'LINA');
|
||||||
PluginIndex := (ToolsAPI.BorlandIDEServices as IOTAAboutBoxServices120).AddPluginInfo(
|
PluginIndex := (BorlandIDEServices as IOTAAboutBoxServices120).AddPluginInfo(
|
||||||
Package_Name,Package_Description,AboutBitmap.Handle,False,Package_License,Package_SKU);
|
Package_Name,Package_Description,AboutBitmap.Handle,False,Package_License,Package_SKU);
|
||||||
except
|
except
|
||||||
AboutBitmap.Free;
|
AboutBitmap.Free;
|
||||||
@@ -68,59 +70,6 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
initialization
|
initialization
|
||||||
{$IF Defined(CompilerVersion) = True}
|
|
||||||
{$IF CompilerVersion < 15.0}
|
|
||||||
{ Fr�here Delphi-Versionen als Delphi 7 werden nicht (offiziell)
|
|
||||||
unterst�tzt. }
|
|
||||||
{$MESSAGE ERROR 'Lina Components requires Delphi 7 or higher'}
|
|
||||||
{$IFEND}
|
|
||||||
{$IF CompilerVersion < 17.0}
|
|
||||||
{ Unter fr�heren Delphi-Versionen als 2005 gab es noch nicht dieM�glichkeit,
|
|
||||||
Records mit methoden zu versehen. Die Implementierung von Prozeduren und/
|
|
||||||
oder Funktionen war Klassen vorenthalten. }
|
|
||||||
{$DEFINE NO_RECORDMETHODS}
|
|
||||||
{$IFEND}
|
|
||||||
{$IF CompilerVersion < 18.5}
|
|
||||||
{ Unter fr�heren Delphi-Versionen als 2007 gab es (offiziell) noch keine
|
|
||||||
Unterst�tzung f�r Windows-Vista-spezifische funktionen wie die TaskDialog-
|
|
||||||
Komponente oder einige Funktionen.
|
|
||||||
Damit dies nicht zu Problemen f�hrt, geht der Compiler darauf mithilfe
|
|
||||||
dieser Direktive ein. }
|
|
||||||
{$DEFINE NO_VISTA}
|
|
||||||
{$IFEND}
|
|
||||||
{$IF CompilerVersion < 21.0}
|
|
||||||
{ Unter fr�heren Delphi-Versionen als 2010 gab es ein Problem mit dem
|
|
||||||
"crHandPoint" cursor, sodass dieser nicht korrekt unter Windows Vista oder
|
|
||||||
h�her dargestellt wurde, sondern stattdessen im alten Windows-Look.
|
|
||||||
Bei �lteren Delphi-Versionen als 2010 steht deswegen eine Pseudo-
|
|
||||||
Komponente zur Behebung dieses Problems zur Verf�gung. }
|
|
||||||
{$DEFINE NO_HANDPOINT}
|
|
||||||
{$IFEND}
|
|
||||||
{$IF CompilerVersion < 20.0}
|
|
||||||
{ Unter fr�heren Delphi-Versionen als 2009 war die Nutzung generischer
|
|
||||||
Datentypen (Generics) nicht m�glich. Da es ohne diese nahezu unm�glich
|
|
||||||
scheint, typisierte Objekte, wie zum Beispiel typisierte TObjectList's
|
|
||||||
zu deklarieren, fallen diese Deklarationen unter fr�heren Delphi-Versionen
|
|
||||||
weg. Dies kann eventuell zu kompatibilit�tsproblemen zwischen
|
|
||||||
unterschiedlichen Nutzern dieser Komponenten f�hren, l�sst sich aber nicht
|
|
||||||
vermeiden. }
|
|
||||||
{$DEFINE NO_GENERIC}
|
|
||||||
{$IFEND}
|
|
||||||
{$IF CompilerVersion < 20.0}
|
|
||||||
{ Unter fr�heren Delphi-Versionen als 2009 entsprach der String-Typenalias
|
|
||||||
dem AnsiString-Typen. Da es gegebenfalls bei manchen externen (zB. OS-
|
|
||||||
Spezifischen) Klassen zu Kompatibilit�tsproblemen kommmen k�nnte, wird
|
|
||||||
hier eine �berpr�fung der Unicode-Unterst�tzung durchgef�hrt.
|
|
||||||
Zu beachten ist jedoch, dass Delphi 2009 und h�her AnsiStrings implizit
|
|
||||||
in UnicodeStrings umwandelt und umgekehrt (sofern m�glich). }
|
|
||||||
{$DEFINE NO_UNICODE}
|
|
||||||
{$IFEND}
|
|
||||||
{$IFEND}
|
|
||||||
{ Globale Einstellungen }
|
|
||||||
{$DEFINE ADD_SPLASHENTRY}
|
|
||||||
{$DEFINE ADD_ABOUTENTRY}
|
|
||||||
{$DEFINE WARN_INCOMPATIBLEOS}
|
|
||||||
|
|
||||||
{ Package-Registrierung }
|
{ Package-Registrierung }
|
||||||
{$IFDEF ADD_SPLASHENTRY}
|
{$IFDEF ADD_SPLASHENTRY}
|
||||||
RegisterPackageOnSplash;
|
RegisterPackageOnSplash;
|
||||||
@@ -129,6 +78,7 @@ initialization
|
|||||||
RegisterPackageOnAbout;
|
RegisterPackageOnAbout;
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
|
||||||
|
|
||||||
finalization
|
finalization
|
||||||
{ Package-Deregistrierung }
|
{ Package-Deregistrierung }
|
||||||
{$IFDEF ADD_ABOUTENTRY}
|
{$IFDEF ADD_ABOUTENTRY}
|
||||||
|
@@ -3,22 +3,18 @@ unit uLocalMgr;
|
|||||||
//////////////////////////////////////
|
//////////////////////////////////////
|
||||||
/// Lina Localize Manager Unit ///
|
/// Lina Localize Manager Unit ///
|
||||||
/// **************************** ///
|
/// **************************** ///
|
||||||
/// (c) 2014 Dennis G�hlert a.o. ///
|
/// (c) 2015 Dennis G�hlert a.o. ///
|
||||||
//////////////////////////////////////
|
//////////////////////////////////////
|
||||||
|
|
||||||
{$IFNDEF MSWINDOWS}
|
{$I 'Config.inc'}
|
||||||
{$IFDEF WARN_INCOMPATIBLEOS}
|
|
||||||
{$MESSAGE ERROR 'The "uLocalMgr" unit is only available under MS-Windows OS'}
|
|
||||||
{$ENDIF}
|
|
||||||
{$ENDIF}
|
|
||||||
|
|
||||||
interface
|
interface
|
||||||
|
|
||||||
uses
|
uses
|
||||||
{ Standard-Units }
|
{ Standard-Units }
|
||||||
SysUtils, Classes, Controls, Forms, TypInfo,
|
SysUtils, Classes, Controls, Forms, TypInfo, IniFiles,
|
||||||
{ Andere Package-Units }
|
{ Andere Package-Units }
|
||||||
uBase, uSysTools;
|
uBase, uSysTools, uFileTools;
|
||||||
|
|
||||||
type
|
type
|
||||||
{ Fehlermeldungen }
|
{ Fehlermeldungen }
|
||||||
@@ -52,6 +48,7 @@ type
|
|||||||
FIndent: String;
|
FIndent: String;
|
||||||
FAddress: String;
|
FAddress: String;
|
||||||
FCharacter: String;
|
FCharacter: String;
|
||||||
|
FSpecial: String;
|
||||||
{ Methoden }
|
{ Methoden }
|
||||||
procedure SetComment(Value: String);
|
procedure SetComment(Value: String);
|
||||||
procedure SetSeparator(Value: String);
|
procedure SetSeparator(Value: String);
|
||||||
@@ -59,6 +56,7 @@ type
|
|||||||
procedure SetIndent(Value: String);
|
procedure SetIndent(Value: String);
|
||||||
procedure SetAddress(Value: String);
|
procedure SetAddress(Value: String);
|
||||||
procedure SetCharacter(Value: String);
|
procedure SetCharacter(Value: String);
|
||||||
|
procedure SetSpecial(Value: String);
|
||||||
public
|
public
|
||||||
{ Public-Deklarationen }
|
{ Public-Deklarationen }
|
||||||
constructor Create;
|
constructor Create;
|
||||||
@@ -72,6 +70,30 @@ type
|
|||||||
property Indent: String read FIndent write SetIndent;
|
property Indent: String read FIndent write SetIndent;
|
||||||
property Address: String read FAddress write SetAddress;
|
property Address: String read FAddress write SetAddress;
|
||||||
property Character: String read FCharacter write SetCharacter;
|
property Character: String read FCharacter write SetCharacter;
|
||||||
|
property Special: String read FSpecial write SetSpecial;
|
||||||
|
end;
|
||||||
|
|
||||||
|
TLocalizationData = class;
|
||||||
|
|
||||||
|
TLocalization = class;
|
||||||
|
|
||||||
|
TLocalizationImporter = class
|
||||||
|
private
|
||||||
|
{ Private-Deklarationen }
|
||||||
|
FLocalization: TLocalization;
|
||||||
|
FClearBeforeImport: Boolean;
|
||||||
|
{ Methoden }
|
||||||
|
procedure PrepareImport;
|
||||||
|
{ Eigenschaften }
|
||||||
|
property Localization: TLocalization read FLocalization;
|
||||||
|
public
|
||||||
|
{ Public-Deklarationen }
|
||||||
|
constructor Create(ALocalization: TLocalization);
|
||||||
|
destructor Destroy; override;
|
||||||
|
procedure ImportFromData(Data: TLocalizationData);
|
||||||
|
procedure ImportFromINI(INI: TIniFile);
|
||||||
|
{ Eigenschaften }
|
||||||
|
property ClearBeforeImport: Boolean read FClearBeforeImport write FClearBeforeImport default True;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
TLocalization = class(TCollectionItem)
|
TLocalization = class(TCollectionItem)
|
||||||
@@ -82,10 +104,12 @@ type
|
|||||||
FTag: TLanguageTag;
|
FTag: TLanguageTag;
|
||||||
FFormat: TLocalizationFormat;
|
FFormat: TLocalizationFormat;
|
||||||
FEncoding: TCharEncoding;
|
FEncoding: TCharEncoding;
|
||||||
|
FConverter: TLocalizationImporter;
|
||||||
{ Methoden }
|
{ Methoden }
|
||||||
function GetDisplayName: String; override;
|
function GetDisplayName: String; override;
|
||||||
function GetLines: TStrings;
|
function GetLines: TStrings;
|
||||||
procedure SetLines(Value: TStrings);
|
procedure SetLines(Value: TStrings);
|
||||||
|
procedure SetName(Value: ShortString);
|
||||||
procedure SetTag(Value: TLanguageTag);
|
procedure SetTag(Value: TLanguageTag);
|
||||||
function GetFormat: TLocalizationFormat;
|
function GetFormat: TLocalizationFormat;
|
||||||
procedure SetFormat(Value: TLocalizationFormat);
|
procedure SetFormat(Value: TLocalizationFormat);
|
||||||
@@ -107,11 +131,12 @@ type
|
|||||||
published
|
published
|
||||||
{ Published-Deklarationen }
|
{ Published-Deklarationen }
|
||||||
{ Eigenschaften }
|
{ Eigenschaften }
|
||||||
property Name: ShortString read FName write FName;
|
property Name: ShortString read FName write SetName;
|
||||||
property Tag: TLanguageTag read FTag write SetTag;
|
property Tag: TLanguageTag read FTag write SetTag;
|
||||||
property Lines: TStrings read GetLines write SetLines;
|
property Lines: TStrings read GetLines write SetLines;
|
||||||
property Format: TLocalizationFormat read GetFormat write SetFormat;
|
property Format: TLocalizationFormat read GetFormat write SetFormat;
|
||||||
property Encoding: TCharEncoding read FEncoding write SetEncoding default {$IFDEF NO_UNICODE} ceUTF8 {$ELSE} ceUnicode {$ENDIF};
|
property Encoding: TCharEncoding read FEncoding write SetEncoding default {$IFDEF NO_UNICODE} ceUTF8 {$ELSE} ceUnicode {$ENDIF};
|
||||||
|
property Converter: TLocalizationImporter read FConverter write FConverter;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
TLocalizationManager = class;
|
TLocalizationManager = class;
|
||||||
@@ -125,6 +150,27 @@ type
|
|||||||
constructor Create(ItemClass: TCollectionItemClass; AManager: TLocalizationManager);
|
constructor Create(ItemClass: TCollectionItemClass; AManager: TLocalizationManager);
|
||||||
destructor Destroy; override;
|
destructor Destroy; override;
|
||||||
function IndexOfTag(const Tag: TLanguageTag): Integer;
|
function IndexOfTag(const Tag: TLanguageTag): Integer;
|
||||||
|
procedure LoadFromFile(const FileName: String);
|
||||||
|
procedure SaveToFile(const FileName: String);
|
||||||
|
procedure LoadFromDirectory(const Dir: String; FileExts: array of String; RecMode: Boolean = True);
|
||||||
|
end;
|
||||||
|
|
||||||
|
TLocalizationExporter = class
|
||||||
|
private
|
||||||
|
{ Private-Deklarationen }
|
||||||
|
FData: TLocalizationData;
|
||||||
|
FClearBeforeExport: Boolean;
|
||||||
|
{ Eigenschaften }
|
||||||
|
property Data: TLocalizationData read FData;
|
||||||
|
public
|
||||||
|
{ Public-Deklarationen }
|
||||||
|
constructor Create(AData: TLocalizationData);
|
||||||
|
destructor Destroy; override;
|
||||||
|
procedure ExportToINI(var INI: TIniFile);
|
||||||
|
published
|
||||||
|
{ Published-Deklarationen }
|
||||||
|
{ Eigenschaften }
|
||||||
|
property ClearBeforeExport: Boolean read FClearBeforeExport write FClearBeforeExport default True;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
TLocalizationData = class
|
TLocalizationData = class
|
||||||
@@ -134,6 +180,7 @@ type
|
|||||||
Indents: array of TStringReferenceDataArray;
|
Indents: array of TStringReferenceDataArray;
|
||||||
Values: TStringArray;
|
Values: TStringArray;
|
||||||
FManager: TLocalizationManager;
|
FManager: TLocalizationManager;
|
||||||
|
FExporter: TLocalizationExporter;
|
||||||
protected
|
protected
|
||||||
{ Protected-Deklarationen }
|
{ Protected-Deklarationen }
|
||||||
procedure AddSection(Section: String);
|
procedure AddSection(Section: String);
|
||||||
@@ -156,6 +203,7 @@ type
|
|||||||
procedure WriteInteger(const Section,Indent: String; Value: Integer);
|
procedure WriteInteger(const Section,Indent: String; Value: Integer);
|
||||||
procedure WriteFloat(const Section,Indent: String; Value: Extended);
|
procedure WriteFloat(const Section,Indent: String; Value: Extended);
|
||||||
procedure Address(const Section,Indent,Target: String);
|
procedure Address(const Section,Indent,Target: String);
|
||||||
|
property Exporter: TLocalizationExporter read FExporter write FExporter;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
TLocalizationReferences = class(TCollection)
|
TLocalizationReferences = class(TCollection)
|
||||||
@@ -178,6 +226,7 @@ type
|
|||||||
FReference: PString;
|
FReference: PString;
|
||||||
FField: String;
|
FField: String;
|
||||||
{ Methoden }
|
{ Methoden }
|
||||||
|
function GetDisplayName: String; override;
|
||||||
procedure SetIndent(Value: String);
|
procedure SetIndent(Value: String);
|
||||||
procedure Apply;
|
procedure Apply;
|
||||||
public
|
public
|
||||||
@@ -217,6 +266,9 @@ type
|
|||||||
property ApplyMode: TLocalizationApplyMode read FApplyMode write SetApplyMode default laCustom;
|
property ApplyMode: TLocalizationApplyMode read FApplyMode write SetApplyMode default laCustom;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
{$IFNDEF NO_MULTIPLATFORM}
|
||||||
|
[ComponentPlatformsAttribute(pidWin32 or pidWin64)]
|
||||||
|
{$ENDIF}
|
||||||
TLocalizationManager = class(TComponent)
|
TLocalizationManager = class(TComponent)
|
||||||
private
|
private
|
||||||
{ Ereignisse}
|
{ Ereignisse}
|
||||||
@@ -257,20 +309,18 @@ type
|
|||||||
property Applier: TLocalizationApplier read FApplier write FApplier;
|
property Applier: TLocalizationApplier read FApplier write FApplier;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure Register;
|
{$IFDEF ADD_COMPONENTREG}
|
||||||
|
procedure Register;
|
||||||
const
|
{$ENDIF}
|
||||||
{ Meta-Daten }
|
|
||||||
LocalizationManagerComponent_Version = '1.0';
|
|
||||||
LocalizationManagerComponent_Copyright = 'Copyright � 2015';
|
|
||||||
LocalizationManagerComponent_Author = 'Dennis G�hlert a.o.';
|
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
|
|
||||||
procedure Register;
|
{$IFDEF ADD_COMPONENTREG}
|
||||||
begin
|
procedure Register;
|
||||||
RegisterComponents(ComponentsPage,[TLocalizationManager]);
|
begin
|
||||||
end;
|
RegisterComponents(ComponentsPage,[TLocalizationManager]);
|
||||||
|
end;
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
{ ----------------------------------------------------------------------------
|
{ ----------------------------------------------------------------------------
|
||||||
TLocalizationFormat
|
TLocalizationFormat
|
||||||
@@ -285,6 +335,7 @@ begin
|
|||||||
FHeader := '*';
|
FHeader := '*';
|
||||||
FAddress := '@';
|
FAddress := '@';
|
||||||
FCharacter := '$#';
|
FCharacter := '$#';
|
||||||
|
FSpecial := '!';
|
||||||
end;
|
end;
|
||||||
|
|
||||||
destructor TLocalizationFormat.Destroy;
|
destructor TLocalizationFormat.Destroy;
|
||||||
@@ -297,7 +348,7 @@ procedure TLocalizationFormat.SetComment(Value: String);
|
|||||||
var
|
var
|
||||||
Index: Integer;
|
Index: Integer;
|
||||||
begin
|
begin
|
||||||
if (ArrayPos(Value,[FSeparator,FHeader,FIndent,FAddress,FCharacter]) <> -1) or (Length(Value) = 0) then
|
if (ArrayPos(Value,[FSeparator,FHeader,FIndent,FAddress,FCharacter,FSpecial]) <> -1) or (Length(Value) = 0) then
|
||||||
begin
|
begin
|
||||||
raise EInvalidFormat.Create('Invalid localization format for property: "Comment"');
|
raise EInvalidFormat.Create('Invalid localization format for property: "Comment"');
|
||||||
end;
|
end;
|
||||||
@@ -315,7 +366,7 @@ procedure TLocalizationFormat.SetSeparator(Value: String);
|
|||||||
var
|
var
|
||||||
Index: Integer;
|
Index: Integer;
|
||||||
begin
|
begin
|
||||||
if (ArrayPos(Value,[FComment,FHeader,FIndent,FAddress,FCharacter]) <> -1) or (Length(Value) = 0) then
|
if (ArrayPos(Value,[FComment,FHeader,FIndent,FAddress,FCharacter,FSpecial]) <> -1) or (Length(Value) = 0) then
|
||||||
begin
|
begin
|
||||||
raise EInvalidFormat.Create('Invalid localization format for property: "Separator"');
|
raise EInvalidFormat.Create('Invalid localization format for property: "Separator"');
|
||||||
end;
|
end;
|
||||||
@@ -333,7 +384,7 @@ procedure TLocalizationFormat.SetHeader(Value: String);
|
|||||||
var
|
var
|
||||||
Index: Integer;
|
Index: Integer;
|
||||||
begin
|
begin
|
||||||
if ArrayPos(Value,[FComment,FSeparator,FIndent,FAddress,FCharacter]) <> -1 then
|
if ArrayPos(Value,[FComment,FSeparator,FIndent,FAddress,FCharacter,FSpecial]) <> -1 then
|
||||||
begin
|
begin
|
||||||
raise EInvalidFormat.Create('Invalid localization format for property: "Header"');
|
raise EInvalidFormat.Create('Invalid localization format for property: "Header"');
|
||||||
end;
|
end;
|
||||||
@@ -351,7 +402,7 @@ procedure TLocalizationFormat.SetIndent(Value: String);
|
|||||||
var
|
var
|
||||||
Index: Integer;
|
Index: Integer;
|
||||||
begin
|
begin
|
||||||
if ArrayPos(Value,[FComment,FSeparator,FHeader,FAddress,FCharacter]) <> -1 then
|
if ArrayPos(Value,[FComment,FSeparator,FHeader,FAddress,FCharacter,FSpecial]) <> -1 then
|
||||||
begin
|
begin
|
||||||
raise EInvalidFormat.Create('Invalid localization format for property: "Indent"');
|
raise EInvalidFormat.Create('Invalid localization format for property: "Indent"');
|
||||||
end;
|
end;
|
||||||
@@ -369,7 +420,7 @@ procedure TLocalizationFormat.SetAddress(Value: String);
|
|||||||
var
|
var
|
||||||
Index: Integer;
|
Index: Integer;
|
||||||
begin
|
begin
|
||||||
if (ArrayPos(Value,[FComment,FSeparator,FHeader,FIndent,FCharacter]) <> -1) or (Length(Value) = 0) then
|
if (ArrayPos(Value,[FComment,FSeparator,FHeader,FIndent,FCharacter,FSpecial]) <> -1) or (Length(Value) = 0) then
|
||||||
begin
|
begin
|
||||||
raise EInvalidFormat.Create('Invalid localization format for property: "Address"');
|
raise EInvalidFormat.Create('Invalid localization format for property: "Address"');
|
||||||
end;
|
end;
|
||||||
@@ -387,7 +438,7 @@ procedure TLocalizationFormat.SetCharacter(Value: String);
|
|||||||
var
|
var
|
||||||
Index: Integer;
|
Index: Integer;
|
||||||
begin
|
begin
|
||||||
if (ArrayPos(Value,[FComment,FSeparator,FHeader,FIndent,FAddress]) <> -1) or (Length(Value) = 0) then
|
if (ArrayPos(Value,[FComment,FSeparator,FHeader,FIndent,FAddress,FSpecial]) <> -1) or (Length(Value) = 0) then
|
||||||
begin
|
begin
|
||||||
raise EInvalidFormat.Create('Invalid localization format for property: "Character"');
|
raise EInvalidFormat.Create('Invalid localization format for property: "Character"');
|
||||||
end;
|
end;
|
||||||
@@ -401,6 +452,109 @@ begin
|
|||||||
FCharacter := Value;
|
FCharacter := Value;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TLocalizationFormat.SetSpecial(Value: String);
|
||||||
|
var
|
||||||
|
Index: Integer;
|
||||||
|
begin
|
||||||
|
if ArrayPos(Value,[FComment,FSeparator,FHeader,FIndent,FAddress,FCharacter]) <> -1 then
|
||||||
|
begin
|
||||||
|
raise EInvalidFormat.Create('Invalid localization format for property: "Special"');
|
||||||
|
end;
|
||||||
|
for Index := 1 to Length(Value) do
|
||||||
|
begin
|
||||||
|
if Value[Index] in Spaces then
|
||||||
|
begin
|
||||||
|
raise EInvalidFormat.Create('Invalid localization format for property: "Special"');
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
FSpecial := Value;
|
||||||
|
end;
|
||||||
|
|
||||||
|
{ ----------------------------------------------------------------------------
|
||||||
|
TLocalizationImporter
|
||||||
|
---------------------------------------------------------------------------- }
|
||||||
|
|
||||||
|
constructor TLocalizationImporter.Create(ALocalization: TLocalization);
|
||||||
|
begin
|
||||||
|
inherited Create;
|
||||||
|
FLocalization := ALocalization;
|
||||||
|
FClearBeforeImport := True;
|
||||||
|
end;
|
||||||
|
|
||||||
|
destructor TLocalizationImporter.Destroy;
|
||||||
|
begin
|
||||||
|
//...
|
||||||
|
inherited;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TLocalizationImporter.PrepareImport;
|
||||||
|
begin
|
||||||
|
if ClearBeforeImport = True then
|
||||||
|
begin
|
||||||
|
Localization.Lines.Clear;
|
||||||
|
end;
|
||||||
|
Localization.Lines.Add(Localization.Format.Comment + ' ' + '+++ AUTO-GENERATED LOCALIZATION CONTENT +++');
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TLocalizationImporter.ImportFromData(Data: TLocalizationData);
|
||||||
|
var
|
||||||
|
Section: Integer;
|
||||||
|
Indent: Integer;
|
||||||
|
begin
|
||||||
|
if Data = nil then
|
||||||
|
begin
|
||||||
|
Exit;
|
||||||
|
end;
|
||||||
|
PrepareImport;
|
||||||
|
for Section := 0 to Length(Data.Sections) - 1 do
|
||||||
|
begin
|
||||||
|
if Data.Sections[Section].Value <> '' then
|
||||||
|
begin
|
||||||
|
Localization.Lines.Add(Localization.Format.Header + ' ' + Data.Sections[Section].Value);
|
||||||
|
end;
|
||||||
|
for Indent := 0 to Length(Data.Sections[Section].Reference^) - 1 do
|
||||||
|
begin
|
||||||
|
Localization.Lines.Add(Localization.Format.Indent + ' ' + Data.Sections[Section].Reference^[Indent].Value + ' ' + Localization.Format.Separator + ' ' + Data.Sections[Section].Reference^[Indent].Reference^);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TLocalizationImporter.ImportFromINI(INI: TIniFile);
|
||||||
|
var
|
||||||
|
Sections: TStrings;
|
||||||
|
Section: Integer;
|
||||||
|
Indents: TStrings;
|
||||||
|
Indent: Integer;
|
||||||
|
begin
|
||||||
|
if INI = nil then
|
||||||
|
begin
|
||||||
|
Exit;
|
||||||
|
end;
|
||||||
|
PrepareImport;
|
||||||
|
Sections := TStringList.Create;
|
||||||
|
try
|
||||||
|
INI.ReadSections(Sections);
|
||||||
|
for Section := 0 to Sections.Count - 1 do
|
||||||
|
begin
|
||||||
|
if Sections.Strings[Section] <> '' then
|
||||||
|
begin
|
||||||
|
Localization.Lines.Add(Localization.Format.Header + ' ' + Sections[Section]);
|
||||||
|
end;
|
||||||
|
Indents := TStringList.Create;
|
||||||
|
try
|
||||||
|
for Indent := 0 to Indents.Count - 1 do
|
||||||
|
begin
|
||||||
|
Localization.Lines.Add(Localization.Format.Indent + ' ' + Indents.Strings[Indent] + ' ' + Localization.Format.Separator + ' ' + INI.ReadString(Sections.Strings[Section],Indents.Strings[Indent],''));
|
||||||
|
end;
|
||||||
|
finally
|
||||||
|
Indents.Free;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
finally
|
||||||
|
Sections.Free;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
{ ----------------------------------------------------------------------------
|
{ ----------------------------------------------------------------------------
|
||||||
TLocalization
|
TLocalization
|
||||||
---------------------------------------------------------------------------- }
|
---------------------------------------------------------------------------- }
|
||||||
@@ -412,12 +566,14 @@ begin
|
|||||||
FFormat := TLocalizationFormat.Create;
|
FFormat := TLocalizationFormat.Create;
|
||||||
FTag := 'L' + IntToStrMinLength(ID,2);
|
FTag := 'L' + IntToStrMinLength(ID,2);
|
||||||
Encoding := {$IFDEF NO_UNICODE} ceUTF8 {$ELSE} ceUnicode {$ENDIF};
|
Encoding := {$IFDEF NO_UNICODE} ceUTF8 {$ELSE} ceUnicode {$ENDIF};
|
||||||
|
FConverter := TLocalizationImporter.Create(Self);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
constructor TLocalization.Create(Collection: TCollection; const AFileName: TFileName);
|
constructor TLocalization.Create(Collection: TCollection; const AFileName: TFileName);
|
||||||
begin
|
begin
|
||||||
Create(Collection);
|
Create(Collection);
|
||||||
Lines.LoadFromFile(AFileName);
|
Lines.LoadFromFile(AFileName);
|
||||||
|
FConverter.Free;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
destructor TLocalization.Destroy;
|
destructor TLocalization.Destroy;
|
||||||
@@ -449,6 +605,7 @@ end;
|
|||||||
|
|
||||||
procedure TLocalization.SetTag(Value: TLanguageTag);
|
procedure TLocalization.SetTag(Value: TLanguageTag);
|
||||||
begin
|
begin
|
||||||
|
Value := Trim(Value);
|
||||||
if ((Collection as TLocalizations).IndexOfTag(Value) > -1) and
|
if ((Collection as TLocalizations).IndexOfTag(Value) > -1) and
|
||||||
((Collection as TLocalizations).IndexOfTag(Value) <> Index)then
|
((Collection as TLocalizations).IndexOfTag(Value) <> Index)then
|
||||||
begin
|
begin
|
||||||
@@ -459,6 +616,16 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TLocalization.SetName(Value: ShortString);
|
||||||
|
begin
|
||||||
|
Value := Trim(Value);
|
||||||
|
if Value[1] in ['a'..'z'] then
|
||||||
|
begin
|
||||||
|
Value[1] := UpCase(Value[1]);
|
||||||
|
end;
|
||||||
|
FName := Value;
|
||||||
|
end;
|
||||||
|
|
||||||
function TLocalization.GetFormat: TLocalizationFormat;
|
function TLocalization.GetFormat: TLocalizationFormat;
|
||||||
begin
|
begin
|
||||||
Result := FFormat;
|
Result := FFormat;
|
||||||
@@ -516,13 +683,24 @@ function TLocalization.Apply: Boolean;
|
|||||||
|
|
||||||
Die Syntax entspricht den in der TLocalizationFormat-Klasse festgelegten
|
Die Syntax entspricht den in der TLocalizationFormat-Klasse festgelegten
|
||||||
Bausteinen und Einstellungen, die zur Laufzeit f�r jede Sprache Individuell
|
Bausteinen und Einstellungen, die zur Laufzeit f�r jede Sprache Individuell
|
||||||
festgelegt werden kann. }
|
festgelegt werden kann.
|
||||||
|
|
||||||
|
Spezielle Direktiven:
|
||||||
|
- "LOC <Name>": Namen der aktuellen Sprache �ndern
|
||||||
|
- "TAG <Tag>": Sprachk�rzel der aktuellen Sprache �ndern
|
||||||
|
- "INC <Sprache>": Andere Sprache einbinden
|
||||||
|
- "END": Kompilierung beenden
|
||||||
|
- "APP <Anwendung>": Fortfahren, falls der Titel der Anwendung �bereinstimmt
|
||||||
|
- "NOT <Anwendung>": Beenden, falls der Titel der Anwendung �bereinstimmt }
|
||||||
|
const
|
||||||
|
Specials: array [0..5] of String = ('loc','tag','inc','end','app','not');
|
||||||
var
|
var
|
||||||
Position: (posPrefix,posIndent,posSeparator,posValue);
|
Position: (posPrefix,posIndent,posSeparator,posValue);
|
||||||
Line: Integer;
|
Line: Integer;
|
||||||
Complete: Boolean;
|
Complete: Boolean;
|
||||||
Finished: Boolean;
|
Finished: Boolean;
|
||||||
Header: Boolean;
|
Header: Boolean;
|
||||||
|
Special: Boolean;
|
||||||
Address: Boolean;
|
Address: Boolean;
|
||||||
Character: Boolean;
|
Character: Boolean;
|
||||||
Current: PChar;
|
Current: PChar;
|
||||||
@@ -549,6 +727,7 @@ begin
|
|||||||
//Zeilenanfang
|
//Zeilenanfang
|
||||||
Position := posPrefix;
|
Position := posPrefix;
|
||||||
Header := False;
|
Header := False;
|
||||||
|
Special := False;
|
||||||
Address := False;
|
Address := False;
|
||||||
Complete := False;
|
Complete := False;
|
||||||
Finished := False;
|
Finished := False;
|
||||||
@@ -562,14 +741,15 @@ begin
|
|||||||
if ((Address = False) or (Current^ <> #0)) and (not (Current^ in Spaces)) or ((((Address = False) and (Position = posValue)) or (Header = True)) and (Length(Block) <> 0)) then
|
if ((Address = False) or (Current^ <> #0)) and (not (Current^ in Spaces)) or ((((Address = False) and (Position = posValue)) or (Header = True)) and (Length(Block) <> 0)) then
|
||||||
begin
|
begin
|
||||||
//Zeichen zu Block hinzuf�gen
|
//Zeichen zu Block hinzuf�gen
|
||||||
if Character = False then
|
if Current^ <> #0 then
|
||||||
begin
|
begin
|
||||||
Block := Block + Current^;
|
if Character = False then
|
||||||
if address = true then
|
begin
|
||||||
address := true;
|
Block := Block + Current^;
|
||||||
end else
|
end else
|
||||||
begin
|
begin
|
||||||
Ordinal := Ordinal + Current^;
|
Ordinal := Ordinal + Current^;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
if (Current^ = #0{@Lines.Strings[Line][Length(Lines.Strings[Line])]}) or ((Character = True) and (Current^ in Spaces)) then
|
if (Current^ = #0{@Lines.Strings[Line][Length(Lines.Strings[Line])]}) or ((Character = True) and (Current^ in Spaces)) then
|
||||||
begin
|
begin
|
||||||
@@ -645,7 +825,7 @@ begin
|
|||||||
(Address = True) then
|
(Address = True) then
|
||||||
begin
|
begin
|
||||||
//Block fertig
|
//Block fertig
|
||||||
if ((Position = posSeparator) and (Block = Format.Separator)) or ((Block = Format.Comment) and ((Position = posPrefix) or (Finished = True))) or ((Header = True) and (Position = posIndent) and (Length(Block) <> 0)) or ((Position = PosValue) and ((Address = False) or (Length(Block) <> 0))) then
|
if ((Position = posSeparator) and (Block = Format.Separator)) or ((Block = Format.Comment) and ((Position = posPrefix) or (Finished = True))) or ((Header = True) and (Position = posIndent) and (Length(Block) <> 0)) or (((Position = PosValue) or ((Current^ = #0) and (Special = True))) and ((Address = False) or ((Length(Block) <> 0) or (Special = True)))) then
|
||||||
begin
|
begin
|
||||||
if Position = posSeparator then
|
if Position = posSeparator then
|
||||||
begin
|
begin
|
||||||
@@ -660,25 +840,106 @@ begin
|
|||||||
//Ende von Value
|
//Ende von Value
|
||||||
if (Finished = False) and (Block <> Format.Comment) then
|
if (Finished = False) and (Block <> Format.Comment) then
|
||||||
begin
|
begin
|
||||||
if Address = False then
|
//Ende von Special
|
||||||
|
if Special = True then
|
||||||
begin
|
begin
|
||||||
//Wert
|
if Length(Indent) = 0 then
|
||||||
(Collection as TLocalizations).FManager.Data.WriteString(Section,Indent,TrimRight(Block));
|
|
||||||
end else
|
|
||||||
begin
|
|
||||||
//Adressierung
|
|
||||||
Complete := (Current^ = #0{@Lines.Strings[Line][Length(Lines.Strings[Line])]});
|
|
||||||
if (Collection as TLocalizations).FManager.Data.IndentExists(Section,Block) = True then
|
|
||||||
begin
|
begin
|
||||||
(Collection as TLocalizations).FManager.Data.Address(Section,Indent,Block);
|
Indent := LowerCase(Block);
|
||||||
Finished := True;
|
Block := '';
|
||||||
Block := '';
|
end;
|
||||||
Inc(Current);
|
if Indent = Specials[0] then
|
||||||
Continue;
|
begin
|
||||||
|
//LOC abc
|
||||||
|
Name := Block;
|
||||||
end else
|
end else
|
||||||
begin
|
begin
|
||||||
RaiseParseErrorUndeclared(Block,Line,Current,Length(Block));
|
if Indent = Specials[1] then
|
||||||
Exit;
|
begin
|
||||||
|
//TAG abc
|
||||||
|
Tag := Block;
|
||||||
|
end else
|
||||||
|
begin
|
||||||
|
if Indent = Specials[2] then
|
||||||
|
begin
|
||||||
|
//INC abc
|
||||||
|
((Collection as TLocalizations).Items[(Collection as TLocalizations).IndexOfTag(Trim(Block))] as TLocalization).Apply;
|
||||||
|
end else
|
||||||
|
begin
|
||||||
|
if Indent = Specials[3] then
|
||||||
|
begin
|
||||||
|
//END
|
||||||
|
if Length(Trim(Block)) <> 0 then
|
||||||
|
begin
|
||||||
|
RaiseParseErrorUnexpected('End of line','expression',Line,Current,Length(Block));
|
||||||
|
end;
|
||||||
|
Exit;
|
||||||
|
end else
|
||||||
|
begin
|
||||||
|
if Indent = Specials[4] then
|
||||||
|
begin
|
||||||
|
//APP abc
|
||||||
|
Block := Trim(Block);
|
||||||
|
if (Length(Block) <> 0) and (Position = posValue) then
|
||||||
|
begin
|
||||||
|
if Application.Title <> Block then
|
||||||
|
begin
|
||||||
|
Exit;
|
||||||
|
end;
|
||||||
|
end else
|
||||||
|
begin
|
||||||
|
RaiseParseErrorUnexpected('Argument','end of line',Line,Current);
|
||||||
|
Exit;
|
||||||
|
end;
|
||||||
|
end else
|
||||||
|
begin
|
||||||
|
if Indent = Specials[5] then
|
||||||
|
begin
|
||||||
|
//NOT abc
|
||||||
|
if (Length(Block) <> 0) and (Position = posValue) then
|
||||||
|
begin
|
||||||
|
if Application.Title = Block then
|
||||||
|
begin
|
||||||
|
Exit;
|
||||||
|
end;
|
||||||
|
end else
|
||||||
|
begin
|
||||||
|
RaiseParseErrorUnexpected('Argument','end of line',Line,Current);
|
||||||
|
Exit;
|
||||||
|
end;
|
||||||
|
end else
|
||||||
|
begin
|
||||||
|
RaiseParseErrorUnexpected('End of line','expression',Line,Current);
|
||||||
|
Exit;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end else
|
||||||
|
begin
|
||||||
|
//Ende von Indent
|
||||||
|
if Address = False then
|
||||||
|
begin
|
||||||
|
//Wert
|
||||||
|
(Collection as TLocalizations).FManager.Data.WriteString(Section,Indent,TrimRight(Block));
|
||||||
|
end else
|
||||||
|
begin
|
||||||
|
//Adressierung
|
||||||
|
Complete := (Current^ = #0{@Lines.Strings[Line][Length(Lines.Strings[Line])]});
|
||||||
|
if (Collection as TLocalizations).FManager.Data.IndentExists(Section,Block) = True then
|
||||||
|
begin
|
||||||
|
(Collection as TLocalizations).FManager.Data.Address(Section,Indent,Block);
|
||||||
|
Finished := True;
|
||||||
|
Block := '';
|
||||||
|
Inc(Current);
|
||||||
|
Continue;
|
||||||
|
end else
|
||||||
|
begin
|
||||||
|
RaiseParseErrorUndeclared(Block,Line,Current,Length(Block));
|
||||||
|
Exit;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
@@ -693,11 +954,12 @@ begin
|
|||||||
begin
|
begin
|
||||||
case Position of
|
case Position of
|
||||||
posPrefix: begin
|
posPrefix: begin
|
||||||
if (Block <> Format.Header) and (Block <> Format.Indent) then
|
if (Block <> Format.Header) and (Block <> Format.Indent) and (Block <> Format.Special) then
|
||||||
begin
|
begin
|
||||||
if (Length(Format.Header) = 0) or (Length(Format.Indent) = 0) then
|
if (Length(Format.Header) = 0) or (Length(Format.Indent) = 0) or (Length(Format.Special) = 0) then
|
||||||
begin
|
begin
|
||||||
Header := (Length(Format.Header) = 0);
|
Header := (Length(Format.Header) = 0);
|
||||||
|
Special := (Length(Format.Special) = 0);
|
||||||
Position := posIndent;
|
Position := posIndent;
|
||||||
Continue;
|
Continue;
|
||||||
end else
|
end else
|
||||||
@@ -707,14 +969,30 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
Header := (Block = Format.Header);
|
Header := (Block = Format.Header);
|
||||||
|
Special := (Block = Format.Special);
|
||||||
Inc(Position);
|
Inc(Position);
|
||||||
end;
|
end;
|
||||||
posIndent: begin
|
posIndent: begin
|
||||||
|
Indent := LowerCase(TrimRight(Block));
|
||||||
if Header = False then
|
if Header = False then
|
||||||
begin
|
begin
|
||||||
Inc(Position);
|
Inc(Position);
|
||||||
|
if Special = True then
|
||||||
|
begin
|
||||||
|
if ArrayPos(Indent,Specials) <> -1 then
|
||||||
|
begin
|
||||||
|
Inc(Position);
|
||||||
|
end else
|
||||||
|
begin
|
||||||
|
RaiseParseErrorUnexpected('Command','"' + Block + '"',Line,Current,Length(Block));
|
||||||
|
Exit;
|
||||||
|
end;
|
||||||
|
{ if Indent = Specials[3] then
|
||||||
|
begin
|
||||||
|
Finished := True;
|
||||||
|
end; }
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
Indent := TrimRight(Block);
|
|
||||||
end;
|
end;
|
||||||
posSeparator: begin
|
posSeparator: begin
|
||||||
Address := (Block = Format.Address);
|
Address := (Block = Format.Address);
|
||||||
@@ -775,6 +1053,125 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TLocalizations.LoadFromFile(const FileName: String);
|
||||||
|
var
|
||||||
|
Languages: TStrings;
|
||||||
|
Index: Integer;
|
||||||
|
begin
|
||||||
|
Languages := TStringList.Create;
|
||||||
|
try
|
||||||
|
Languages.LoadFromFile(FileName);
|
||||||
|
for Index := 0 to Languages.Count - 1 do
|
||||||
|
begin
|
||||||
|
(Add as TLocalization).Name := Languages.Strings[Index];
|
||||||
|
end;
|
||||||
|
finally
|
||||||
|
Languages.Free;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TLocalizations.SaveToFile(const FileName: String);
|
||||||
|
var
|
||||||
|
Languages: TStrings;
|
||||||
|
Index: Integer;
|
||||||
|
begin
|
||||||
|
Languages := TStringList.Create;
|
||||||
|
try
|
||||||
|
for Index := 0 to Count - 1 do
|
||||||
|
begin
|
||||||
|
Languages.Add((Items[Index] as TLocalization).Name);
|
||||||
|
end;
|
||||||
|
Languages.SaveToFile(FileName);
|
||||||
|
finally
|
||||||
|
Languages.Free;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TLocalizations.LoadFromDirectory(const Dir: String; FileExts: array of String; RecMode: Boolean = True);
|
||||||
|
var
|
||||||
|
Languages: TStrings;
|
||||||
|
Language_Index: Integer;
|
||||||
|
begin
|
||||||
|
Languages := TStringList.Create;
|
||||||
|
try
|
||||||
|
ListFiles(Dir,Languages,FileExts,[fnDirectory,fnExtension],RecMode);
|
||||||
|
for Language_Index := 0 to Languages.Count - 1 do
|
||||||
|
begin
|
||||||
|
with (Add as TLocalization) do
|
||||||
|
begin
|
||||||
|
Name := ExtractFileName(ChangeFileExt(Languages.Strings[Language_Index],''));
|
||||||
|
Lines.LoadFromFile(Languages.Strings[Language_Index]);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
finally
|
||||||
|
Languages.Free;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
{ ----------------------------------------------------------------------------
|
||||||
|
TLocalizationExporter
|
||||||
|
---------------------------------------------------------------------------- }
|
||||||
|
|
||||||
|
constructor TLocalizationExporter.Create(AData: TLocalizationData);
|
||||||
|
begin
|
||||||
|
inherited Create;
|
||||||
|
FData := AData;
|
||||||
|
FClearBeforeExport := True;
|
||||||
|
end;
|
||||||
|
|
||||||
|
destructor TLocalizationExporter.Destroy;
|
||||||
|
begin
|
||||||
|
//...
|
||||||
|
inherited;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TLocalizationExporter.ExportToINI(var INI: TIniFile);
|
||||||
|
var
|
||||||
|
Section: Integer;
|
||||||
|
Sections: TStrings;
|
||||||
|
Indent: Integer;
|
||||||
|
begin
|
||||||
|
if INI = nil then
|
||||||
|
begin
|
||||||
|
Exit;
|
||||||
|
end;
|
||||||
|
if ClearBeforeExport = True then
|
||||||
|
begin
|
||||||
|
Sections := TStringList.Create;
|
||||||
|
INI.ReadSections(Sections);
|
||||||
|
for Section := 0 to Sections.Count - 1 do
|
||||||
|
begin
|
||||||
|
INI.EraseSection(Sections.Strings[Section]);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
{
|
||||||
|
Localization.Lines.Add(Localization.Format.Comment + ' ' + '+++ AUTO-GENERATED LOCALIZATION CONTENT +++');
|
||||||
|
|
||||||
|
Sections := TStringList.Create;
|
||||||
|
try
|
||||||
|
INI.ReadSections(Sections);
|
||||||
|
for Section := 0 to Sections.Count - 1 do
|
||||||
|
begin
|
||||||
|
if Sections.Strings[Section] <> '' then
|
||||||
|
begin
|
||||||
|
Localization.Lines.Add(Localization.Format.Header + ' ' + Sections[Section]);
|
||||||
|
end;
|
||||||
|
Indents := TStringList.Create;
|
||||||
|
try
|
||||||
|
for Indent := 0 to Indents.Count - 1 do
|
||||||
|
begin
|
||||||
|
Localization.Lines.Add(Localization.Format.Indent + ' ' + Indents.Strings[Indent] + ' ' + Localization.Format.Separator + ' ' + INI.ReadString(Sections.Strings[Section],Indents.Strings[Indent],''));
|
||||||
|
end;
|
||||||
|
finally
|
||||||
|
Indents.Free;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
finally
|
||||||
|
Sections.Free;
|
||||||
|
end; }
|
||||||
|
end;
|
||||||
|
|
||||||
{ ----------------------------------------------------------------------------
|
{ ----------------------------------------------------------------------------
|
||||||
TLocalizationData
|
TLocalizationData
|
||||||
---------------------------------------------------------------------------- }
|
---------------------------------------------------------------------------- }
|
||||||
@@ -783,11 +1180,13 @@ constructor TLocalizationData.Create(AManager: TLocalizationManager);
|
|||||||
begin
|
begin
|
||||||
inherited Create;
|
inherited Create;
|
||||||
FManager := AManager;
|
FManager := AManager;
|
||||||
|
FExporter := TLocalizationExporter.Create(Self);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
destructor TLocalizationData.Destroy;
|
destructor TLocalizationData.Destroy;
|
||||||
begin
|
begin
|
||||||
FManager := nil;
|
FManager := nil;
|
||||||
|
FExporter.Free;
|
||||||
inherited;
|
inherited;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@@ -975,6 +1374,20 @@ begin
|
|||||||
inherited;
|
inherited;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TLocalizationReference.GetDisplayName: String;
|
||||||
|
begin
|
||||||
|
inherited;
|
||||||
|
Result := Indent;
|
||||||
|
if Length(Section) <> 0 then
|
||||||
|
begin
|
||||||
|
Result := Section + '.' + Result;
|
||||||
|
end;
|
||||||
|
if Component <> nil then
|
||||||
|
begin
|
||||||
|
Result := Result + ' (' + Component.Name + '.' + Field + ')';
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TLocalizationReference.SetIndent(Value: String);
|
procedure TLocalizationReference.SetIndent(Value: String);
|
||||||
var
|
var
|
||||||
Index: Integer;
|
Index: Integer;
|
||||||
@@ -1127,7 +1540,7 @@ end;
|
|||||||
constructor TLocalizationManager.Create(AOwnder: TComponent);
|
constructor TLocalizationManager.Create(AOwnder: TComponent);
|
||||||
begin
|
begin
|
||||||
inherited;
|
inherited;
|
||||||
FAbout := TComponentAbout.Create(TLocalizationManager,LocalizationManagerComponent_Version,LocalizationManagerComponent_Copyright,LocalizationManagerComponent_Author);
|
FAbout := TComponentAbout.Create(TLocalizationManager);
|
||||||
FLocalizations := TLocalizations.Create(TLocalization,Self);
|
FLocalizations := TLocalizations.Create(TLocalization,Self);
|
||||||
FData := TLocalizationData.Create(Self);
|
FData := TLocalizationData.Create(Self);
|
||||||
FReferences := TLocalizationReferences.Create(TLocalizationReference,Self);
|
FReferences := TLocalizationReferences.Create(TLocalizationReference,Self);
|
||||||
|
@@ -3,14 +3,10 @@ unit uScriptMgr;
|
|||||||
//////////////////////////////////////
|
//////////////////////////////////////
|
||||||
/// Lina Script Manager Unit ///
|
/// Lina Script Manager Unit ///
|
||||||
/// **************************** ///
|
/// **************************** ///
|
||||||
/// (c) 2014 Dennis G�hlert a.o. ///
|
/// (c) 2015 Dennis G�hlert a.o. ///
|
||||||
//////////////////////////////////////
|
//////////////////////////////////////
|
||||||
|
|
||||||
{$IFNDEF MSWINDOWS}
|
{$I 'Config.inc'}
|
||||||
{$IFDEF WARN_INCOMPATIBLEOS}
|
|
||||||
{$MESSAGE ERROR 'The "uScriptMgr" unit is only available under MS-Windows OS'}
|
|
||||||
{$ENDIF}
|
|
||||||
{$ENDIF}
|
|
||||||
|
|
||||||
interface
|
interface
|
||||||
|
|
||||||
@@ -78,6 +74,9 @@ type
|
|||||||
procedure Delete(Plugin: TPSPlugin);
|
procedure Delete(Plugin: TPSPlugin);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
{$IFNDEF NO_MULTIPLATFORM}
|
||||||
|
[ComponentPlatformsAttribute(pidWin32 or pidWin64)]
|
||||||
|
{$ENDIF}
|
||||||
TScriptManager = class(TComponent)
|
TScriptManager = class(TComponent)
|
||||||
private
|
private
|
||||||
{ Private-Deklarationen }
|
{ Private-Deklarationen }
|
||||||
@@ -171,13 +170,11 @@ type
|
|||||||
procedure AddPlugin(PluginList: TPSPlugins; Plugin: TPSPlugin);
|
procedure AddPlugin(PluginList: TPSPlugins; Plugin: TPSPlugin);
|
||||||
procedure DeletePlugin(PluginList: TPSPlugins; Plugin: TPSPlugin);
|
procedure DeletePlugin(PluginList: TPSPlugins; Plugin: TPSPlugin);
|
||||||
|
|
||||||
procedure Register;
|
{$IFDEF ADD_COMPONENTREG}
|
||||||
|
procedure Register;
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
const
|
const
|
||||||
{ Meta-Daten }
|
|
||||||
ScriptManagerComponent_Version = '1.0';
|
|
||||||
ScriptManagerComponent_Copyright = 'Copyright � 2015';
|
|
||||||
ScriptManagerComponent_Author = 'Dennis G�hlert a.o.';
|
|
||||||
{ Fehlermeldungen }
|
{ Fehlermeldungen }
|
||||||
Error_MissingReturnTarget = 'Missing log-return target';
|
Error_MissingReturnTarget = 'Missing log-return target';
|
||||||
Error_MissingComponentName = 'Missing component name';
|
Error_MissingComponentName = 'Missing component name';
|
||||||
@@ -194,10 +191,12 @@ var
|
|||||||
|
|
||||||
implementation
|
implementation
|
||||||
|
|
||||||
procedure Register;
|
{$IFDEF ADD_COMPONENTREG}
|
||||||
begin
|
procedure Register;
|
||||||
RegisterComponents(ComponentsPage,[TScriptManager]);
|
begin
|
||||||
end;
|
RegisterComponents(ComponentsPage,[TScriptManager]);
|
||||||
|
end;
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
procedure AddPlugin(PluginList: TPSPlugins; Plugin: TPSPlugin);
|
procedure AddPlugin(PluginList: TPSPlugins; Plugin: TPSPlugin);
|
||||||
begin
|
begin
|
||||||
@@ -286,9 +285,9 @@ end;
|
|||||||
constructor TScriptManager.Create(AOwner: TComponent);
|
constructor TScriptManager.Create(AOwner: TComponent);
|
||||||
begin
|
begin
|
||||||
inherited;
|
inherited;
|
||||||
FAbout := TComponentAbout.Create(TScriptManager,ScriptManagerComponent_Version,ScriptManagerComponent_Copyright,ScriptManagerComponent_Author);
|
FAbout := TComponentAbout.Create(TScriptManager);
|
||||||
//ReturnMode := srNone; Durch DEFAULT festgelegt!
|
ReturnMode := srNone;
|
||||||
//ReturnStyle := srSimple; Durch DEFAULT festgelegt!
|
ReturnStyle := srSimple;
|
||||||
SecureMode := True;
|
SecureMode := True;
|
||||||
//ReturnSL := TStringList.Create; Nicht erstellen, Property ist nur ein Pointer auf ext. TStrings
|
//ReturnSL := TStringList.Create; Nicht erstellen, Property ist nur ein Pointer auf ext. TStrings
|
||||||
FLibraries := [slClasses,slControls,slStdCtrls,slForms,slDateUtils,slCustom];
|
FLibraries := [slClasses,slControls,slStdCtrls,slForms,slDateUtils,slCustom];
|
||||||
|
1229
Source/uSysCtrls.pas
@@ -3,14 +3,10 @@ unit uSysTools;
|
|||||||
//////////////////////////////////////
|
//////////////////////////////////////
|
||||||
/// Lina System Tools Unit ///
|
/// Lina System Tools Unit ///
|
||||||
/// **************************** ///
|
/// **************************** ///
|
||||||
/// (c) 2014 Dennis G�hlert a.o. ///
|
/// (c) 2015 Dennis G�hlert a.o. ///
|
||||||
//////////////////////////////////////
|
//////////////////////////////////////
|
||||||
|
|
||||||
{$IFNDEF MSWINDOWS}
|
{$I 'Config.inc'}
|
||||||
{$IFDEF WARN_INCOMPATIBLEOS}
|
|
||||||
{$MESSAGE ERROR 'The "uSysTools" unit is only available under MS-Windows OS'}
|
|
||||||
{$ENDIF}
|
|
||||||
{$ENDIF}
|
|
||||||
|
|
||||||
interface
|
interface
|
||||||
|
|
||||||
@@ -25,6 +21,7 @@ uses
|
|||||||
type
|
type
|
||||||
{ Fehlermeldungen }
|
{ Fehlermeldungen }
|
||||||
EWinUserInformation = class(Exception);
|
EWinUserInformation = class(Exception);
|
||||||
|
EStringCharAccess = class(Exception);
|
||||||
|
|
||||||
type
|
type
|
||||||
{ Hilfsklassen }
|
{ Hilfsklassen }
|
||||||
@@ -44,11 +41,13 @@ type
|
|||||||
{ Typisierte Arrays }
|
{ Typisierte Arrays }
|
||||||
TPointerArray = array of Pointer;
|
TPointerArray = array of Pointer;
|
||||||
TPCharArray = array of PChar;
|
TPCharArray = array of PChar;
|
||||||
|
TCharArray = array of Char;
|
||||||
|
|
||||||
TVariantArray = array of Variant;
|
TVariantArray = array of Variant;
|
||||||
|
|
||||||
TStringArray = array of String;
|
TStringArray = array of String;
|
||||||
TShortStringArray = array of ShortString;
|
TShortStringArray = array of ShortString;
|
||||||
|
TAnsiStringArray = array of AnsiString;
|
||||||
|
|
||||||
TByteArray = array of Byte;
|
TByteArray = array of Byte;
|
||||||
TWordArray = array of Word;
|
TWordArray = array of Word;
|
||||||
@@ -143,10 +142,13 @@ type
|
|||||||
end;
|
end;
|
||||||
TFloatRefDataArrayReferenceDataArray = array of TFloatRefDataArrayReferenceData;
|
TFloatRefDataArrayReferenceDataArray = array of TFloatRefDataArrayReferenceData;
|
||||||
|
|
||||||
|
TByteSet = set of Byte;
|
||||||
|
TCharSet = set of Char;
|
||||||
|
|
||||||
TVector = TFloatArray;
|
TVector = TFloatArray;
|
||||||
TMatrix = array of TVector;
|
TMatrix = array of TVector;
|
||||||
|
|
||||||
TCycle = {$IFDEF NO_RECORDMETHODS} record {$ELSE} class {$ENDIF}
|
TCycle = class
|
||||||
private
|
private
|
||||||
{ Private-Deklarationen }
|
{ Private-Deklarationen }
|
||||||
FRadius: Extended;
|
FRadius: Extended;
|
||||||
@@ -157,11 +159,38 @@ type
|
|||||||
procedure SetCircumference(Value: Extended);
|
procedure SetCircumference(Value: Extended);
|
||||||
public
|
public
|
||||||
{ Public-Deklarationen }
|
{ Public-Deklarationen }
|
||||||
|
constructor Create;
|
||||||
|
destructor Destroy; override;
|
||||||
property Radius: Extended read FRadius write FRadius;
|
property Radius: Extended read FRadius write FRadius;
|
||||||
property Diameter: Extended read GetDiameter write SetDiameter;
|
property Diameter: Extended read GetDiameter write SetDiameter;
|
||||||
property Circumference: Extended read GetCircumference write SetCircumference;
|
property Circumference: Extended read GetCircumference write SetCircumference;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
TRange = class
|
||||||
|
private
|
||||||
|
{ Private-Deklarationen }
|
||||||
|
FOffset: Integer;
|
||||||
|
FTarget: Integer;
|
||||||
|
FStep: Integer;
|
||||||
|
{ Methoden }
|
||||||
|
procedure SetOffset(Value: Integer);
|
||||||
|
procedure SetTarget(Value: Integer);
|
||||||
|
function GetLength: Integer;
|
||||||
|
procedure SetLength(Value: Integer);
|
||||||
|
function GetCount: Integer;
|
||||||
|
function GetElements: TIntegerArray;
|
||||||
|
public
|
||||||
|
{ Public-Deklarationen }
|
||||||
|
constructor Create;
|
||||||
|
destructor Destroy; override;
|
||||||
|
property Offset: Integer read FOffset write SetOffset default 0;
|
||||||
|
property Target: Integer read FTarget write SetTarget default 0;
|
||||||
|
property Length: Integer read GetLength write SetLength default 0;
|
||||||
|
property Count: Integer read GetCount default 0;
|
||||||
|
property Elements: TIntegerArray read GetElements;
|
||||||
|
property Step: Integer read FStep write FStep default 1;
|
||||||
|
end;
|
||||||
|
|
||||||
TFilteredStringList = class(TStringList)
|
TFilteredStringList = class(TStringList)
|
||||||
private
|
private
|
||||||
{ Private-Deklarationen }
|
{ Private-Deklarationen }
|
||||||
@@ -299,7 +328,7 @@ type
|
|||||||
procedure SetMethodSubProp(Instance: TObject; const PropName: String; Value: TMethod);
|
procedure SetMethodSubProp(Instance: TObject; const PropName: String; Value: TMethod);
|
||||||
function SubPropIsType(Instance: TObject; const PropName: String; TypeKind: TTypeKind): Boolean;
|
function SubPropIsType(Instance: TObject; const PropName: String; TypeKind: TTypeKind): Boolean;
|
||||||
function SubPropType(Instance: TObject; const PropName: String): TTypeKind; overload;
|
function SubPropType(Instance: TObject; const PropName: String): TTypeKind; overload;
|
||||||
{ Uhrzeit }
|
{ Datum/Uhrzeit }
|
||||||
function SystemTime: TSystemTime;
|
function SystemTime: TSystemTime;
|
||||||
function Year: Word;
|
function Year: Word;
|
||||||
function Month: Word;
|
function Month: Word;
|
||||||
@@ -309,7 +338,17 @@ type
|
|||||||
function Minute: Word;
|
function Minute: Word;
|
||||||
function Second: Word;
|
function Second: Word;
|
||||||
function Milliseconds: Word;
|
function Milliseconds: Word;
|
||||||
|
{ Set-Operationen }
|
||||||
|
function Count(Elements: TByteSet): Byte; overload;
|
||||||
|
function Count(Elements: TCharSet): Byte; overload;
|
||||||
|
function SetToArray(Elements: TByteSet): TByteArray; overload;
|
||||||
|
function SetToArray(Elements: TCharSet): TCharArray; overload;
|
||||||
|
function ArrayToSet(Elements: array of Byte): TByteSet; overload;
|
||||||
|
function ArrayToSet(Elements: array of Char): TCharSet; overload;
|
||||||
{ Sonstige }
|
{ Sonstige }
|
||||||
|
function StringToRange(const S: String; var Range: TRange): Boolean;
|
||||||
|
function ExprInStr(const S: String; Position: Integer): String;
|
||||||
|
function Factional(X: Byte): Cardinal;
|
||||||
function ExtractClassName(FullClassName: String; CaseSensitive: Boolean = True): String;
|
function ExtractClassName(FullClassName: String; CaseSensitive: Boolean = True): String;
|
||||||
function CountLines(S: String): Integer;
|
function CountLines(S: String): Integer;
|
||||||
function Wrappable(S: String; Font: TFont; MaxWidth: Integer): Boolean; overload;
|
function Wrappable(S: String; Font: TFont; MaxWidth: Integer): Boolean; overload;
|
||||||
@@ -334,9 +373,13 @@ type
|
|||||||
function CharPosition(Current: PAnsiChar; Text: AnsiString): Integer; {$IFNDEF NO_UNICODE} overload;
|
function CharPosition(Current: PAnsiChar; Text: AnsiString): Integer; {$IFNDEF NO_UNICODE} overload;
|
||||||
function CharPosition(Current: PWideChar; Text: UnicodeString): Integer; overload;
|
function CharPosition(Current: PWideChar; Text: UnicodeString): Integer; overload;
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
function ConsistsOf(const S: String; Chars: array of Char): Boolean; overload;
|
||||||
|
function ConsistsOf(const S: String; Chars: TCharSet): Boolean; overload;
|
||||||
procedure PrintText(Strings: TStrings; Font: TFont);
|
procedure PrintText(Strings: TStrings; Font: TFont);
|
||||||
procedure ExtractChars(var Text: String; Chars: array of Char);
|
procedure ExtractChars(var Text: String; Chars: array of Char); overload;
|
||||||
procedure EnableDebugPrivilege;
|
procedure ExtractChars(var Text: String; Chars: TCharSet); overload;
|
||||||
|
procedure SetPrivilege(const Name: PChar; Value: Boolean); overload;
|
||||||
|
procedure SetPrivilege(const Name: String; Value: Boolean); overload;
|
||||||
|
|
||||||
const
|
const
|
||||||
Spaces = [#9,#10,#13,#32,#160];
|
Spaces = [#9,#10,#13,#32,#160];
|
||||||
@@ -345,7 +388,42 @@ const
|
|||||||
LowerCaseLetters = ['a'..'z'];
|
LowerCaseLetters = ['a'..'z'];
|
||||||
Letters = UpperCaseLetters + LowerCaseLetters;
|
Letters = UpperCaseLetters + LowerCaseLetters;
|
||||||
Operators = ['+','-','*','/'];
|
Operators = ['+','-','*','/'];
|
||||||
|
{ WinAPI-Privilegien }
|
||||||
|
SE_ASSIGNPRIMARYTOKEN_NAME = 'SeAssignPrimaryTokenPrivilege';
|
||||||
|
SE_AUDIT_NAME = 'SeAuditPrivilege';
|
||||||
|
SE_BACKUP_NAME = 'SeBackupPrivilege';
|
||||||
|
SE_CHANGE_NOTIFY_NAME = 'SeChangeNotifyPrivilege';
|
||||||
|
SE_CREATE_GLOBAL_NAME = 'SeCreateGlobalPrivilege';
|
||||||
|
SE_CREATE_PAGEFILE_NAME = 'SeCreatePagefilePrivilege';
|
||||||
|
SE_CREATE_PERMANENT_NAME = 'SeCreatePermanentPrivilege';
|
||||||
|
SE_CREATE_SYMBOLIC_LINK_NAME = 'SeCreateSymbolicLinkPrivilege';
|
||||||
|
SE_CREATE_TOKEN_NAME = 'SeCreateTokenPrivilege';
|
||||||
SE_DEBUG_NAME = 'SeDebugPrivilege';
|
SE_DEBUG_NAME = 'SeDebugPrivilege';
|
||||||
|
SE_ENABLE_DELEGATION_NAME = 'SeEnableDelegationPrivilege';
|
||||||
|
SE_IMPERSONATE_NAME = 'SeImpersonatePrivilege';
|
||||||
|
SE_INC_BASE_PRIORITY_NAME = 'SeIncreaseBasePriorityPrivilege';
|
||||||
|
SE_INCREASE_QUOTA_NAME = 'SeIncreaseQuotaPrivilege';
|
||||||
|
SE_INC_WORKING_SET_NAME = 'SeIncreaseWorkingSetPrivilege';
|
||||||
|
SE_LOAD_DRIVER_NAME = 'SeLoadDriverPrivilege';
|
||||||
|
SE_LOCK_MEMORY_NAME = 'SeLockMemoryPrivilege';
|
||||||
|
SE_MACHINE_ACCOUNT_NAME = 'SeMachineAccountPrivilege';
|
||||||
|
SE_MANAGE_VOLUME_NAME = 'SeManageVolumePrivilege';
|
||||||
|
SE_PROF_SINGLE_PROCESS_NAME = 'SeProfileSingleProcessPrivilege';
|
||||||
|
SE_RELABEL_NAME = 'SeRelabelPrivilege';
|
||||||
|
SE_REMOTE_SHUTDOWN_NAME = 'SeRemoteShutdownPrivilege';
|
||||||
|
SE_RESTORE_NAME = 'SeRestorePrivilege';
|
||||||
|
SE_SECURITY_NAME = 'SeSecurityPrivilege';
|
||||||
|
SE_SHUTDOWN_NAME = 'SeShutdownPrivilege';
|
||||||
|
SE_SYNC_AGENT_NAME = 'SeSyncAgentPrivilege';
|
||||||
|
SE_SYSTEM_ENVIRONMENT_NAME = 'SeSystemEnvironmentPrivilege';
|
||||||
|
SE_SYSTEM_PROFILE_NAME = 'SeSystemProfilePrivilege';
|
||||||
|
SE_SYSTEMTIME_NAME = 'SeSystemtimePrivilege';
|
||||||
|
SE_TAKE_OWNERSHIP_NAME = 'SeTakeOwnershipPrivilege';
|
||||||
|
SE_TCB_NAME = 'SeTcbPrivilege';
|
||||||
|
SE_TIME_ZONE_NAME = 'SeTimeZonePrivilege';
|
||||||
|
SE_TRUSTED_CREDMAN_ACCESS_NAME = 'SeTrustedCredManAccessPrivilege';
|
||||||
|
SE_UNDOCK_NAME = 'SeUndockPrivilege';
|
||||||
|
SE_UNSOLICITED_INPUT_NAME = 'SeUnsolicitedInputPrivilege';
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
|
|
||||||
@@ -1199,6 +1277,192 @@ begin
|
|||||||
Result := SystemTime.wMilliseconds;
|
Result := SystemTime.wMilliseconds;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function Count(Elements: TByteSet): Byte;
|
||||||
|
var
|
||||||
|
Current: Byte;
|
||||||
|
begin
|
||||||
|
Result := 0;
|
||||||
|
for Current in Elements do
|
||||||
|
begin
|
||||||
|
Inc(Result);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function Count(Elements: TCharSet): Byte;
|
||||||
|
var
|
||||||
|
Current: Char;
|
||||||
|
begin
|
||||||
|
Result := 0;
|
||||||
|
for Current in Elements do
|
||||||
|
begin
|
||||||
|
Inc(Result);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function SetToArray(Elements: TByteSet): TByteArray;
|
||||||
|
var
|
||||||
|
Current: Byte;
|
||||||
|
Index: Integer;
|
||||||
|
begin
|
||||||
|
SetLength(Result,Count(Elements));
|
||||||
|
Index := 0;
|
||||||
|
for Current in Elements do
|
||||||
|
begin
|
||||||
|
Result[Index] := Current;
|
||||||
|
Inc(Index);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function SetToArray(Elements: TCharSet): TCharArray;
|
||||||
|
var
|
||||||
|
Current: Char;
|
||||||
|
Index: Integer;
|
||||||
|
begin
|
||||||
|
SetLength(Result,Count(Elements));
|
||||||
|
Index := 0;
|
||||||
|
for Current in Elements do
|
||||||
|
begin
|
||||||
|
Result[Index] := Current;
|
||||||
|
Inc(Index);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function ArrayToSet(Elements: array of Byte): TByteSet;
|
||||||
|
var
|
||||||
|
Index: Integer;
|
||||||
|
begin
|
||||||
|
Result := [];
|
||||||
|
for Index := 0 to Length(Elements) - 1 do
|
||||||
|
begin
|
||||||
|
Result := Result + [Elements[Index]];
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function ArrayToSet(Elements: array of Char): TCharSet;
|
||||||
|
var
|
||||||
|
Index: Integer;
|
||||||
|
begin
|
||||||
|
Result := [];
|
||||||
|
for Index := 0 to Length(Elements) - 1 do
|
||||||
|
begin
|
||||||
|
Result := Result + [Elements[Index]];
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function StringToRange(const S: String; var Range: TRange): Boolean;
|
||||||
|
var
|
||||||
|
Current: PChar;
|
||||||
|
Block: String;
|
||||||
|
Temp: TRange;
|
||||||
|
Position: (posOffset,posDots,posTarget,posFinish);
|
||||||
|
begin
|
||||||
|
{if Range = nil then
|
||||||
|
begin
|
||||||
|
Range := TRange.Create;
|
||||||
|
end;
|
||||||
|
Result := False;
|
||||||
|
if Length(S) = 0 then
|
||||||
|
begin
|
||||||
|
Exit;
|
||||||
|
end;
|
||||||
|
Current := PChar(S);
|
||||||
|
Position := posOffset;
|
||||||
|
Temp := TRange.Create;
|
||||||
|
try
|
||||||
|
while Current^ <> #0 do
|
||||||
|
begin
|
||||||
|
if (Position^ = posFinish) and (not (Current^ in Spaces)) then
|
||||||
|
begin
|
||||||
|
Result := False;
|
||||||
|
Break;
|
||||||
|
end;
|
||||||
|
case Current^ of
|
||||||
|
Spaces: if Position in [posOffset,posTarget] then
|
||||||
|
begin
|
||||||
|
Inc(Position);
|
||||||
|
end;
|
||||||
|
'0'..'9': Block := Block + Current^;
|
||||||
|
'+','-': if Length(Block) = 0 then
|
||||||
|
begin
|
||||||
|
Block := Block + Current^;
|
||||||
|
end else
|
||||||
|
begin
|
||||||
|
Result := False;
|
||||||
|
Break;
|
||||||
|
end;
|
||||||
|
'.': if (Current + 1)^ = '.' then
|
||||||
|
begin
|
||||||
|
|
||||||
|
Block := '';
|
||||||
|
Inc(Current);
|
||||||
|
end else
|
||||||
|
begin
|
||||||
|
Result := False;
|
||||||
|
Break;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
Inc(Current);
|
||||||
|
end;
|
||||||
|
finally
|
||||||
|
Temp.Free;
|
||||||
|
end;
|
||||||
|
if Result = True then
|
||||||
|
begin
|
||||||
|
Range.Offset := Temp.Offset;
|
||||||
|
Range.Target := Temp.Target;
|
||||||
|
Range.Step := Temp.Step;
|
||||||
|
end; }
|
||||||
|
end;
|
||||||
|
|
||||||
|
function ExprInStr(const S: String; Position: Integer): String;
|
||||||
|
var
|
||||||
|
Current: PChar;
|
||||||
|
begin
|
||||||
|
if (Position < 1) or (Position > Length(S)) then
|
||||||
|
begin
|
||||||
|
raise EStringCharAccess.Create('Access to String char at position ' + IntToStr(Position) + ' not possible');
|
||||||
|
end;
|
||||||
|
Current := @S[Position];
|
||||||
|
Result := '';
|
||||||
|
while (Current^ in Letters) and (Current >= @S[1]) do
|
||||||
|
begin
|
||||||
|
Result := Current^ + Result;
|
||||||
|
Dec(Current);
|
||||||
|
end;
|
||||||
|
Current := @S[Position + 1];
|
||||||
|
while Current^ in Letters do
|
||||||
|
begin
|
||||||
|
Result := Result + Current^;
|
||||||
|
Inc(Current);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
{$IFDEF PUREPASCAL}
|
||||||
|
function Factional(X: Byte): Cardinal;
|
||||||
|
var
|
||||||
|
Index: Integer;
|
||||||
|
begin
|
||||||
|
Result := 1;
|
||||||
|
for Index := 2 to X do
|
||||||
|
begin
|
||||||
|
Result := Result * Index;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
{$ELSE}
|
||||||
|
function Factional(X: Byte): Cardinal; assembler;
|
||||||
|
asm
|
||||||
|
MOV ECX,EAX
|
||||||
|
MOV EAX,1
|
||||||
|
JMP @Check
|
||||||
|
@Multiply:
|
||||||
|
IMUL EAX,ECX
|
||||||
|
DEC ECX
|
||||||
|
@Check:
|
||||||
|
CMP ECX,1
|
||||||
|
JNE @Multiply
|
||||||
|
end;
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
function ExtractClassName(FullClassName: String; CaseSensitive: Boolean = True): String;
|
function ExtractClassName(FullClassName: String; CaseSensitive: Boolean = True): String;
|
||||||
begin
|
begin
|
||||||
if ((FullClassName[1] = 'T') or ((CaseSensitive = False) and (FullClassName[1] = 't'))) and ((FullClassName[2] in UppercaseLetters) or (CaseSensitive = False)) then
|
if ((FullClassName[1] = 'T') or ((CaseSensitive = False) and (FullClassName[1] = 't'))) and ((FullClassName[2] in UppercaseLetters) or (CaseSensitive = False)) then
|
||||||
@@ -1310,11 +1574,6 @@ function SecToTime(const Sec: Cardinal): TTime;
|
|||||||
var
|
var
|
||||||
Hrs, Mins: Word;
|
Hrs, Mins: Word;
|
||||||
begin
|
begin
|
||||||
if Sec <= 0 then
|
|
||||||
begin
|
|
||||||
Result := StrToTime('00:00:00');
|
|
||||||
Exit;
|
|
||||||
end;
|
|
||||||
Hrs := Sec div 3600;
|
Hrs := Sec div 3600;
|
||||||
Mins := Sec div 60 - Hrs * 60;
|
Mins := Sec div 60 - Hrs * 60;
|
||||||
Result := StrToTime(IntToStr(Hrs) + ':' + IntToStr(Mins) + ':' + IntToStr(Sec - (Hrs * 3600 + Mins * 60)));
|
Result := StrToTime(IntToStr(Hrs) + ':' + IntToStr(Mins) + ':' + IntToStr(Sec - (Hrs * 3600 + Mins * 60)));
|
||||||
@@ -2123,6 +2382,40 @@ begin
|
|||||||
end;
|
end;
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
|
||||||
|
function ConsistsOf(const S: String; Chars: TCharSet): Boolean; overload;
|
||||||
|
var
|
||||||
|
Current: PChar;
|
||||||
|
begin
|
||||||
|
Current := PChar(S);
|
||||||
|
while Current^ <> #0 do
|
||||||
|
begin
|
||||||
|
if not (Current^ in Chars) then
|
||||||
|
begin
|
||||||
|
Result := False;
|
||||||
|
Exit;
|
||||||
|
end;
|
||||||
|
Inc(Current);
|
||||||
|
end;
|
||||||
|
Result := True;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function ConsistsOf(const S: String; Chars: array of Char): Boolean; overload;
|
||||||
|
var
|
||||||
|
Current: PChar;
|
||||||
|
begin
|
||||||
|
Current := PChar(S);
|
||||||
|
while Current^ <> #0 do
|
||||||
|
begin
|
||||||
|
if ArrayPos(Current^,Chars) = -1 then
|
||||||
|
begin
|
||||||
|
Result := False;
|
||||||
|
Exit;
|
||||||
|
end;
|
||||||
|
Inc(Current);
|
||||||
|
end;
|
||||||
|
Result := True;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure PrintText(Strings: TStrings; Font: TFont);
|
procedure PrintText(Strings: TStrings; Font: TFont);
|
||||||
var
|
var
|
||||||
Index: Integer;
|
Index: Integer;
|
||||||
@@ -2144,12 +2437,12 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure ExtractChars(var Text: String; Chars: array of Char);
|
procedure ExtractChars(var Text: String; Chars: array of Char); overload;
|
||||||
var
|
var
|
||||||
Current: PChar;
|
Current: PChar;
|
||||||
OutPut: String;
|
OutPut: String;
|
||||||
begin
|
begin
|
||||||
Current := @Text[1];
|
Current := PChar(Text);
|
||||||
SetLength(OutPut,0);
|
SetLength(OutPut,0);
|
||||||
while Current^ <> #0 do
|
while Current^ <> #0 do
|
||||||
begin
|
begin
|
||||||
@@ -2162,21 +2455,50 @@ begin
|
|||||||
Text := OutPut;
|
Text := OutPut;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure EnableDebugPrivilege;
|
procedure ExtractChars(var Text: String; Chars: TCharSet); overload;
|
||||||
|
var
|
||||||
|
Current: PChar;
|
||||||
|
OutPut: String;
|
||||||
|
begin
|
||||||
|
Current := PChar(Text);
|
||||||
|
SetLength(OutPut,0);
|
||||||
|
while Current^ <> #0 do
|
||||||
|
begin
|
||||||
|
if Current^ in Chars then
|
||||||
|
begin
|
||||||
|
OutPut := OutPut + Current^;
|
||||||
|
end;
|
||||||
|
Inc(Current);
|
||||||
|
end;
|
||||||
|
Text := OutPut;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure SetPrivilege(const Name: PChar; Value: Boolean); overload;
|
||||||
var
|
var
|
||||||
Token: THandle;
|
Token: THandle;
|
||||||
TokenPrivs: TTokenPrivileges;
|
Privileges: TTokenPrivileges;
|
||||||
begin
|
begin
|
||||||
if OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES,Token) then
|
if OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES,Token) then
|
||||||
begin
|
begin
|
||||||
TokenPrivs.PrivilegeCount := 1;
|
Privileges.PrivilegeCount := 1;
|
||||||
LookupPrivilegeValue(nil, SE_DEBUG_NAME, TokenPrivs.Privileges[0].Luid);
|
LookupPrivilegeValue(nil,Name,Privileges.Privileges[0].Luid);
|
||||||
TokenPrivs.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
|
if Value = True then
|
||||||
AdjustTokenPrivileges(Token,False,TokenPrivs,SizeOf(TokenPrivs),nil,DWord(nil^));
|
begin
|
||||||
|
Privileges.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
|
||||||
|
end else
|
||||||
|
begin
|
||||||
|
Privileges.Privileges[0].Attributes := 0;
|
||||||
|
end;
|
||||||
|
AdjustTokenPrivileges(Token,False,Privileges,SizeOf(Privileges),nil,DWord(nil^));
|
||||||
CloseHandle(Token);
|
CloseHandle(Token);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure SetPrivilege(const Name: String; Value: Boolean); overload;
|
||||||
|
begin
|
||||||
|
SetPrivilege(PChar(Name),Value);
|
||||||
|
end;
|
||||||
|
|
||||||
function WinUserName: String;
|
function WinUserName: String;
|
||||||
var
|
var
|
||||||
Buffer: array [0..255] of Char;
|
Buffer: array [0..255] of Char;
|
||||||
@@ -2266,6 +2588,18 @@ end;
|
|||||||
TCycle
|
TCycle
|
||||||
---------------------------------------------------------------------------- }
|
---------------------------------------------------------------------------- }
|
||||||
|
|
||||||
|
constructor TCycle.Create;
|
||||||
|
begin
|
||||||
|
inherited;
|
||||||
|
FRadius := 0;
|
||||||
|
end;
|
||||||
|
|
||||||
|
destructor TCycle.Destroy;
|
||||||
|
begin
|
||||||
|
//...
|
||||||
|
inherited;
|
||||||
|
end;
|
||||||
|
|
||||||
function TCycle.GetDiameter: Extended;
|
function TCycle.GetDiameter: Extended;
|
||||||
begin
|
begin
|
||||||
Result := Radius * 2;
|
Result := Radius * 2;
|
||||||
@@ -2286,6 +2620,69 @@ begin
|
|||||||
FRadius := Value / 2 / Pi;
|
FRadius := Value / 2 / Pi;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
{ ----------------------------------------------------------------------------
|
||||||
|
TRange
|
||||||
|
---------------------------------------------------------------------------- }
|
||||||
|
|
||||||
|
constructor TRange.Create;
|
||||||
|
begin
|
||||||
|
inherited;
|
||||||
|
FOffset := 0;
|
||||||
|
FTarget := 0;
|
||||||
|
FStep := 1;
|
||||||
|
end;
|
||||||
|
|
||||||
|
destructor TRange.Destroy;
|
||||||
|
begin
|
||||||
|
//...
|
||||||
|
inherited;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TRange.SetOffset(Value: Integer);
|
||||||
|
begin
|
||||||
|
if Value <= Target then
|
||||||
|
begin
|
||||||
|
FOffset := Value;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TRange.SetTarget(Value: Integer);
|
||||||
|
begin
|
||||||
|
if Value >= Offset then
|
||||||
|
begin
|
||||||
|
FTarget := Value;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TRange.GetLength: Integer;
|
||||||
|
begin
|
||||||
|
Result := Target - Offset;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TRange.SetLength(Value: Integer);
|
||||||
|
begin
|
||||||
|
if Value >= 0 then
|
||||||
|
begin
|
||||||
|
Length := Value;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TRange.GetCount: Integer;
|
||||||
|
begin
|
||||||
|
Result := Length div Step;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TRange.GetElements: TIntegerArray;
|
||||||
|
var
|
||||||
|
Index: Integer;
|
||||||
|
begin
|
||||||
|
System.SetLength(Result,Count);
|
||||||
|
for Index := 0 to System.Length(Result) - 1 do
|
||||||
|
begin
|
||||||
|
Result[Index] := Offset + Step * Index;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
{ ----------------------------------------------------------------------------
|
{ ----------------------------------------------------------------------------
|
||||||
TFilteredStringList
|
TFilteredStringList
|
||||||
---------------------------------------------------------------------------- }
|
---------------------------------------------------------------------------- }
|
||||||
|
@@ -3,14 +3,10 @@ unit uVirtObj;
|
|||||||
//////////////////////////////////////
|
//////////////////////////////////////
|
||||||
/// Lina Virtual Object Unit ///
|
/// Lina Virtual Object Unit ///
|
||||||
/// **************************** ///
|
/// **************************** ///
|
||||||
/// (c) 2014 Dennis G�hlert a.o. ///
|
/// (c) 2015 Dennis G�hlert a.o. ///
|
||||||
//////////////////////////////////////
|
//////////////////////////////////////
|
||||||
|
|
||||||
{$IFNDEF MSWINDOWS}
|
{$I 'Config.inc'}
|
||||||
{$IFDEF WARN_INCOMPATIBLEOS}
|
|
||||||
{$MESSAGE ERROR 'The "uVirtObj" unit is only available under MS-Windows OS'}
|
|
||||||
{$ENDIF}
|
|
||||||
{$ENDIF}
|
|
||||||
|
|
||||||
interface
|
interface
|
||||||
|
|
||||||
@@ -52,6 +48,9 @@ type
|
|||||||
TVirtualClasses = array of TVirtualClass;
|
TVirtualClasses = array of TVirtualClass;
|
||||||
|
|
||||||
{ VirtualProgram }
|
{ VirtualProgram }
|
||||||
|
{$IFNDEF NO_MULTIPLATFORM}
|
||||||
|
[ComponentPlatformsAttribute(pidWin32 or pidWin64)]
|
||||||
|
{$ENDIF}
|
||||||
TVirtualProgram = class(TComponent)
|
TVirtualProgram = class(TComponent)
|
||||||
private
|
private
|
||||||
{ Private-Deklarationen }
|
{ Private-Deklarationen }
|
||||||
@@ -68,21 +67,18 @@ type
|
|||||||
property About: TComponentAbout read FAbout;
|
property About: TComponentAbout read FAbout;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure Register;
|
{$IFDEF ADD_COMPONENTREG}
|
||||||
|
procedure Register;
|
||||||
const
|
{$ENDIF}
|
||||||
{ Meta-Daten }
|
|
||||||
VirtualProgramComponent_Name = 'ScriptManager';
|
|
||||||
VirtualProgramComponent_Version = 1.0;
|
|
||||||
VirtualProgramComponent_Copyright = 'Copyright � 2014';
|
|
||||||
VirtualProgramComponent_Author = 'Dennis G�hlert a.o.';
|
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
|
|
||||||
procedure Register;
|
{$IFDEF ADD_COMPONENTREG}
|
||||||
begin
|
procedure Register;
|
||||||
RegisterComponents(ComponentsPage,[TVirtualProgram]);
|
begin
|
||||||
end;
|
RegisterComponents(ComponentsPage,[TVirtualProgram]);
|
||||||
|
end;
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
constructor TVirtualProgram.Create(AOwner: TComponent);
|
constructor TVirtualProgram.Create(AOwner: TComponent);
|
||||||
begin
|
begin
|
||||||
|
@@ -3,14 +3,10 @@ unit uWebCtrls;
|
|||||||
//////////////////////////////////////
|
//////////////////////////////////////
|
||||||
/// Lina Web Controls Unit ///
|
/// Lina Web Controls Unit ///
|
||||||
/// **************************** ///
|
/// **************************** ///
|
||||||
/// (c) 2014 Dennis G�hlert a.o. ///
|
/// (c) 2015 Dennis G�hlert a.o. ///
|
||||||
//////////////////////////////////////
|
//////////////////////////////////////
|
||||||
|
|
||||||
{$IFNDEF MSWINDOWS}
|
{$I 'Config.inc'}
|
||||||
{$IFDEF WARN_INCOMPATIBLEOS}
|
|
||||||
{$MESSAGE ERROR 'The "uWebCtrls" unit is only available under MS-Windows OS'}
|
|
||||||
{$ENDIF}
|
|
||||||
{$ENDIF}
|
|
||||||
|
|
||||||
interface
|
interface
|
||||||
|
|
||||||
@@ -35,6 +31,9 @@ type
|
|||||||
|
|
||||||
type
|
type
|
||||||
{ Hauptklassen }
|
{ Hauptklassen }
|
||||||
|
{$IFNDEF NO_MULTIPLATFORM}
|
||||||
|
[ComponentPlatformsAttribute(pidWin32 or pidWin64)]
|
||||||
|
{$ENDIF}
|
||||||
TDownload = class(TComponent)
|
TDownload = class(TComponent)
|
||||||
private
|
private
|
||||||
{ Private-Deklarationen }
|
{ Private-Deklarationen }
|
||||||
@@ -85,7 +84,9 @@ type
|
|||||||
function StrIsURL(const S: String): Boolean;
|
function StrIsURL(const S: String): Boolean;
|
||||||
function GetTagParamValue(const S,Tag,Param: String): String;
|
function GetTagParamValue(const S,Tag,Param: String): String;
|
||||||
|
|
||||||
procedure Register;
|
{$IFDEF ADD_COMPONENTREG}
|
||||||
|
procedure Register;
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
const
|
const
|
||||||
{ Web-Protokolle }
|
{ Web-Protokolle }
|
||||||
@@ -97,17 +98,15 @@ const
|
|||||||
WebProtocols: array [0..4] of String = (WP_HTTP,WP_HTTPS,WP_FTP,WP_CALL,WP_MAIL);
|
WebProtocols: array [0..4] of String = (WP_HTTP,WP_HTTPS,WP_FTP,WP_CALL,WP_MAIL);
|
||||||
WebProtocolsSimple: array [0..1] of String = (WP_MAIL,WP_CALL);
|
WebProtocolsSimple: array [0..1] of String = (WP_MAIL,WP_CALL);
|
||||||
WebProtocolsSpecial: array [0..2] of String = (WP_HTTP,WP_HTTPS,WP_FTP);
|
WebProtocolsSpecial: array [0..2] of String = (WP_HTTP,WP_HTTPS,WP_FTP);
|
||||||
{ Meta-Daten }
|
|
||||||
DownloadComponent_Version = '1.0';
|
|
||||||
DownloadComponent_Copyright = 'Copyright � 2015';
|
|
||||||
DownloadComponent_Author = 'Dennis G�hlert a.o.';
|
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
|
|
||||||
procedure Register;
|
{$IFDEF ADD_COMPONENTREG}
|
||||||
begin
|
procedure Register;
|
||||||
RegisterComponents(ComponentsPage,[TDownload]);
|
begin
|
||||||
end;
|
RegisterComponents(ComponentsPage,[TDownload]);
|
||||||
|
end;
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
function ValidProtocol(const Protocol: String;
|
function ValidProtocol(const Protocol: String;
|
||||||
const Protocols: array of String): Boolean;
|
const Protocols: array of String): Boolean;
|
||||||
@@ -323,10 +322,14 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
{ ----------------------------------------------------------------------------
|
||||||
|
TDownload
|
||||||
|
---------------------------------------------------------------------------- }
|
||||||
|
|
||||||
constructor TDownload.Create(AOwner: TComponent);
|
constructor TDownload.Create(AOwner: TComponent);
|
||||||
begin
|
begin
|
||||||
inherited;
|
inherited;
|
||||||
FAbout := TComponentAbout.Create(TDownload,DownloadComponent_Version,DownloadComponent_Copyright,DownloadComponent_Author);
|
FAbout := TComponentAbout.Create(TDownload);
|
||||||
idHTTPObject := TidHTTP.Create(Self);
|
idHTTPObject := TidHTTP.Create(Self);
|
||||||
idHTTPObject.HandleRedirects := True;
|
idHTTPObject.HandleRedirects := True;
|
||||||
idHTTPObject.OnWork := idHTTPObjectWork;
|
idHTTPObject.OnWork := idHTTPObjectWork;
|
||||||
|
BIN
resource/bitmap/Large/TSizePanel.bmp
Normal file
After Width: | Height: | Size: 2.1 KiB |
BIN
resource/bitmap/Small/TValueEdit.bmp
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
resource/bitmap/TSizePanel.bmp
Normal file
After Width: | Height: | Size: 1.6 KiB |