From 5979de2a6195c94adb624f4edfa762999ed7adb9 Mon Sep 17 00:00:00 2001 From: wp_xxyyzz Date: Sun, 29 Nov 2020 13:58:23 +0000 Subject: [PATCH] fpexif: Adapt to better work in Delphi. git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@7908 8e941d3f-bd1b-0410-a28a-d453659cc2b4 --- .../console_demo/console_demo.dpr | 5 + .../console_demo/console_demo.dproj | 433 +++++++++++++++++- .../metadata_viewer/MetadataViewer.dproj | 2 +- .../metadata_viewer/mdvmain.dfm | 21 +- .../metadata_viewer/mdvmain.pas | 7 + .../simple_demo/ExifSimpleDemo.dproj | 5 +- .../simple_demo/ExifSimpleDemo.res | Bin 2512 -> 1656 bytes .../examples/console_demo/console_demo.lpi | 9 +- .../examples/file_renamer/file_renamer.lpi | 7 +- .../examples/simple_demo/ExifSimpleDemo.lpi | 2 +- .../fpexif/examples/simple_demo/sdmain.lfm | 6 +- .../fpexif/examples/simple_demo/sdmain.pas | 9 +- components/fpexif/fpeexifdata.pas | 2 +- components/fpexif/fpeexifreadwrite.pas | 4 + components/fpexif/fpeiptcdata.pas | 6 +- components/fpexif/fpemakernoteminolta.pas | 2 +- components/fpexif/fpemakernotenikon.pas | 12 +- components/fpexif/fpemakernoteolympus.pas | 10 +- components/fpexif/fpeutils.pas | 2 +- 19 files changed, 500 insertions(+), 44 deletions(-) diff --git a/components/fpexif/delphi examples/console_demo/console_demo.dpr b/components/fpexif/delphi examples/console_demo/console_demo.dpr index 182be9621..3a41c835f 100644 --- a/components/fpexif/delphi examples/console_demo/console_demo.dpr +++ b/components/fpexif/delphi examples/console_demo/console_demo.dpr @@ -2,6 +2,7 @@ program console_demo; {$APPTYPE CONSOLE} {$DEFINE dExifNoJpeg} +{$INCLUDE ..\..\fpexif.inc} {$R *.res} @@ -15,7 +16,11 @@ var tag: TTag; const +{$IFDEF DELPHI7} + FILENAME = '..\test-image.jpg'; +{$ELSE} FILENAME = '..\..\..\test-image.jpg'; +{$ENDIF} begin try diff --git a/components/fpexif/delphi examples/console_demo/console_demo.dproj b/components/fpexif/delphi examples/console_demo/console_demo.dproj index 321c07b54..a16d10e31 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.6 + 18.8 None console_demo.dpr True @@ -18,6 +18,11 @@ Base true + + true + Base + true + true Base @@ -75,6 +80,29 @@ $(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) @@ -197,12 +225,20 @@ classes 1 + + classes + 1 + res\xml 1 + + res\xml + 1 + @@ -215,96 +251,242 @@ library\lib\armeabi 1 + + library\lib\armeabi + 1 + + + + + library\lib\armeabi-v7a + 1 + library\lib\mips 1 + + library\lib\mips + 1 + library\lib\armeabi-v7a 1 + + library\lib\arm64-v8a + 1 + + + + + library\lib\armeabi-v7a + 1 + res\drawable 1 + + res\drawable + 1 + res\values 1 + + res\values + 1 + res\values-v21 1 + + res\values-v21 + 1 + + + + + res\values + 1 + + + res\values + 1 + res\drawable 1 + + res\drawable + 1 + res\drawable-xxhdpi 1 + + res\drawable-xxhdpi + 1 + res\drawable-ldpi 1 + + res\drawable-ldpi + 1 + res\drawable-mdpi 1 + + res\drawable-mdpi + 1 + res\drawable-hdpi 1 + + res\drawable-hdpi + 1 + res\drawable-xhdpi 1 + + res\drawable-xhdpi + 1 + + + + + res\drawable-mdpi + 1 + + + res\drawable-mdpi + 1 + + + + + res\drawable-hdpi + 1 + + + res\drawable-hdpi + 1 + + + + + res\drawable-xhdpi + 1 + + + res\drawable-xhdpi + 1 + + + + + res\drawable-xxhdpi + 1 + + + res\drawable-xxhdpi + 1 + + + + + res\drawable-xxxhdpi + 1 + + + res\drawable-xxxhdpi + 1 + res\drawable-small 1 + + res\drawable-small + 1 + res\drawable-normal 1 + + res\drawable-normal + 1 + res\drawable-large 1 + + res\drawable-large + 1 + res\drawable-xlarge 1 + + res\drawable-xlarge + 1 + + + + + res\values + 1 + + + res\values + 1 + @@ -393,6 +575,9 @@ 0 + + 0 + 0 @@ -425,6 +610,17 @@ 1 + + + 1 + + + 1 + + + 1 + + 1 @@ -436,6 +632,39 @@ 1 + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + 1 @@ -447,6 +676,61 @@ 1 + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + 1 @@ -458,6 +742,116 @@ 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 @@ -491,10 +885,35 @@ 1 + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + 1 + + 1 + @@ -587,6 +1006,10 @@ library\lib\armeabi-v7a 1 + + library\lib\arm64-v8a + 1 + 1 @@ -611,6 +1034,12 @@ 0 + + + library\lib\armeabi-v7a + 1 + + 1 @@ -648,9 +1077,11 @@ + False + False True True diff --git a/components/fpexif/delphi examples/metadata_viewer/MetadataViewer.dproj b/components/fpexif/delphi examples/metadata_viewer/MetadataViewer.dproj index 3f3391350..5b7348e35 100644 --- a/components/fpexif/delphi examples/metadata_viewer/MetadataViewer.dproj +++ b/components/fpexif/delphi examples/metadata_viewer/MetadataViewer.dproj @@ -7,7 +7,7 @@ 3 Application VCL - 18.6 + 18.8 Win32 diff --git a/components/fpexif/delphi examples/metadata_viewer/mdvmain.dfm b/components/fpexif/delphi examples/metadata_viewer/mdvmain.dfm index 7a9311362..8be6484ff 100644 --- a/components/fpexif/delphi examples/metadata_viewer/mdvmain.dfm +++ b/components/fpexif/delphi examples/metadata_viewer/mdvmain.dfm @@ -37,7 +37,6 @@ object MainForm: TMainForm Height = 5 Cursor = crVSplit Align = alTop - ExplicitTop = 269 end object PreviewImage: TImage Left = 0 @@ -89,7 +88,6 @@ object MainForm: TMainForm 80008000800080008000} TabOrder = 0 OnChange = ShellTreeViewChange - ExplicitTop = 0 Data = {10} end object ShellListView: TFileListBox @@ -103,8 +101,6 @@ object MainForm: TMainForm ShowGlyphs = True TabOrder = 2 OnChange = ShellListViewChange - ExplicitTop = 274 - ExplicitHeight = 260 end object Panel4: TPanel Left = 0 @@ -125,16 +121,23 @@ object MainForm: TMainForm ParentColor = False end end - object DriveComboBox1: TDriveComboBox + object Panel5: TPanel Left = 0 Top = 0 Width = 274 Height = 19 Align = alTop + BevelOuter = bvNone TabOrder = 3 - OnChange = DriveComboBox1Change - ExplicitLeft = 3 - ExplicitTop = -4 + OnResize = Panel5Resize + object DriveComboBox1: TDriveComboBox + Left = 0 + Top = 0 + Width = 274 + Height = 19 + TabOrder = 0 + OnChange = DriveComboBox1Change + end end end object Panel2: TPanel @@ -152,7 +155,6 @@ object MainForm: TMainForm Height = 5 Cursor = crVSplit Align = alBottom - ExplicitTop = 562 end object Panel3: TPanel Left = 0 @@ -250,7 +252,6 @@ object MainForm: TMainForm Center = True Proportional = True Stretch = True - ExplicitHeight = 545 end end end diff --git a/components/fpexif/delphi examples/metadata_viewer/mdvmain.pas b/components/fpexif/delphi examples/metadata_viewer/mdvmain.pas index 894023f06..072d7f775 100644 --- a/components/fpexif/delphi examples/metadata_viewer/mdvmain.pas +++ b/components/fpexif/delphi examples/metadata_viewer/mdvmain.pas @@ -43,6 +43,7 @@ type Splitter1: TSplitter; Splitter2: TSplitter; DriveComboBox1: TDriveComboBox; + Panel5: TPanel; procedure BtnChangeDateClick(Sender: TObject); procedure CbShowTagIDsChange(Sender: TObject); procedure FormCreate(Sender: TObject); @@ -61,6 +62,7 @@ type procedure ShellTreeViewChange(Sender: TObject); procedure ShellListViewChange(Sender: TObject); procedure DriveComboBox1Change(Sender: TObject); + procedure Panel5Resize(Sender: TObject); private FFileName: String; FImgInfo: TImgInfo; @@ -463,6 +465,11 @@ begin end; end; +procedure TMainForm.Panel5Resize(Sender: TObject); +begin + DriveCombobox1.Width := Panel5.Width; +end; + procedure TMainForm.SaveToIni; var ini: TCustomIniFile; diff --git a/components/fpexif/delphi examples/simple_demo/ExifSimpleDemo.dproj b/components/fpexif/delphi examples/simple_demo/ExifSimpleDemo.dproj index 4cb628a80..c7f4a041d 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.6 + 18.8 Win32 @@ -118,6 +118,7 @@ true 1033 CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName) + $(BDS)\bin\delphi_PROJECTICON.ico true @@ -127,7 +128,7 @@ MainSource - +
Form1
diff --git a/components/fpexif/delphi examples/simple_demo/ExifSimpleDemo.res b/components/fpexif/delphi examples/simple_demo/ExifSimpleDemo.res index fa321156e6aa2313e4aef7678919d74a36b36d35..42d28941c3a48713638a04e4447d900459f511fd 100644 GIT binary patch literal 1656 zcmah|O=}ZT6g_DMni6SK5ZYbCP*QPG8z3<-p<^e#O&^iQ{m+ae!^~b4+ z8DAR8b=F4Dv@5kvHvF@Luvz#p2;@WFpBi6%Oo4jod2JaqWre^{4BGCL`jqSshb zVcRMzlDlt8K6G~Lz@%QK-K++f=GUEg(0JQCdC z#IMZ_@^|NS&zk)p8`PNamlJYHI5p?HH%=qYkxaS1KdU01Xth%#u8U+OAkP|?6)>Uj zq>2QAl7S|bQdOhl&?z7X+A`i-hI3!Q97j&Ia}+AZbCt_6P`CuNxK=7qZAqlm`xeiG z){6LPNO?x$PuhZnh@GMt)7qjF*ILkxAM5ToboUD0b`x0oDF9{!7X$dsHL)b%=OviY zN5?0+sXyt?MO=5@#PsLI3A#p!IB`UDh>yeYT8hbJ>Um#3IvH(`ut`Y7|H z3#R-X)=}mRW$N3kw8o0UKBdBWp8CJfD9o~HB5lY0uLzhmUtl=B3TJje<={6k=6rSj E0CVd<%!FkiK@F~}x^`Z#UWpej12&yd^1pCYFuzsAXd7a=#TY0l^#cOh6J zN+_?lDX4=bxO8#OoT6CKtoH>p`u zC=(-cTi@3HU;CeaOvHfm@bJYuXJ~M8pTuk~i!#d6p=P!Xjmgx{f+(F1wI3$u+|^iF zi8K&#mdc^FkfnBV{PJKR%2Fm?ykG!G%b_+a(xcM9m5C^M68S||W?{wsEIATo(w>_d zOGFxlvaD`)*y?l@Gq;`vu{1C<25v+ji9C-ZUsS047}mA@E=q&!uDq62g)Yja58fb; zMt7o+O~toWl^^N)s_6E*=r)ShuP?@W$1oiI$6Yk-xGH8+&y#`P;JrnV%Ch_)Bxd(* zk}FwUWNB1o#Z70!q<~kg>PrpY(d%I4+LotQEs(iP1FY_1h0z$Q(P}N%oivL(MtBuf zi&|bKaka=X1Yor~+S-_k1jdVI(c3G@+OM)C$x{9*ORFM_%T2<1-nwl=eKwwa=3!00 zm5WLCMq(hlPT%pmwrShGADTh9iHt=$orx)kzup-0BJ-h9R*VY&Hmamw&5AlgZ)AIC z&ro=yO|2Ccxva)%m^JJ8%y?rmmm^q8e^x-TwUmYYb%vpr!Br8>qgYPmdLl8CYwy`T z64fZbmU9`erDZHu_d`vT<8%&9icPbO&7zU7`Wp9q8+p z)$Ya?$g#7$C`K>OYp@fpHv2JqdC(eckDxNN248VLxs_~u$~+locMO|LZDCn5#Ikah z=UGv)Fe}(??c~vn%Z(q%k}z#J3$}Rp%-vhb^ndgx4(^)X&NTJkej%h$eXMUgEv#0#_saeuHQB1n(=$WBXm~BbfdL7 - + + - <UseAppBundle Value="False"/> <ResourceType Value="res"/> @@ -49,6 +49,11 @@ <IncludeFiles Value="$(ProjOutDir)"/> <UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/> </SearchPaths> + <Linking> + <Debugging> + <DebugInfoType Value="dsDwarf2Set"/> + </Debugging> + </Linking> </CompilerOptions> <Debugging> <Exceptions Count="3"> diff --git a/components/fpexif/examples/file_renamer/file_renamer.lpi b/components/fpexif/examples/file_renamer/file_renamer.lpi index eb32bda8a..9f04dc111 100644 --- a/components/fpexif/examples/file_renamer/file_renamer.lpi +++ b/components/fpexif/examples/file_renamer/file_renamer.lpi @@ -1,11 +1,13 @@ <?xml version="1.0" encoding="UTF-8"?> <CONFIG> <ProjectOptions> - <Version Value="11"/> + <Version Value="12"/> <PathDelim Value="\"/> <General> + <Flags> + <CompatibilityMode Value="True"/> + </Flags> <SessionStorage Value="InProjectDir"/> - <MainUnit Value="0"/> <Title Value="file_renamer"/> <Scaled Value="True"/> <ResourceType Value="res"/> @@ -22,7 +24,6 @@ </PublishOptions> <RunParams> <FormatVersion Value="2"/> - <Modes Count="0"/> </RunParams> <RequiredPackages Count="2"> <Item1> diff --git a/components/fpexif/examples/simple_demo/ExifSimpleDemo.lpi b/components/fpexif/examples/simple_demo/ExifSimpleDemo.lpi index 8a0da9465..4760ad30b 100644 --- a/components/fpexif/examples/simple_demo/ExifSimpleDemo.lpi +++ b/components/fpexif/examples/simple_demo/ExifSimpleDemo.lpi @@ -60,7 +60,7 @@ </SearchPaths> <Linking> <Debugging> - <UseExternalDbgSyms Value="True"/> + <DebugInfoType Value="dsDwarf2"/> </Debugging> <Options> <Win32> diff --git a/components/fpexif/examples/simple_demo/sdmain.lfm b/components/fpexif/examples/simple_demo/sdmain.lfm index 423db2b39..f715ea789 100644 --- a/components/fpexif/examples/simple_demo/sdmain.lfm +++ b/components/fpexif/examples/simple_demo/sdmain.lfm @@ -40,7 +40,7 @@ object MainForm: TMainForm ItemHeight = 15 OnSelect = CbFilenameSelect TabOrder = 1 - Text = '..\..\tests\pictures\originals\Canon-Powershot_A70-II-Th.JPG' + Text = '..\..\tests\pictures\originals\with_exif.tif' end object Memo: TMemo AnchorSideLeft.Control = Owner @@ -242,7 +242,7 @@ object MainForm: TMainForm object OpenDialog: TOpenDialog DefaultExt = '.jpg' Filter = 'All supported images (*.jpg; *.jpeg; *.jfe); *.tiff; *.tif|*.jpg;*.jpeg;*.jfe;*.tiff;*.tif|JPG files (*.jpg; *.jpeg; *.jfe)|*.jpg;*.jpeg;*.jfe|TIFF files (*.tiff; *.tif)|*.tiff;*.tif' - left = 248 - top = 168 + Left = 248 + Top = 168 end end diff --git a/components/fpexif/examples/simple_demo/sdmain.pas b/components/fpexif/examples/simple_demo/sdmain.pas index 813882b22..5cd9ea481 100644 --- a/components/fpexif/examples/simple_demo/sdmain.pas +++ b/components/fpexif/examples/simple_demo/sdmain.pas @@ -269,8 +269,6 @@ begin end; procedure TMainForm.LoadFile(const AFileName: String); -var - exportOptions: TExportOptions; begin if FImgInfo = nil then FImgInfo := TImgInfo.Create; @@ -309,15 +307,14 @@ var ms: TMemoryStream; begin if not FImgInfo.HasThumbnail then + begin + Thumbnail.Picture.Clear; exit; - - //if (FImgInfo.ExifData = nil) or (not FImgInfo.Exifdata.HasThumbnail) then - // exit; + end; ms := TMemoryStream.Create; try FImgInfo.SaveThumbnailToStream(ms); -// FImgInfo.ExifData.SaveThumbnailToStream(ms); ms.Position := 0; Thumbnail.Picture.LoadfromStream(ms); finally diff --git a/components/fpexif/fpeexifdata.pas b/components/fpexif/fpeexifdata.pas index ad86eec78..0de5e126e 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 048a9bac1..00550dee7 100644 --- a/components/fpexif/fpeexifreadwrite.pas +++ b/components/fpexif/fpeexifreadwrite.pas @@ -10,6 +10,8 @@ unit fpeExifReadWrite; {$MODE Delphi} {$ENDIF} +{$INCLUDE fpexif.inc} + interface uses @@ -146,7 +148,9 @@ begin begin Makes := TStringList.Create; try + {$IFNDEF DELPHI7} Makes.StrictDelimiter := true; + {$ENDIF} Makes.Delimiter := ';'; ucMake := Uppercase(AMake); for Result:=0 to RegisteredReaders.Count-1 do begin diff --git a/components/fpexif/fpeiptcdata.pas b/components/fpexif/fpeiptcdata.pas index 3b9edf786..996a37204 100644 --- a/components/fpexif/fpeiptcdata.pas +++ b/components/fpexif/fpeiptcdata.pas @@ -247,13 +247,17 @@ var idx: Integer; begin if ATag = nil then - exit(-1); + begin + Result := -1; + exit; + end; idx := IndexOfTagID(ATag.TagID); if idx <> -1 then begin // Replace existing tag FTagList.Delete(idx); FTagList.Insert(idx, ATag); + Result := idx; end else // Add the new tag Result := FTagList.Add(ATag); diff --git a/components/fpexif/fpemakernoteminolta.pas b/components/fpexif/fpemakernoteminolta.pas index e6df6122c..3539beb59 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/fpemakernotenikon.pas b/components/fpexif/fpemakernotenikon.pas index 638a9d9ec..53c732f03 100644 --- a/components/fpexif/fpemakernotenikon.pas +++ b/components/fpexif/fpemakernotenikon.pas @@ -424,7 +424,7 @@ begin s, intval[1], intVal[2], intVal[3], intVal[4], intVal[5], intVal[6] ]); end else - Result := inherited; + Result := inherited GetAsString; end; function TNikonLensTypeTag.GetAsString: String; @@ -442,7 +442,7 @@ begin if intVal and 32 <> 0 then Result := Result + 'E+'; if Result <> '' then SetLength(Result, Length(Result)-1); end else - Result := inherited; + Result := inherited GetAsString; end; function TNikonLensTag.GetAsString: String; @@ -453,7 +453,7 @@ begin if (toDecodeValue in FOptions) and (Length(values) = 4) then Result := Format('%g-%gmm f/%g-%g', [values[0], values[1], values[2], values[3]], fpExifFmtSettings) else - Result := inherited; + Result := inherited GetAsString; end; function TNikonShootingModetag.GetAsString: String; @@ -478,7 +478,7 @@ begin if Result <> '' then SetLength(Result, Length(Result)-2); end; end else - Result := inherited; + Result := inherited GetAsString; end; function TNikonNEFBitDepthTag.GetAsString: String; @@ -500,13 +500,13 @@ begin else if iVal[i] = iVal[0] then inc(n) else begin - Result := inherited; + Result := inherited GetAsString; exit; end; Result := Result + ' x ' + IntToStr(n); end; end else - Result := inherited; + Result := inherited GetAsString; end; initialization diff --git a/components/fpexif/fpemakernoteolympus.pas b/components/fpexif/fpemakernoteolympus.pas index 1d639677e..bc81b9e4f 100644 --- a/components/fpexif/fpemakernoteolympus.pas +++ b/components/fpexif/fpemakernoteolympus.pas @@ -1,4 +1,4 @@ -unit fpeMakerNoteOlympus; +unit fpeMakerNoteOlympus; {$IFDEF FPC} {$MODE DELPHI} @@ -552,10 +552,10 @@ begin if Result <> '' then SetLength(Result, Length(Result)-2) else - Result := inherited; + Result := inherited GetAsString; end; end else - Result := inherited; + Result := inherited GetAsString; end; function TOlympusGradationTag.GetAsString: String; @@ -597,7 +597,7 @@ begin end; end; if Result = '' then - Result := inherited; + Result := inherited GetAsString; end; function TOlympusFocusModeTag.GetAsString: String; @@ -632,7 +632,7 @@ begin end; end; if Result = '' then - Result := inherited; + Result := inherited GetAsString; end; diff --git a/components/fpexif/fpeutils.pas b/components/fpexif/fpeutils.pas index 61a6ed7d0..695672cd2 100644 --- a/components/fpexif/fpeutils.pas +++ b/components/fpexif/fpeutils.pas @@ -1,4 +1,4 @@ -unit fpeUtils; +unit fpeUtils; {$IFDEF FPC} {$mode ObjFPC}{$H+}