- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已将在 Delphi 2009 中的 TImage.Canvas
上绘制的问题缩小到以下可重现的情况:
给定:一个表单,其上有一个 TImage
、TLabel
和 TButton
。 TImage
锚定到所有四个边缘,以便调整表单大小将调整 TImage
的大小。我想要做的是在调整大小后绘制可用的 Image1
的最大区域。因此,在我的测试用例中,我的 Button 的 OnClick
处理程序中有以下代码:
procedure TForm1.Button1Click(Sender: TObject);
begin
Label1.Caption:= IntToStr (Image1.Width)+' x '+IntToStr(Image1.Height);
Image1.Canvas.Pen.Color:= 0;
Image1.Canvas.Rectangle(0,0,Image1.Width, Image1.Height);
end;
您将看到,如果调整表单大小,
Image1.Width
和
.Height
会按预期更改,但是如果调整大小的表单更大,则绘制的矩形
比原来的要不完整,只能在之前的同一区域上绘制。
如何使用整个调整大小的区域?
无论如何,在我最初的问题中,我使用了Image1.Stretch
,它允许我在调整大小时使用更多区域,但会导致我的绘图扭曲(不希望) 。如果我还使用 Image1.Proportional
,那就更好了,但我仍然无法使用完整的可用区域。 Image1.AutoSize
似乎也没有做任何对我有用的事情。
感谢任何帮助。
最佳答案
将 OnResize 事件添加到您的表单中:
procedure TForm1.FormResize(Sender: TObject);
begin
Image1.Picture.Bitmap.Width := Image1.Width;
Image1.Picture.Bitmap.Height := Image1.Height;
end;
此外,如果您使用组件进行绘图,而不是显示文件等中的图像,请考虑使用 TPaintBox 而不是 TImage。
关于delphi - 如何在Delphi中在调整大小的TImage的整个区域上绘图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1593277/
我正在为我的学校项目在 Lazarus 写 2-3 Trees 应用程序。 一切都完成了,现在开始玩 GUI(我得到的好 GUI 的分数与我得到的好等的分数相同。插入功能,这很奇怪,但 nvm)。 当
当创建一个新的 TImage 时,它是透明的。将对象绘制到该图像后,我想清除它们。请注意,我需要保持图像透明,因为 TImage 被用作另一个图像的叠加层。 TImage 的某种“清晰”功能是最好
我正在尝试制作一个如下所示的裁剪工具: 原始图片: 裁剪工具 - 这就是我想要的: 请注意,裁剪区域显示的是原始颜色,而周围的颜色较暗。 我所做的就是在我的 TImage 上放置一个 TShape ,
我已经按照这个答案来裁剪图像: how do I crop a bitmap “in place”? 在delphi 7中我有一个TImage Image_center。 Image := TPngO
我在面板上布置了一组 TImage 实例。 TImages 代表图标(见附件截图)。当用户通过单击选择它时,我想在给定的 TImage 实例周围绘制一个红色矩形。不确定如何进行... 编辑:为什么我不
我在 Firemonkey 中有一个 TImage 控件(不是 TImageControl)。该控件内的位图居中且不占据整个 TImage。如何获取位图的坐标(左和上)? 最佳答案 与@GolezTr
我有一个显示图片的 Delphi TImage 组件。有时图片比图像尺寸大,需要滚动。我不想使用拉伸(stretch)属性和自动调整大小属性,我想通过滚动来查看图片。我怎样才能做到这一点?我可以使用
我有 TImage 800x600 和图像 1024x768。 TImage 与 alClient 对齐。 Timage 是成比例的。 TImage 被拉伸(stretch)。 当我调整表单大小时,图
我正在使用以下过程来识别 Delphi XE3 中鼠标下的控件。对于 vcl.contols 来说,一切都运行良好。但是,当鼠标悬停在 TImage 上时,不会返回控件名称。 procedure TM
如何在 Delphi 中平铺 TImage 中的图像? 为什么我需要它:我可以创建一个并将图像存储在那里,而不是在运行时创建更多 TImage,因为我知道它将“适合”直到达到 TImage 的高度和宽
这是我的整个代码: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics,
对于新手问题,我提前表示歉意,但为什么下面的代码(在“Create(SelectorForm);”行上)会出现“访问冲突”错误?我尝试使用主窗体作为所有者,但没有任何区别。 var Selecto
看下面的图片: 如您所见,我无法将按钮发送到后面。这仅适用于标签。 那么我怎样才能将TImage发送到前面并具有透明度。 顺便说一句,我读过 This related question但没有帮助我。因
编写移动应用程序 - 它从安全网站提取图像,如下所示(第一个图像)提取不正确(注意网络版本与移动版本),第二个图像在网站上正确显示,但 Delphi TImage 正在旋转它由于某种原因,我不明白为什
我有一些图像文件存储在一个文件中(某种存档)。该文件如下所示: 嗯,它分为两个段 - header 和数据段。标题(绿色)包含各种信息,例如相册名称、位置、日期/时间、描述、相册中的照片数量等。数据段
我创建了一个图像列表,其中包含 20 个位图,下拉列表值从 1 到 20。当我选择下拉列表时,它应该显示与下拉列表索引相对应的位图。我面临的问题是,当我选择下拉列表且图像太小时,它一直显示相同的图像。
我对 delphi 很陌生,正在为我的 A level 做一个项目。当我运行我的代码时,图像不显示,我到处都看了,但我的老师无法帮助我。谁能告诉我我错过了什么? const An
This tutorial表示为了将效果应用于图像,您需要将该效果设为该图像的 MultiResBitmap 的子级: 我做不到。该效果拒绝嵌套在 MultiResBitmap 下。它仍然停留在 Im
我想将 TButton 或 TSpeedButton 放在 TImage 之上并使按钮透明,以便您仍然可以单击它,但您看到的是图像而不是按钮。我似乎无法让它工作,我将 TSpeedButton 更改为
我正在构建一个编辑器,它使用 TImage 来显示图片,并具有鼠标事件来能够在图像上绘制、移动框和调整框大小。这一切都很完美。现在我正在尝试实现使用键盘上的箭头移动选定框的功能,但是A)TImage没
我是一名优秀的程序员,十分优秀!