diff --git a/components/fpexif/delphi examples/console_demo/console_demo.dpr b/components/fpexif/delphi examples/console_demo/console_demo.dpr index 3a41c835f..f44c634b6 100644 --- a/components/fpexif/delphi examples/console_demo/console_demo.dpr +++ b/components/fpexif/delphi examples/console_demo/console_demo.dpr @@ -23,6 +23,7 @@ const {$ENDIF} begin + WriteLn('Analyzing file "', ExpandFileName(FILENAME), '"...'); try imgInfo := TImgInfo.Create; try diff --git a/components/fpexif/delphi examples/console_demo/console_demo.dproj b/components/fpexif/delphi examples/console_demo/console_demo.dproj index a16d10e31..21c551530 100644 --- a/components/fpexif/delphi examples/console_demo/console_demo.dproj +++ b/components/fpexif/delphi examples/console_demo/console_demo.dproj @@ -1,7 +1,7 @@  {FAF25CF3-1AD3-4E91-AAE4-53A637D73E44} - 18.8 + 19.5 None console_demo.dpr True @@ -13,16 +13,6 @@ true - - true - Base - true - - - true - Base - true - true Base @@ -68,42 +58,6 @@ ..\..;$(DCC_UnitSearchPath) dExifNoJpeg;$(DCC_Define) - - DBXSqliteDriver;IndyIPCommon;RESTComponents;bindcompdbx;DBXInterBaseDriver;IndyIPServer;IndySystem;tethering;fmxFireDAC;FireDAC;bindcompfmx;FireDACSqliteDriver;ibmonitor;FMXTee;soaprtl;DbxCommonDriver;FmxTeeUI;ibxpress;fmx;FireDACIBDriver;xmlrtl;soapmidas;ibxbindings;rtl;DbxClientDriver;CustomIPTransport;dbexpress;IndyCore;bindcomp;dsnap;FireDACCommon;IndyIPClient;RESTBackendComponents;soapserver;dbxcds;bindengine;CloudService;dsnapxml;dbrtl;IndyProtocols;FireDACCommonDriver;inet;$(DCC_UsePackage) - $(BDS)\bin\Artwork\Android\FM_LauncherIcon_36x36.png - $(BDS)\bin\Artwork\Android\FM_LauncherIcon_48x48.png - $(BDS)\bin\Artwork\Android\FM_LauncherIcon_72x72.png - $(BDS)\bin\Artwork\Android\FM_LauncherIcon_96x96.png - $(BDS)\bin\Artwork\Android\FM_LauncherIcon_144x144.png - $(BDS)\bin\Artwork\Android\FM_SplashImage_426x320.png - $(BDS)\bin\Artwork\Android\FM_SplashImage_470x320.png - $(BDS)\bin\Artwork\Android\FM_SplashImage_640x480.png - $(BDS)\bin\Artwork\Android\FM_SplashImage_960x720.png - android-support-v4.dex.jar;cloud-messaging.dex.jar;fmx.dex.jar;google-analytics-v2.dex.jar;google-play-billing.dex.jar;google-play-licensing.dex.jar;google-play-services-ads-7.0.0.dex.jar;google-play-services-analytics-7.0.0.dex.jar;google-play-services-base-7.0.0.dex.jar;google-play-services-gcm-7.0.0.dex.jar;google-play-services-identity-7.0.0.dex.jar;google-play-services-maps-7.0.0.dex.jar;google-play-services-panorama-7.0.0.dex.jar;google-play-services-plus-7.0.0.dex.jar;google-play-services-wallet-7.0.0.dex.jar - $(BDS)\bin\Artwork\Android\FM_NotificationIcon_24x24.png - $(BDS)\bin\Artwork\Android\FM_NotificationIcon_36x36.png - $(BDS)\bin\Artwork\Android\FM_NotificationIcon_48x48.png - $(BDS)\bin\Artwork\Android\FM_NotificationIcon_72x72.png - $(BDS)\bin\Artwork\Android\FM_NotificationIcon_96x96.png - - - package=com.embarcadero.$(MSBuildProjectName);label=$(MSBuildProjectName);versionCode=1;versionName=1.0.0;persistent=False;restoreAnyVersion=False;installLocation=auto;largeHeap=False;theme=TitleBar;hardwareAccelerated=true;apiKey= - Debug - true - Base - true - DBXSqliteDriver;IndyIPCommon;RESTComponents;bindcompdbx;DBXInterBaseDriver;IndyIPServer;IndySystem;tethering;fmxFireDAC;FireDAC;bindcompfmx;FireDACSqliteDriver;ibmonitor;FMXTee;soaprtl;DbxCommonDriver;FmxTeeUI;ibxpress;fmx;FireDACIBDriver;xmlrtl;soapmidas;ibxbindings;rtl;DbxClientDriver;CustomIPTransport;dbexpress;IndyCore;bindcomp;dsnap;FireDACCommon;IndyIPClient;RESTBackendComponents;soapserver;dbxcds;bindengine;CloudService;dsnapxml;dbrtl;IndyProtocols;FireDACCommonDriver;inet;$(DCC_UsePackage);$(DCC_UsePackage) - $(BDS)\bin\Artwork\Android\FM_LauncherIcon_36x36.png - $(BDS)\bin\Artwork\Android\FM_LauncherIcon_48x48.png - $(BDS)\bin\Artwork\Android\FM_LauncherIcon_72x72.png - $(BDS)\bin\Artwork\Android\FM_LauncherIcon_96x96.png - $(BDS)\bin\Artwork\Android\FM_LauncherIcon_144x144.png - $(BDS)\bin\Artwork\Android\FM_SplashImage_426x320.png - $(BDS)\bin\Artwork\Android\FM_SplashImage_470x320.png - $(BDS)\bin\Artwork\Android\FM_SplashImage_640x480.png - $(BDS)\bin\Artwork\Android\FM_SplashImage_960x720.png - android-support-v4.dex.jar;cloud-messaging.dex.jar;fmx.dex.jar;google-analytics-v2.dex.jar;google-play-billing.dex.jar;google-play-licensing.dex.jar;google-play-services-ads-7.0.0.dex.jar;google-play-services-analytics-7.0.0.dex.jar;google-play-services-base-7.0.0.dex.jar;google-play-services-gcm-7.0.0.dex.jar;google-play-services-identity-7.0.0.dex.jar;google-play-services-maps-7.0.0.dex.jar;google-play-services-panorama-7.0.0.dex.jar;google-play-services-plus-7.0.0.dex.jar;google-play-services-wallet-7.0.0.dex.jar - DBXSqliteDriver;IndyIPCommon;RESTComponents;bindcompdbx;DBXInterBaseDriver;vcl;IndyIPServer;vclactnband;vclFireDAC;IndySystem;tethering;svnui;dsnapcon;FireDACADSDriver;FireDACMSAccDriver;fmxFireDAC;vclimg;TeeDB;FireDAC;vcltouch;vcldb;bindcompfmx;svn;FireDACSqliteDriver;FireDACPgDriver;ibmonitor;inetdb;FMXTee;soaprtl;DbxCommonDriver;FmxTeeUI;ibxpress;fmx;FireDACIBDriver;fmxdae;xmlrtl;soapmidas;ibxbindings;fmxobj;vclwinx;vclib;rtl;Tee;DbxClientDriver;CustomIPTransport;vcldsnap;dbexpress;IndyCore;vclx;bindcomp;appanalytics;dsnap;FireDACCommon;IndyIPClient;bindcompvcl;RESTBackendComponents;TeeUI;VCLRESTComponents;soapserver;dbxcds;VclSmp;adortl;vclie;bindengine;DBXMySQLDriver;CloudService;dsnapxml;FireDACMySQLDriver;dbrtl;IndyProtocols;inetdbxpress;FireDACCommonODBC;FireDACCommonDriver;inet;fmxase;$(DCC_UsePackage) Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace) @@ -151,10 +105,6 @@ MainSource - - Cfg_2 - Base - Base @@ -162,6 +112,10 @@ Cfg_1 Base + + Cfg_2 + Base + Delphi.Personality.12 @@ -176,17 +130,7 @@ Microsoft Office XP Beispiele für gekapselte Komponenten für Automation Server - - - - true - - - - - true - - + true @@ -197,17 +141,14 @@ true - + + true - - - console_demo.exe - true - - + + 1 @@ -220,14 +161,14 @@ 0 - + classes - 1 + 64 classes - 1 + 64 @@ -348,6 +289,16 @@ 1 + + + res\drawable-xxxhdpi + 1 + + + res\drawable-xxxhdpi + 1 + + res\drawable-ldpi @@ -511,6 +462,11 @@ 1 .framework + + Contents\MacOS + 1 + .framework + 0 @@ -524,7 +480,7 @@ 1 .dylib - + 1 .dylib @@ -538,6 +494,11 @@ 1 .dylib + + Contents\MacOS + 1 + .dylib + 0 .dll;.bpl @@ -552,7 +513,7 @@ 1 .dylib - + 1 .dylib @@ -566,6 +527,11 @@ 1 .dylib + + Contents\MacOS + 1 + .dylib + 0 .bpl @@ -584,7 +550,7 @@ 0 - + 0 @@ -595,316 +561,12 @@ Contents\Resources\StartUp\ 0 - + + Contents\Resources\StartUp\ 0 - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 + + 0 @@ -915,61 +577,15 @@ 1 - - - ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF - 1 - - - ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF - 1 - - - - - 1 - - - 1 - - - - - ..\ - 1 - - - ..\ - 1 - - - - - 1 - - - 1 - - - 1 - - - - - 1 - - - 1 - - - 1 - - ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 1 + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + 1 + @@ -980,6 +596,10 @@ ..\ 1 + + ..\ + 1 + @@ -990,6 +610,10 @@ Contents 1 + + Contents + 1 + @@ -1000,6 +624,10 @@ Contents\Resources 1 + + Contents\Resources + 1 + @@ -1016,7 +644,7 @@ 1 - + 1 @@ -1030,6 +658,10 @@ Contents\MacOS 1 + + Contents\MacOS + 1 + 0 @@ -1048,6 +680,66 @@ 1 + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + 1 + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + 1 + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + 1 + + + + + ..\ + 1 + + + ..\ + 1 + + + ..\ + 1 + + + + + 1 + + + 1 + + + 1 + + + + + ..\$(PROJECTNAME).launchscreen + 64 + + + ..\$(PROJECTNAME).launchscreen + 64 + + + + + 1 + + + 1 + + + 1 + + Assets @@ -1068,20 +760,220 @@ 1 - - - - - - + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + - - + + + + + + + + + + - False - False True True diff --git a/components/fpexif/delphi examples/metadata_viewer/MetadataViewer.dpr b/components/fpexif/delphi examples/metadata_viewer/MetadataViewer.dpr index 7272039d9..facd45f2c 100644 --- a/components/fpexif/delphi examples/metadata_viewer/MetadataViewer.dpr +++ b/components/fpexif/delphi examples/metadata_viewer/MetadataViewer.dpr @@ -2,7 +2,7 @@ program MetadataViewer; uses Forms, - mdvMain in 'mdvMain.pas' {Form1}; + mdvmain in 'mdvmain.pas' {Form1}; {$R *.res} diff --git a/components/fpexif/delphi examples/metadata_viewer/MetadataViewer.dproj b/components/fpexif/delphi examples/metadata_viewer/MetadataViewer.dproj index 88970633f..091f066bd 100644 --- a/components/fpexif/delphi examples/metadata_viewer/MetadataViewer.dproj +++ b/components/fpexif/delphi examples/metadata_viewer/MetadataViewer.dproj @@ -134,7 +134,7 @@ MainSource - +
Form1
diff --git a/components/fpexif/delphi examples/metadata_viewer/mdvmain.dfm b/components/fpexif/delphi examples/metadata_viewer/mdvmain.dfm index be7c4ce5b..f451ae9ef 100644 --- a/components/fpexif/delphi examples/metadata_viewer/mdvmain.dfm +++ b/components/fpexif/delphi examples/metadata_viewer/mdvmain.dfm @@ -2,8 +2,8 @@ object MainForm: TMainForm Left = 430 Top = 141 Caption = 'Metadata viewer' - ClientHeight = 714 - ClientWidth = 926 + ClientHeight = 715 + ClientWidth = 930 Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText @@ -18,13 +18,13 @@ object MainForm: TMainForm Left = 274 Top = 0 Width = 5 - Height = 691 + Height = 692 end object ShellPanel: TPanel Left = 0 Top = 0 Width = 274 - Height = 691 + Height = 692 Align = alLeft BevelOuter = bvNone TabOrder = 0 @@ -38,7 +38,7 @@ object MainForm: TMainForm end object PreviewImage: TImage Left = 0 - Top = 547 + Top = 548 Width = 274 Height = 144 Hint = 'Thumbnail image embedded in the image file' @@ -92,7 +92,7 @@ object MainForm: TMainForm Left = 0 Top = 293 Width = 274 - Height = 241 + Height = 242 Hint = 'Select the image for which you want to see the metadata' Align = alClient Mask = '*.jpg;*.jpeg;*.jpe;*.tiff;*.tif' @@ -102,7 +102,7 @@ object MainForm: TMainForm end object Panel4: TPanel Left = 0 - Top = 534 + Top = 535 Width = 274 Height = 13 Align = alBottom @@ -141,15 +141,15 @@ object MainForm: TMainForm object Panel2: TPanel Left = 279 Top = 0 - Width = 647 - Height = 691 + Width = 651 + Height = 692 Align = alClient BevelOuter = bvNone TabOrder = 2 object Splitter3: TSplitter Left = 0 - Top = 571 - Width = 647 + Top = 572 + Width = 651 Height = 5 Cursor = crVSplit Align = alBottom @@ -157,7 +157,7 @@ object MainForm: TMainForm object Panel3: TPanel Left = 0 Top = 0 - Width = 647 + Width = 651 Height = 21 Align = alTop AutoSize = True @@ -174,22 +174,22 @@ object MainForm: TMainForm ParentColor = False end end - object PageControl1: TPageControl + object PageControl: TPageControl Left = 0 Top = 21 - Width = 647 - Height = 550 + Width = 651 + Height = 551 ActivePage = PgXMP Align = alClient TabOrder = 1 - OnChange = PageControl1Change + OnChange = PageControlChange object PgMetadata: TTabSheet Caption = 'Meta data' object TagListView: TListView Left = 0 Top = 0 - Width = 639 - Height = 503 + Width = 643 + Height = 504 Align = alClient Columns = < item @@ -219,8 +219,8 @@ object MainForm: TMainForm end object Panel1: TPanel Left = 0 - Top = 503 - Width = 639 + Top = 504 + Width = 643 Height = 19 Align = alBottom AutoSize = True @@ -245,7 +245,7 @@ object MainForm: TMainForm object Splitter4: TSplitter Left = 0 Top = 150 - Width = 639 + Width = 643 Height = 3 Cursor = crVSplit Align = alTop @@ -253,7 +253,7 @@ object MainForm: TMainForm object XMPListView: TListView Left = 0 Top = 0 - Width = 639 + Width = 643 Height = 150 Align = alTop Columns = < @@ -271,8 +271,8 @@ object MainForm: TMainForm object XMPSynEdit: TMemo Left = 0 Top = 153 - Width = 639 - Height = 335 + Width = 643 + Height = 336 Align = alClient Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText @@ -284,8 +284,8 @@ object MainForm: TMainForm end object Panel6: TPanel Left = 0 - Top = 488 - Width = 639 + Top = 489 + Width = 643 Height = 34 Align = alBottom BevelOuter = bvNone @@ -325,8 +325,8 @@ object MainForm: TMainForm object Image: TImage Left = 0 Top = 0 - Width = 639 - Height = 522 + Width = 643 + Height = 523 Align = alClient Center = True Proportional = True @@ -336,16 +336,16 @@ object MainForm: TMainForm end object Messages: TMemo Left = 0 - Top = 576 - Width = 647 + Top = 577 + Width = 651 Height = 90 Align = alBottom TabOrder = 2 end object DateTimePanel: TPanel Left = 0 - Top = 666 - Width = 647 + Top = 667 + Width = 651 Height = 25 Align = alBottom AutoSize = True @@ -382,8 +382,8 @@ object MainForm: TMainForm end object StatusBar1: TStatusBar Left = 0 - Top = 691 - Width = 926 + Top = 692 + Width = 930 Height = 23 Panels = < item diff --git a/components/fpexif/delphi examples/metadata_viewer/mdvmain.pas b/components/fpexif/delphi examples/metadata_viewer/mdvmain.pas index 9d99c16fe..02c9b6d99 100644 --- a/components/fpexif/delphi examples/metadata_viewer/mdvmain.pas +++ b/components/fpexif/delphi examples/metadata_viewer/mdvmain.pas @@ -25,7 +25,7 @@ type Label1: TLabel; LblChangeDate: TLabel; Messages: TMemo; - PageControl1: TPageControl; + PageControl: TPageControl; Panel1: TPanel; Panel2: TPanel; Panel3: TPanel; @@ -56,7 +56,7 @@ type procedure CbShowTagIDsChange(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); - procedure PageControl1Change(Sender: TObject); + procedure PageControlChange(Sender: TObject); (* procedure ShellListViewSelectItem(Sender: TObject; Item: TListItem; Selected: Boolean); @@ -443,7 +443,7 @@ begin end; end; - if PageControl1.ActivePage = PgImage then begin + if PageControl.ActivePage = PgImage then begin crs := Screen.Cursor; try Screen.Cursor := crHourglass; @@ -471,7 +471,6 @@ var i, W, H, L, T: Integer; rct: TRect; s: String; - b: Boolean; begin ini := TIniFile.Create(CalcIniName); try @@ -489,7 +488,7 @@ begin SetBounds(L, T, W, H); s := ini.ReadString('MainForm', 'Path', ''); - if s <> '' then begin + if (s <> '') and FileExists(s) then begin ShellTreeView.Directory := s; ShellListView.Directory := s; end; @@ -500,6 +499,8 @@ begin h := ini.ReadInteger('MainForm', 'TreeHeight', 0); if h <> 0 then ShellTreeView.Height := h; + PageControl.ActivePageIndex := ini.ReadInteger('MainForm', 'ActivePageIndex', 0); + for i:=0 to TagListView.Columns.Count-1 do begin w := ini.ReadInteger('TagList', 'ColWidth'+IntToStr(i), 0); if w <> 0 then @@ -529,7 +530,7 @@ begin end; end; -procedure TMainForm.PageControl1Change(Sender: TObject); +procedure TMainForm.PageControlChange(Sender: TObject); var crs: TCursor; begin @@ -566,6 +567,7 @@ begin ini.WriteString('MainForm', 'Path', ShellTreeView.Directory); ini.WriteInteger('MainForm', 'LeftPanelWidth', ShellPanel.Width); ini.WriteInteger('MainForm', 'TreeHeight', ShellTreeView.Height); + ini.WriteInteger('MainForm', 'ActivePageIndex', PageControl.ActivePageIndex); for i:=0 to TagListView.Columns.Count-1 do ini.WriteInteger('TagList', 'ColWidth'+IntToStr(i), TagListView.Columns[i].Width); @@ -656,7 +658,6 @@ const ); var lTag: TTag; - s: String; tagID: TTagIDRec; begin if Selected then begin @@ -679,8 +680,6 @@ begin end; procedure TMainForm.UpdateCaption; -var - fn: String; begin if FImgInfo <> nil then FileNameInfo.Caption := Format( diff --git a/components/fpexif/delphi examples/simple_demo/ExifSimpleDemo.dproj b/components/fpexif/delphi examples/simple_demo/ExifSimpleDemo.dproj index c7f4a041d..8be51e133 100644 --- a/components/fpexif/delphi examples/simple_demo/ExifSimpleDemo.dproj +++ b/components/fpexif/delphi examples/simple_demo/ExifSimpleDemo.dproj @@ -7,7 +7,7 @@ 3 Application VCL - 18.8 + 19.5 Win32
@@ -128,13 +128,9 @@ MainSource - +
Form1
- - Cfg_2 - Base - Base @@ -142,6 +138,10 @@ Cfg_1 Base + + Cfg_2 + Base + Delphi.Personality.12 diff --git a/components/fpexif/delphi examples/simple_demo/ExifSimpleDemo.res b/components/fpexif/delphi examples/simple_demo/ExifSimpleDemo.res index 42d28941c..036ae02b0 100644 Binary files a/components/fpexif/delphi examples/simple_demo/ExifSimpleDemo.res and b/components/fpexif/delphi examples/simple_demo/ExifSimpleDemo.res differ diff --git a/components/fpexif/delphi examples/simple_demo/sdmain.dfm b/components/fpexif/delphi examples/simple_demo/sdmain.dfm index 8f1011a1c..86500b865 100644 --- a/components/fpexif/delphi examples/simple_demo/sdmain.dfm +++ b/components/fpexif/delphi examples/simple_demo/sdmain.dfm @@ -10,13 +10,11 @@ object MainForm: TMainForm Font.Height = -11 Font.Name = 'Tahoma' Font.Style = [] - OldCreateOrder = True OnCreate = FormCreate OnDestroy = FormDestroy DesignSize = ( 788 477) - PixelsPerInch = 96 TextHeight = 13 object Thumbnail: TImage Left = 620 diff --git a/components/fpexif/delphi examples/simple_demo/sdmain.pas b/components/fpexif/delphi examples/simple_demo/sdmain.pas index 97326905d..48068d425 100644 --- a/components/fpexif/delphi examples/simple_demo/sdmain.pas +++ b/components/fpexif/delphi examples/simple_demo/sdmain.pas @@ -190,6 +190,8 @@ begin end; if FImgInfo.IptcData <> nil then FImgInfo.IptcData.ExportToStrings(Memo.Lines, exportOptions, SEPARATOR); + if FImgInfo.XmpData <> nil then + FImgInfo.XmpData.ExportToStrings(Memo.Lines, exportOptions, SEPARATOR); finally Memo.Lines.EndUpdate; Memo.Invalidate; diff --git a/components/fpexif/fpeexifdata.pas b/components/fpexif/fpeexifdata.pas index b8899b820..fa919a788 100644 --- a/components/fpexif/fpeexifdata.pas +++ b/components/fpexif/fpeexifdata.pas @@ -1,4 +1,4 @@ -unit fpeExifData; +unit fpeExifData; {$IFDEF FPC} //{$mode objfpc}{$H+} diff --git a/components/fpexif/fpeexifreadwrite.pas b/components/fpexif/fpeexifreadwrite.pas index cb3ab3fc8..fd642350f 100644 --- a/components/fpexif/fpeexifreadwrite.pas +++ b/components/fpexif/fpeexifreadwrite.pas @@ -143,7 +143,7 @@ var item: TReaderItem; ucMake: String; Makes: TStrings; - j: Integer; + i, j: Integer; begin if RegisteredReaders <> nil then begin @@ -154,13 +154,16 @@ begin {$ENDIF} Makes.Delimiter := ';'; ucMake := Uppercase(AMake); - for Result:=0 to RegisteredReaders.Count-1 do begin - item := TReaderItem(RegisteredReaders[Result]); + for i:=0 to RegisteredReaders.Count-1 do begin + item := TReaderItem(RegisteredReaders[i]); Makes.DelimitedText := item.Make; for j := 0 to Makes.Count-1 do begin if pos(Uppercase(Makes[j]), ucMake) <> 0 then if (item.Model = '') or (AModel = '') or SameText(item.Model, AModel) then + begin + Result := i; exit; + end; end; end; finally @@ -185,7 +188,7 @@ begin item.ReaderClass := AClass; item.Make := AMake; item.Model := AModel; - idx := RegisteredReaders.Add(item); + RegisteredReaders.Add(item); end else begin item := TReaderItem(RegisteredReaders[idx]); item.ReaderClass := AClass; diff --git a/components/fpexif/fpemakernoteminolta.pas b/components/fpexif/fpemakernoteminolta.pas index 7ca19bb80..57acb9c33 100644 --- a/components/fpexif/fpemakernoteminolta.pas +++ b/components/fpexif/fpemakernoteminolta.pas @@ -1,4 +1,4 @@ -unit fpeMakerNoteMinolta; +unit fpeMakerNoteMinolta; {$IFDEF FPC} //{$mode objfpc}{$H+} diff --git a/components/fpexif/fpemakernoteolympus.pas b/components/fpexif/fpemakernoteolympus.pas index f70f58414..bd2bd984a 100644 --- a/components/fpexif/fpemakernoteolympus.pas +++ b/components/fpexif/fpemakernoteolympus.pas @@ -1,4 +1,4 @@ -unit fpeMakerNoteOlympus; +unit fpeMakerNoteOlympus; {$IFDEF FPC} {$MODE DELPHI} diff --git a/components/fpexif/fpeutils.pas b/components/fpexif/fpeutils.pas index 6a5950b2f..2aee8077c 100644 --- a/components/fpexif/fpeutils.pas +++ b/components/fpexif/fpeutils.pas @@ -1,4 +1,4 @@ -unit fpeUtils; +unit fpeUtils; {$IFDEF FPC} {$mode ObjFPC}{$H+} @@ -825,6 +825,7 @@ var w, h: Integer; f: Double; begin + bmp := nil; jpeg := TJpegImage.Create; try jpeg.LoadfromStream(ASrcStream); @@ -1273,6 +1274,7 @@ begin K2 := 1; b := Value; NewA := Round(Floor(b)); + PendingOverflow := false; repeat A := NewA; tmp := H1; diff --git a/components/fpexif/fpexmpdata.pas b/components/fpexif/fpexmpdata.pas index ea8988f40..09c280741 100644 --- a/components/fpexif/fpexmpdata.pas +++ b/components/fpexif/fpexmpdata.pas @@ -45,6 +45,7 @@ type public constructor Create; destructor Destroy; override; + procedure ExportToStrings(AList: TStrings; AOptions: TExportOptions; ASeparator: String = '='); procedure LoadFromStream(AStream: TStream; ASize: Integer = -1); procedure SaveToStream(AStream: TStream); property TagByIndex[AIndex: Integer]: String read GetTagByIndex; @@ -83,9 +84,8 @@ var attr: IXMLNode; {$ENDIF} nodeName: String; - i, n: Integer; + i: Integer; lTagName, lTagValue: String; - lTag: TTag; begin while ANode <> nil do begin nodeName := ANode.NodeName; @@ -202,6 +202,42 @@ begin end; end; +procedure TXMPData.ExportToStrings(AList: TStrings; AOptions: TExportOptions; + ASeparator: String = '='); +var + i: Integer; + tagnam: String; + tagval: String; + usedExportOptions: TExportOptions; +begin + Assert(AList <> nil); + + if TagCount = 0 then + exit; + + if AList.Count > 0 then + AList.Add(''); + AList.Add('*** XMP ***'); + + for i := 0 to TagCount-1 do begin + tagNam := TagName[i]; + tagVal := TagByIndex[i]; + { + usedExportOptions := AOptions * [eoShowDecimalTagID, eoShowHexTagID]; + if usedExportOptions = [eoShowDecimalTagID] then + nam := Format('[%d] %s', [tag.TagID, tag.Description]) + else + if usedExportOptions = [eoShowHexTagID] then + nam := Format('[$%.4x] %s', [tag.TagID, tag.Description]) + else + nam := tag.Description; + tagval := tag.AsString; + } + if tagval <> '' then + AList.Add(tagnam + ASeparator + tagval); + end; +end; + function TXMPData.GetTagByIndex(AIndex: Integer): String; begin Result := FTags.ValueFromIndex[AIndex]; diff --git a/components/fpexif/readme.txt b/components/fpexif/readme.txt index e7a9af357..e8f6e1a58 100644 --- a/components/fpexif/readme.txt +++ b/components/fpexif/readme.txt @@ -13,6 +13,7 @@ fpexif works without the LCL. Meta data systems supported are - EXIF (including thumbnail, GPS, and manufacturer notes (partially) ) - IPTC +- XMP Image formats - JPEG @@ -98,10 +99,8 @@ See also "console_demo". -------------------------------------------------------------------------------- Tested systems -------------------------------------------------------------------------------- -* Lazarus 1.0/fpc 2.6.0 up to Lazarus 1.9/fpc 3.0.4 -* Delphi 7.0 -* Delphi XE2 -* Delphi 10.2 Tokyo +* Lazarus 1.0/fpc 2.6.0 up to Lazarus 3.0/fpc 3.2.2 +* Delphi 7.0, XE2, XE10.2, XE11.3 -------------------------------------------------------------------------------- diff --git a/components/fpexif/tests/multiread/MultiRead_D7.dof b/components/fpexif/tests/multiread/MultiRead_D7.dof index 47dec7a88..1aa547810 100644 --- a/components/fpexif/tests/multiread/MultiRead_D7.dof +++ b/components/fpexif/tests/multiread/MultiRead_D7.dof @@ -134,15 +134,14 @@ OriginalFilename= ProductName= ProductVersion=9.0.0.0 [Excluded Packages] -D:\Prog_Delphi\common\Components\3rdParty\TeeChart\Sources\Compiled\Delphi7\Bin\DclTeeMaker17.bpl=TeeMaker +D:\Prog_Delphi\common\Components\3rdParty\TeeChart\Sources\Compiled\Delphi7\Bin\DclTeeMaker17.bpl=TeeMaker D:\Programme\Borland\Delphi7\Lib\HelpCtxD7.bpl=HelpScribble HelpContext Property Editor for Delphi 7 [HistoryLists\hlUnitAliases] Count=1 Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; [HistoryLists\hlSearchPath] -Count=2 +Count=1 Item0=..\..;common -Item1=D:\Prog_Lazarus\git\dexif-afriess-master [HistoryLists\hlUnitOutputDirectory] Count=2 Item0=output\dcu\Delphi7 diff --git a/components/fpexif/tests/multiread/MultiRead_Laz.lpi b/components/fpexif/tests/multiread/MultiRead_Laz.lpi index 290d0eb4f..620ea1850 100644 --- a/components/fpexif/tests/multiread/MultiRead_Laz.lpi +++ b/components/fpexif/tests/multiread/MultiRead_Laz.lpi @@ -1,11 +1,13 @@ - + + + + - <ResourceType Value="res"/> <UseXPManifest Value="True"/> @@ -108,6 +110,7 @@ </SearchPaths> <Linking> <Debugging> + <DebugInfoType Value="dsDwarf3"/> <UseExternalDbgSyms Value="True"/> </Debugging> <Options> diff --git a/components/fpexif/tests/multiread/MultiRead_Laz.res b/components/fpexif/tests/multiread/MultiRead_Laz.res index 4133fe048..556537956 100644 Binary files a/components/fpexif/tests/multiread/MultiRead_Laz.res and b/components/fpexif/tests/multiread/MultiRead_Laz.res differ diff --git a/components/fpexif/tests/multiread/common/mrtmain.pas b/components/fpexif/tests/multiread/common/mrtmain.pas index 30aee715e..01b68960d 100644 --- a/components/fpexif/tests/multiread/common/mrtmain.pas +++ b/components/fpexif/tests/multiread/common/mrtmain.pas @@ -159,8 +159,11 @@ begin RunTest(node); node := node.GetNextSibling; end; - MismatchInfo.Caption := Format('%d mismatches out of %d tests (%.0f%%)', [ - FMismatchCount, FTotalCount, FMismatchCount/FTotalCount*100]); + if FTotalCount = 0 then + MismatchInfo.Caption := 'No tests executed.' + else + MismatchInfo.Caption := Format('%d mismatches out of %d tests (%.0f%%)', [ + FMismatchCount, FTotalCount, FMismatchCount/FTotalCount*100]); MismatchInfo.Show; end; diff --git a/components/fpexif/tests/readwrite/ReadWriteTest_D7.cfg b/components/fpexif/tests/readwrite/ReadWriteTest_D7.cfg index 7caf502a4..11ec2c52f 100644 --- a/components/fpexif/tests/readwrite/ReadWriteTest_D7.cfg +++ b/components/fpexif/tests/readwrite/ReadWriteTest_D7.cfg @@ -34,10 +34,10 @@ -N"output\dcu\Delphi7" -LE"d:\programme\borland\delphi7\Projects\Bpl" -LN"d:\programme\borland\delphi7\Projects\Bpl" --U"common" --O"common" --I"common" --R"common" +-U"common;..\.." +-O"common;..\.." +-I"common;..\.." +-R"common;..\.." -w-UNSAFE_TYPE -w-UNSAFE_CODE -w-UNSAFE_CAST diff --git a/components/fpexif/tests/readwrite/ReadWriteTest_D7.dof b/components/fpexif/tests/readwrite/ReadWriteTest_D7.dof index 75d611f22..d1f2e20d1 100644 --- a/components/fpexif/tests/readwrite/ReadWriteTest_D7.dof +++ b/components/fpexif/tests/readwrite/ReadWriteTest_D7.dof @@ -94,7 +94,7 @@ OutputDir= UnitOutputDir=output\dcu\Delphi7 PackageDLLOutputDir= PackageDCPOutputDir= -SearchPath=common +SearchPath=common;..\.. Packages=Tee97;TeeUI97;TeeDB97;TeePro97;TeeGL97;TeeImage97;TeeLanguage97;TeeWorld97 Conditionals= DebugSourceDirs= @@ -134,16 +134,15 @@ OriginalFilename= ProductName=ReadWriteTest ProductVersion=1.0.0.0 ProgramID=com.embarcadero.ReadWriteTest -[Excluded Packages] -D:\Prog_Delphi\common\Components\3rdParty\TeeChart\Sources\Compiled\Delphi7\Bin\DclTeeMaker17.bpl=TeeMaker -D:\Programme\Borland\Delphi7\Lib\HelpCtxD7.bpl=HelpScribble HelpContext Property Editor for Delphi 7 [HistoryLists\hlUnitAliases] Count=1 Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; [HistoryLists\hlSearchPath] -Count=2 -Item0=common -Item1=D:\Prog_Lazarus\git\dexif-afriess-master +Count=4 +Item0=common;..\.. +Item1=common;..\..\fpexif +Item2=common +Item3=D:\Prog_Lazarus\git\dexif-afriess-master [HistoryLists\hlUnitOutputDirectory] Count=5 Item0=output\dcu\Delphi7 diff --git a/components/fpexif/tests/readwrite/ReadWriteTest_Laz.lpi b/components/fpexif/tests/readwrite/ReadWriteTest_Laz.lpi index e26233068..c00629b92 100644 --- a/components/fpexif/tests/readwrite/ReadWriteTest_Laz.lpi +++ b/components/fpexif/tests/readwrite/ReadWriteTest_Laz.lpi @@ -1,11 +1,13 @@ <?xml version="1.0" encoding="UTF-8"?> <CONFIG> <ProjectOptions> - <Version Value="10"/> + <Version Value="12"/> <PathDelim Value="\"/> <General> + <Flags> + <CompatibilityMode Value="True"/> + </Flags> <SessionStorage Value="InProjectDir"/> - <MainUnit Value="0"/> <Title Value="ReadWriteTest_Laz"/> <ResourceType Value="res"/> <UseXPManifest Value="True"/> @@ -17,9 +19,10 @@ <Version Value="2"/> </PublishOptions> <RunParams> - <local> - <FormatVersion Value="1"/> - </local> + <FormatVersion Value="2"/> + <Modes Count="1"> + <Mode0 Name="default"/> + </Modes> </RunParams> <RequiredPackages Count="1"> <Item1> @@ -119,6 +122,7 @@ </CodeGeneration> <Linking> <Debugging> + <DebugInfoType Value="dsDwarf3"/> <UseExternalDbgSyms Value="True"/> </Debugging> <Options> diff --git a/components/fpexif/tests/readwrite/ReadWriteTest_Laz.res b/components/fpexif/tests/readwrite/ReadWriteTest_Laz.res index cdc706e86..631a2cc1c 100644 Binary files a/components/fpexif/tests/readwrite/ReadWriteTest_Laz.res and b/components/fpexif/tests/readwrite/ReadWriteTest_Laz.res differ