Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Started on class structure (TWPImage). Configured ignore-glob. |
---|---|
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
2ec105df2121cf22546af6aa3dc11021 |
User & Date: | tinus 2014-10-04 15:18:24.433 |
Context
2014-10-05
| ||
19:26 | Added start of unit to manage the list of files. Added unit to determine image size without loading the entire image. check-in: 149636cc23 user: tinus tags: trunk | |
2014-10-04
| ||
15:18 | Started on class structure (TWPImage). Configured ignore-glob. check-in: 2ec105df21 user: tinus tags: trunk | |
15:09 | initial empty check-in check-in: c79c724893 user: tinus tags: trunk | |
Changes
Added .fossil-settings/ignore-glob.
> > > > > > > > > | 1 2 3 4 5 6 7 8 9 | *.~* *.bak */Thumbs.db *.dsk *.local *.identcache */__history/ *.res out/ |
Added .fossil-settings/ignore-glob.no-warn.
Added src/F_Main.dfm.
> > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | object frmMain: TfrmMain Left = 0 Top = 0 Caption = 'Wallpaper Cycler' ClientHeight = 282 ClientWidth = 418 Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = 'Tahoma' Font.Style = [] OldCreateOrder = False PixelsPerInch = 96 TextHeight = 13 object trayIcon: TTrayIcon Left = 24 Top = 208 end object pumTray: TPopupMenu Left = 72 Top = 208 end end |
Added src/F_Main.pas.
> > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | unit F_Main; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.Menus, Vcl.ExtCtrls; type TfrmMain = class(TForm) trayIcon: TTrayIcon; pumTray: TPopupMenu; private { Private declarations } public { Public declarations } end; var frmMain: TfrmMain; implementation {$R *.dfm} end. |
Added src/U_WPImages.pas.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 | unit U_WPImages; interface uses System.Generics.Collections, Vcl.Graphics; type TWPImageZoom = (Default, ActualSize, FitHorizontal, FitVertical, FitLargest, FitSmallest); TWPImage = class private FPath: string; FWidth: Integer; FHeight: Integer; FZoom: TWPImageZoom; function GetRatio: Double; public constructor Create(const Path: string); function LoadGraphic: TGraphic; property Path: string read FPath write FPath; property Zoom: TWPImageZoom read FZoom write FZoom; property Width: Integer read FWidth write FWidth; property Height: Integer read FHeight write FHeight; property Ratio: Double read GetRatio; end; TWPImages = class(TList<TWPImage>) end; implementation uses System.Classes, System.SysUtils, Vcl.AxCtrls, ImgSize; { TWPImage } constructor TWPImage.Create(const Path: string); var FS: TFileStream; OG: TOleGraphic; W, H: Word; begin FS := TFileStream.Create(Path, fmOpenRead or fmShareDenyNone); try // Try identifying the image type by its signature, then retrieve the file size if GetJPGSize(FS, W, H) or GetPNGSize(FS, W, H) or GetGIFSize(FS, W, H) then begin FWidth := W; FHeight := H; end else if not GetBMPSize(FS, FWidth, FHeight) then begin // All else has failed; see if Windows recognizes it OG := TOleGraphic.Create; try OG.LoadFromStream(FS); Width := OG.Width; Height := OG.Height; finally OG.Free; end; end; finally FS.Free; end; end {TWPImage.Create}; function TWPImage.GetRatio: Double; begin Result := Width / Height; end {TWPImage.GetRatio}; function TWPImage.LoadGraphic: TGraphic; begin Result := TOleGraphic.Create; Result.LoadFromFile(Path); end {TWPImage.LoadGraphic}; end. |
Added src/WPCycler.dpr.
> > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | program WPCycler; uses Vcl.Forms, F_Main in 'F_Main.pas' {frmMain}, U_WPImages in 'U_WPImages.pas', ImgSize in '..\..\..\..\..\..\..\Common\Delphi\ImgSize.pas'; {$R *.res} begin Application.Initialize; Application.MainFormOnTaskbar := True; Application.CreateForm(TfrmMain, frmMain); Application.Run; end. |
Added src/WPCycler.dproj.
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 | <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <PropertyGroup> <ProjectGuid>{859A2EA9-B9DC-4E59-BACD-71E53F4D25CF}</ProjectGuid> <ProjectVersion>15.3</ProjectVersion> <FrameworkType>VCL</FrameworkType> <MainSource>WPCycler.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)'!=''"> <VerInfo_Locale>1043</VerInfo_Locale> <Icon_MainIcon>$(BDS)\bin\delphi_PROJECTICON.ico</Icon_MainIcon> <Manifest_File>$(BDS)\bin\default_app.manifest</Manifest_File> <VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=</VerInfo_Keys> <DCC_Namespace>System;Xml;Data;Datasnap;Web;Soap;Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;$(DCC_Namespace)</DCC_Namespace> <DCC_DcuOutput>..\out\DCU\$(Platform)\$(Config)</DCC_DcuOutput> <DCC_ExeOutput>..\out\$(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)'!=''"> <VerInfo_Locale>1033</VerInfo_Locale> <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo> <Manifest_File>$(BDS)\bin\default_app.manifest</Manifest_File> <DCC_Namespace>Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace> <DCC_UsePackage>FireDACASADriver;FireDACSqliteDriver;bindcompfmx;DBXSqliteDriver;vcldbx;FireDACPgDriver;FireDACODBCDriver;fmx;rtl;dbrtl;DbxClientDriver;IndySystem;FireDACCommon;bindcomp;TeeDB;inetdbbde;DBXInterBaseDriver;Tee;DataSnapCommon;vclFireDAC;xmlrtl;svnui;DbxCommonDriver;vclimg;IndyProtocols;dbxcds;DBXMySQLDriver;FireDACCommonDriver;MetropolisUILiveTile;soaprtl;bindengine;vclactnband;vcldb;bindcompdbx;vcldsnap;bindcompvcl;FMXTee;TeeUI;vclie;fmxFireDAC;FireDACADSDriver;vcltouch;CustomIPTransport;vclribbon;VclSmp;FireDAC;dsnap;IndyIPServer;Intraweb;fmxase;vcl;IndyCore;VCLRESTComponents;IndyIPCommon;CloudService;CodeSiteExpressPkg;dsnapcon;FireDACIBDriver;FmxTeeUI;inet;fmxobj;FireDACMySQLDriver;vclx;inetdbxpress;webdsnap;svn;fmxdae;RESTComponents;bdertl;FireDACMSAccDriver;adortl;dbexpress;IndyIPClient;$(DCC_UsePackage)</DCC_UsePackage> <VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=</VerInfo_Keys> </PropertyGroup> <PropertyGroup Condition="'$(Base_Win64)'!=''"> <DCC_UsePackage>FireDACASADriver;FireDACSqliteDriver;bindcompfmx;DBXSqliteDriver;FireDACPgDriver;FireDACODBCDriver;fmx;rtl;dbrtl;DbxClientDriver;IndySystem;FireDACCommon;bindcomp;TeeDB;DBXInterBaseDriver;Tee;DataSnapCommon;vclFireDAC;xmlrtl;DbxCommonDriver;vclimg;IndyProtocols;dbxcds;DBXMySQLDriver;FireDACCommonDriver;MetropolisUILiveTile;soaprtl;bindengine;vclactnband;vcldb;bindcompdbx;vcldsnap;bindcompvcl;FMXTee;TeeUI;vclie;fmxFireDAC;FireDACADSDriver;vcltouch;CustomIPTransport;vclribbon;VclSmp;FireDAC;dsnap;IndyIPServer;Intraweb;fmxase;vcl;IndyCore;VCLRESTComponents;IndyIPCommon;CloudService;dsnapcon;FireDACIBDriver;FmxTeeUI;inet;fmxobj;FireDACMySQLDriver;vclx;inetdbxpress;webdsnap;fmxdae;RESTComponents;FireDACMSAccDriver;adortl;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)'!=''"> <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo> <VerInfo_Locale>1033</VerInfo_Locale> <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="F_Main.pas"> <Form>frmMain</Form> <FormType>dfm</FormType> </DCCReference> <DCCReference Include="U_WPImages.pas"/> <DCCReference Include="..\..\..\..\..\..\..\Common\Delphi\ImgSize.pas"/> <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">1043</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">WPCycler.dpr</Source> </Source> <Excluded_Packages> <Excluded_Packages Name="$(BDSBIN)\dcloffice2k190.bpl">Microsoft Office 2000 Sample Automation Server Wrapper Components</Excluded_Packages> <Excluded_Packages Name="$(BDSBIN)\dclofficexp190.bpl">Microsoft Office XP Sample Automation Server Wrapper Components</Excluded_Packages> </Excluded_Packages> </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> |