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.