1
0
mirror of https://bitbucket.org/Dennis07/lina-components.git synced 2025-02-02 10:25:22 +02:00
Dennis07 62559dcad1 Version 1.0 DEV 1.11e
Signed-off-by: Dennis07 <den.goehlert@t-online.de>
2014-11-16 12:10:44 +01:00

150 lines
4.7 KiB
ObjectPascal

unit uBase;
//////////////////////////////////////
/// Lina Base Unit ///
/// **************************** ///
/// (c) 2014 Dennis Göhlert a.o. ///
//////////////////////////////////////
{$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}
{$DEFINE ADDSPLASHENTRY}
{$DEFINE ADDABOUTENTRY}
interface
{ Dies ist die Basis-Unit für die Lina-Komponenten bzw. Methoden und Klassen }
uses
{ Standard-Units }
SysUtils, Classes, Dialogs, Graphics, ToolsAPI;
type
TComponentAbout = class
private
{ Private-Deklarationen }
FComponent: ShortString;
FVersion: Single;
FAuthor: ShortString;
FCopyright: ShortString;
FHomepage: ShortString;
protected
{ Protected-Deklarationen }
published
property Component: ShortString read FComponent;
property Version: Single read FVersion;
property Copyright: ShortString read FCopyright;
property Author: ShortString read FAuthor;
property Homepage: ShortString read FHomepage;
public
{ Public-Deklarationen }
constructor Create(Comp: ShortString = ''; Ver: Single = 1.0;
Copy: ShortString = ''; Auth: ShortString = ''; Home: ShortString = '');
{ Über-Dialog }
procedure AboutDlg;
end;
procedure RegisterPackageOnSplash;
procedure RegisterPackageOnAbout;
const
ComponentsPage = 'Lina';
About_Title = 'About...';
Package_Name = 'Lina Components';
Package_Description = 'Components and source library for Delphi';
Package_License = 'Mozilla Public License (MPL) 2.0';
Package_SKU = '(Dev-Preview)';
implementation
procedure RegisterPackageOnSplash;
var
SplashBitmap: TBitmap;
begin
SplashBitmap := TBitmap.Create;
try
SplashBitmap.LoadFromFile('..\..\Resource\Lina.bmp');
(ToolsAPI.SplashScreenServices as IOTASplashScreenServices).AddPluginBitmap(
Package_Name,SplashBitmap.Handle,False,Package_License,Package_SKU);
finally
SplashBitmap.Free;
end;
end;
procedure RegisterPackageOnAbout;
begin
end;
constructor TComponentAbout.Create(Comp: ShortString = ''; Ver: Single = 1.0;
Copy: ShortString = ''; Auth: ShortString = ''; Home: ShortString = '');
begin
FComponent := Comp;
FVersion := Ver;
FCopyright := Copy;
FAuthor := Auth;
FHomepage := Homepage;
end;
procedure TComponentAbout.AboutDlg;
begin
{$IFDEF NO_VISTA}
{ MessageDlg, falls der Compiler KEINE Vista-Dialoge unterstützt }
MessageDlg(
{$ELSE}
{ TaskMessageDlg, falls der Compiler Vista-Dialoge unterstützt }
TaskMessageDlg(
{$ENDIF}
About_Title,
{ ---------------------------------- }
Component + ' v'
+ FloatToStr(Version) + #10#13
+ Copyright + ' ' + Author + #10#13
+ Homepage,
{ ---------------------------------- }
mtInformation,
{ ---------------------------------- }
[mbClose],0)
end;
initialization
{$IFDEF ADDSPLASHENTRY}
RegisterPackageOnSplash;
{$ENDIF}
end.