Browse Source

* Ensure compilation with older FPC versions.

git-svn-id: trunk@38641 -
michael 7 years ago
parent
commit
7012716201
1 changed files with 30 additions and 1 deletions
  1. 30 1
      packages/fcl-image/src/fpimgqrcode.pp

+ 30 - 1
packages/fcl-image/src/fpimgqrcode.pp

@@ -121,7 +121,36 @@ end;
 
 
 function TImageQRCodeGenerator.SaveToFile(const AFileName: String): Boolean;
 function TImageQRCodeGenerator.SaveToFile(const AFileName: String): Boolean;
 
 
+  {$IF NOT (FPC_FULLVERSION >= 30101)}
+  function FindWriterFromExtension(extension: String): TFPCustomImageWriterClass;
+  var
+    s: string;
+    r: integer;
+  begin
+    extension := lowercase (extension);
+    if (extension <> '') and (extension[1] = '.') then
+      system.delete (extension,1,1);
+    with ImageHandlers do
+      begin
+        r := count-1;
+        s := extension + ';';
+        while (r >= 0) do
+          begin
+          Result := ImageWriter[TypeNames[r]];
+          if (pos(s,{$if (FPC_FULLVERSION = 20604)}Extentions{$else}Extensions{$endif}[TypeNames[r]]+';') <> 0) then
+            Exit;
+          dec (r);
+          end;
+      end;
+    Result := nil;
+  end;
 
 
+  function FindWriterFromFileName(const filename: String): TFPCustomImageWriterClass;
+  begin
+    Result := FindWriterFromExtension(ExtractFileExt(filename));
+  end;
+  {$ENDIF}
+  
 Var
 Var
   WriterClass : TFPCustomImageWriterClass;
   WriterClass : TFPCustomImageWriterClass;
   Writer : TFPCustomImageWriter;
   Writer : TFPCustomImageWriter;
@@ -131,7 +160,7 @@ Var
 begin
 begin
   Result := Size>0;
   Result := Size>0;
   if not Result then exit;
   if not Result then exit;
-  WriterClass := TFPCustomImage.FindWriterFromFileName(AFileName);
+  WriterClass := {$IF (FPC_FULLVERSION >= 30101)}TFPCustomImage.{$ENDIF}FindWriterFromFileName(AFileName);
   if Assigned(WriterClass) then
   if Assigned(WriterClass) then
   begin
   begin
     Writer := nil;
     Writer := nil;