问题标签 [graphics32]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
796 浏览

delphi - 模态对话框不会将焦点返回到应用程序

TPanel我有一个从named派生的自定义控件TTestCtrl。它拥有一个TImage32(来自 Graphics32)。

当用户双击图像时,我会显示一条消息。问题是我关闭消息后,焦点没有返回到主应用程序。因此,无论我在主应用程序/主窗体中单击什么,第一次单击都会丢失。

奇怪的事情:如果我Mesaj()不是从主窗体而是从主窗体调用该过程TTestCtrl,它就可以工作(第一次单击不再丢失):


下面的简单/最小应用程序是测试仪:

0 投票
0 回答
1031 浏览

delphi - 绘制抗锯齿形状

我试图通过提供抗锯齿来改进我在项目中所做的一些绘图。我正在玩一个使用 Graphics32 库而不是标准的 delphi Canvas 函数的简单项目。我正在用简单的形状进行测试,发现效果模糊,想知道它是否可以修复。

抗锯齿三角形的斜边更平滑,但两条直线看起来很模糊,这是有道理的,因为它是抗锯齿的。有没有一种方法可以在垂直线和水平线不融合的情况下两全其美,同时平滑斜边?

编辑: 我使用的 Graphic32 版本是来自官方 Github Fork的主分支的顶部,因为上一个版本似乎是 2012 年的 1.9.1。

0 投票
1 回答
197 浏览

delphi - 删除 Graphics32 图层时崩溃

尝试使用 Graphics32 删除图层时遇到问题。似乎除非您以相反的顺序(从最后添加到第一个)删除层,否则会引发异常。我创建了最简单的应用程序来测试它,并且每次都是可重复的。

我创建了一个简单的表单,其中包含一个 TImgView32 组件(默认为所有属性),然后是一个执行以下操作的按钮:

如果我颠倒顺序(Layer2.Free 然后Layer1.Free)它工作正常,但这种方式每次都会崩溃。无论我使用 TCustomLayer、TPositionedLayer、TBitmapLayer 还是其他任何东西,都是一样的。

我经历了错误,故障似乎起源于这里:

知道是什么原因造成的,或者我做错了什么吗?顺便说一句,我正在运行 Delphi XE。

0 投票
2 回答
703 浏览

delphi - 将包含文本的半透明位图与 Graphics32 混合

我正在尝试在我们的一个内部组件中实现分层绘画系统,但在混合包含文本的位图时遇到问题。

以下代码片段显示了问题:

结果图像:

bmp1:bmp1 bmp2:bmp2 bmp组合:结合

如您所见,文本在bmp和上涂成黑色bmp2,但在 上显示为白色bmpcombined

我猜问题在于TextOut映射到Windows.ExtTextOut(通过GR32_Backends_VCL.pasTGDIBackend.Textout)。该方法不处理透明度并使用 alpha 00 绘制文本(颜色为 $000000 而不是 $FF000000)。

作为快速修复,设置bmp2.Font.Color$FF000000没有帮助。

我正在使用来自GitHub的新资源

我应该如何在半透明背景上绘制非透明文本,以便将其融合到更大的图片中?

0 投票
2 回答
683 浏览

delphi - Graphics32 fill polygon with hatched pattern

I am trying to convert a delphi XE4 application to use the Graphics32 libraries for drawing rather than the standard delphi drawing methods.

One thing I do is draw an icon that contains a small ellipse with diagonal cross hatch pattern. The icon should look like this:

enter image description here

Here is how I do it with standard TCanvas drawing methods:

I can draw an ellipse with Graphics32 doing the following:

but is there an easy way to replicate the diagonal cross hatching pattern? I assume I can use TBitmapPolygonFiller class but this is to fill using a bitmap. Note that this drawing is to a TPositionedLayer in it's OnPaint event handler if that is relevant.

0 投票
0 回答
48 浏览

graphics32 - 如何对图层的选择进行编程并更改该图层的属性

如何对图层的选择进行编程并更改图层属性,即可见性、大小、颜色?

我已经编写了大约 1000 个图层的创建程序,但我想在不同的时间单独更改每个图层。

0 投票
1 回答
375 浏览

png - 在 graphics32 中的 Png 透明度,生成器 XE6

我想在 C++ Builder RAD Studio XE6 中工作时使用 Png 图像。我正在使用 graphics32 lib,并且我设法安装了运行时和设计时包。我可以将 TImage32 组件放在我的表单上,然后在 TImage32 中加载 png 图像,但是我在背景上得到白色而不是透明度。我只是看不到我必须做什么才能在我的表单上获得透明的 png 图像。

我会非常感谢你的帮助。

0 投票
2 回答
677 浏览

delphi - Delphi TImage32 - 如果没有加载图片,如何使组件不可见?

如果您将普通的 TImage 组件放置在表单或面板上的其他组件上>>只要没有加载图片,它在运行时是不可见的。所以它下面的其他东西是可见的。

但是TImage32默认画的是一个灰色的盒子。

如何在离开设置时使其不可见:.Visible:=True; 如果没有加载图片?
(我仍然需要在组件上工作的事件,比如 OnClick ......)

是的,这是一个重复的问题,但是上一个主题的解决方案链接已经失效。:(

0 投票
1 回答
500 浏览

delphi - 如何在 graphisc32 中正确调整透明图像的大小?

图像是橄榄色透明色的 bmp。

之后结果TBitmap到 imagelist TImageListImagelist.AddMasked(Result, clOlive);但图像是用橄榄色绘制的。尝试在没有橄榄色(aImage.transparent := True;)的情况下调整图像大小,在分配 Src 背景后变为黑色并将其用作透明色,忽略OuterColor值。

尝试 clOlive32 作为OuterColor. 结果:

我使用的代码:

0 投票
1 回答
764 浏览

delphi - Graphics32 简单绘图图层缩放

出于学习目的,我正在尝试构建一个应用程序,它的行为方式与 Graphics32 示例应用程序“ImgView_Layers”基本相同,并且我正在做一些细微的改变。现在我遇到了简单绘图层的问题。我以与示例应用程序相同的方式创建一个。比在 PaintSimpleDrawingHandler 中,我试图绘制一些其他形状,而不是默认螺旋。问题来了。“默认”螺旋正在与图像一起缩放 - 缩小时,螺旋正在缩小,反之亦然。当层大小改变时,螺旋的大小也会改变。如果我绘制其他任何内容,则在缩放或更改图层大小时它保持不变。

这是菱形、正方形和螺旋形的示例。螺旋“工作”很好,其余的则没有。

我尝试了几种不同的形状,不同的绘制方式,但仍然得到相同的结果。有人可以尝试解释螺旋与其他螺旋之间的区别,并帮助我绘制自定义形状,这些形状将像螺旋一样进行缩放和缩放?

我使用德尔福 XE7。这是完整的来源: