我正在尝试为我制作的自定义组件制作一个包.它基于几个库,包括Graphics32,GraphicEx和CCR.Exif.
我创建了一个Package项目,编写了包含其Register寄存程序的单元,添加了一些额外的引用,Delphi通知我有关requires部分(包括dbrtl.dcp,inet.dcp,soaprtl.dcp,vclimg.dcp,xmlrtl.dcp和dclGraphicEx140). dcp)并在contains部分添加了许多单元,以避免隐式发生有关它的警告.该项目编译并可以在我自己的机器上安装和使用而不会出现问题.但是,当我想在另一台机器上安装它时,麻烦就开始了.最后,我不得不复制我使用的所有第三方组件的所有DCU,以及来自GraphicEx的DCP和BPL,我必须安装它.
提供大量文件是一个无赖,但可以克服,但不得不安装其他软件包是不行的.我可以通过在包含部分中放置更多单元来摆脱DCP和BPL ,但这导致我自己的机器上实际安装了GraphicEx的错误消息.这对我来说很困惑,因为有了Graphics32就不会发生这样的事了......
无论如何,我如何将我的分配保持在最低限度并避免这种情况?我希望我团队中的其他开发人员能够使用该软件包,而不必担心我用它来构建它.首先,不能将所有第三方单元编译到我自己的DCU中吗?
我的项目的目标是在Delphi 6中调整任何类型的图像(jpeg/gif/png).
我尝试了很多方法,但我无法得到理想的解决方案.任何有关如何做到这一点的线索?它可以是一个简单的命令行工具,一些代码或Delphi组件.
我试过imagemagick:那太重了:20兆me + dll +注册表.
我尝试了一些代码片段,但大部分内容仅适用于JPEG.我需要gif/jpeg/png
我试过了graphicEX但是没有加载我的GIF
我正在将GraphicEx项目转换为Delphi 2009.
我在单位Scanf_c.pas中转换以下程序时遇到问题.这是问题所在:
With TscRec(FType) do begin
Run Code Online (Sandbox Code Playgroud)
FType是一个整数,定义了TscRec:
TscRec = packed record // Has size of an integer
Case byte of
0: ( Typ : byte; Size : char; Flags : word;);
1: ( SizeType : word; iFlags : smallInt;);
end;
Run Code Online (Sandbox Code Playgroud)
看来这段代码在delphi 2007中运行良好,但我在Delphi 2009中编译时遇到了问题.编译错误是"Invalid Typecase".问题是因为类型转换FType是整数到TScRec这是一个记录.
有人在这里与Delphi 2009有同样的问题,并有一个解决方案.
谢谢
我正在尝试将GraphicEx组件库(用于PNG文件)从我的Delphi 2006移植到XE3(最后得到它),在纠正基本错误时,我遇到了这个错误:
"TPNGGraphic.IsChunk" invalid type cast
Run Code Online (Sandbox Code Playgroud)
在线:
function TPNGGraphic.IsChunk(ChunkType: TChunkType): Boolean;
// determines, independant of the cruxial 5ths bits in each "letter", whether the
// current chunk type in the header is the same as the given chunk type
const
Mask = not $20202020;
begin
Result := (Cardinal(FHeader.ChunkType) and Mask) = (Cardinal(ChunkType) and Mask); // <-- this line
end;
Run Code Online (Sandbox Code Playgroud)
有谁知道我该怎么做才能纠正它?
delphi ×4
graphicex ×4
delphi-2009 ×1
delphi-2010 ×1
delphi-6 ×1
delphi-xe3 ×1
image ×1
png ×1