首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在自定义TGraphicControl上拉伸两个图形彼此相邻?

在自定义TGraphicControl上拉伸两个图形彼此相邻,可以通过以下步骤实现:

  1. 创建一个自定义的TGraphicControl控件,例如TCustomControl。
  2. 在TCustomControl中添加两个图形控件,例如TImage或TBitmap。
  3. 设置图形控件的Align属性为alNone,以便可以自由调整它们的大小和位置。
  4. 在TCustomControl的OnResize事件中,调整图形控件的大小和位置,以便它们填充整个TCustomControl并彼此相邻。
  5. 在TCustomControl的OnPaint事件中,绘制图形控件之间的分隔线或其他装饰效果。

以下是一个简单的示例代码:

代码语言:txt
复制
unit CustomControl;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls;

type
  TCustomControl = class(TGraphicControl)
  private
    FImage1: TImage;
    FImage2: TImage;
    procedure ResizeImages;
  protected
    procedure Paint; override;
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
  end;

implementation

{ TCustomControl }

constructor TCustomControl.Create(AOwner: TComponent);
begin
  inherited;
  FImage1 := TImage.Create(Self);
  FImage1.Parent := Self;
  FImage1.Align := alNone;
  FImage1.Picture.LoadFromFile('image1.bmp');

  FImage2 := TImage.Create(Self);
  FImage2.Parent := Self;
  FImage2.Align := alNone;
  FImage2.Picture.LoadFromFile('image2.bmp');

  ResizeImages;
end;

destructor TCustomControl.Destroy;
begin
  FImage1.Free;
  FImage2.Free;
  inherited;
end;

procedure TCustomControl.Paint;
begin
  inherited;
  // Draw a line between the images
  Canvas.Pen.Color := clBlack;
  Canvas.MoveTo(FImage1.Width, 0);
  Canvas.LineTo(FImage1.Width, Height);
end;

procedure TCustomControl.ResizeImages;
begin
  FImage1.SetBounds(0, 0, Width div 2, Height);
  FImage2.SetBounds(Width div 2, 0, Width div 2, Height);
end;

end.

在这个示例中,我们创建了一个名为TCustomControl的自定义控件,它包含两个TImage控件。在控件的OnResize事件中,我们调整了图像的大小和位置,以便它们填充整个控件并彼此相邻。在控件的OnPaint事件中,我们绘制了图像之间的分隔线。

请注意,这只是一个简单的示例,您可以根据自己的需求进行修改和扩展。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

GNN入门必看!Google Research教你如何从毛坯开始搭建sota 图神经网络

近几年,神经网络在自然语言、图像、语音等数据都取得了显著的突破,将模型性能带到了一个前所未有的高度,但如何在图数据训练仍然是一个可研究的点。...另一种看待图像的方式是有规则结构的图像,其中每个像素代表一个节点,并通过边缘连接到相邻的像素。每个非边界像素恰好有8个相邻节点,并且存储在每个节点的信息是表示像素 RGB 值的三维向量。...可以使用消息传递(Message Passing)来做到这一点,其中相邻节点或边缘交换信息并影响彼此更新的embedding。...消息传递包含三个步骤: 1、对于图中的每个节点,收集所有相邻节点embedding(或消息)。 2、通过聚合函数(sum)聚合所有消息。...本质,消息传递和卷积是聚合和处理元素的邻居信息以更新元素值的操作。在图中,元素是节点,在图像中,元素是像素。然而,图中相邻节点的数量可以是可变的,这与图像中每个像素都有一定数量的相邻元素不同。

1.1K20

View编程指南

如果子View是部分透明的,则来自两个view的内容在被显示在屏幕之前被混合在一起。每个superview将其子view存储在有序数组中,并且该数组中的顺序也会影响每个子View的可见性。...如果两个兄弟子view彼此重叠,则最后添加的子view(或移动到子view数组的末尾)会出现在另一个之上。 Superview - subview关系也会影响多个view的行为。...您指定的可拉伸区域可以允许沿View的一个或两个轴伸展。 当然,当沿着两个轴伸展View时,view的边缘也必须定义可重复的图案以避免任何失真。...如果指定将内容固定到边或角的内容模式(因此实际不会缩放内容),则view将忽略可拉伸区域。 注意:在可拉伸的UIImage对象为view指定背景时,才建议使用contentStretch属性。...任何更新的view都会与应用程序的其余可见内容合成,并发送到图形硬件进行显示。 图形硬件将渲染的内容传输到屏幕。 注意:上述更新模型主要适用于使用标准系统view和绘图技术的应用程序。

2.3K20
  • 超全面设计指南:如何做大屏数据可视化设计?

    上图虽未包含这类图形,但它提供给我们的确定数据分析维度的思路和方法是相通的,可借鉴。 3. 选定可视化图表类型 当确定好分析维度后,事实我们所能选用的图表类型也就基本确定了。...易理解就是可视化设计要考虑大屏最终用户,可视化结果应该是一看就懂,不需要思考和过度理解,因而选定图表时要理性,避免为了视觉的效果而选择一些对用户不太友好的图形。 ?...一般把有关联的指标让其相邻或靠近,把图表类型相近的指标放一起,这样能减少观者认知的负担并提高信息传递的效率。 ? 6....一般后两个是没问题的,大屏跟矩阵切换器是由大屏厂商提供,一般刚好配套大屏。...但特殊情况下,比如显示器扩展不正确导致页面被拉伸或压缩,这时就需做处理:我们可以先得到被拉伸/压缩的比例,然后对整体视图做压缩/拉伸处理,再由其拉伸/压缩,这样被拉伸/压缩的瑕疵就可以得到一定程度上的矫正

    2.2K41

    了解最常用的图片文件格式

    但是也是有两个缺点的。 首先,由于矢量图在打开的时候相当于使用图片查看工具重新绘制图形。因此如果在两个不同的软件或者两个不同的电脑打开同一个图形的话,其图形的外拐可能有所不同。...想象一下具有黑色背景的图像,其中图像的大区域为纯黑色,因此许多黑色像素彼此相邻出现。...摄影图像很少具有彼此相邻的相同颜色和亮度。取而代之的是,图片在许多不同的比例具有渐变和其他某种规则的模式。因此,对这些图像进行无损压缩通常效果不佳,因此,有损压缩就成了替代方案。...所以可以使用200种不同的颜色绘制渐变,并且每五个相邻像素以完全相同的颜色进行着色,这样渐变看起来其实也是一样的。 最广泛使用的有损图像格式是jpeg,实际许多数码相机默认都将图像输出为jpeg。...但是,当图像包含尖锐的边缘(由线条图或文本创建的图像)时,jpeg压缩将失败。在这些情况下,jpeg压缩会导致非常明显的伪像。

    2K20

    CSS3、JS 探索三维粒子

    这些演示中的所有粒子和形状都是由三个基本的几何体/材质/网格组成,球体,线条和盒子。 概念 用很多小的移动部件制作动画是非常有趣的。...自定义的几何图形,材质,光照,阴影和着色器可以将这些提升到一个新的水平。从这个根本出发点有很大的发展空间。...粒子位置由单纯的噪声设置,在两个边缘附近逐渐变小。 随着时间的推移,线条在z轴上旋转并前后移动。 3: 圆分离 这个演示将一些简单的物理应用于每个粒子。...他们都在中心产卵,然后彼此推开,使他们都有自己的空间。 4: 扭转双螺旋 这个演示显示了一个双螺旋,就像是一个简化的DNA可视化。旋转时正在扭曲和解旋。...7: 正方形格子混合 这个演示显示了基于它们的位置被拉伸的框。每个盒子的移动稍微偏移。四个不同的颜色框彼此紧密放置,并与添加剂混合混合以创建白色。

    4K10

    自学cad 零基础_零基础自学吉他的步骤

    a一条轴的两个端点和另一条轴半径。 b一条轴的两个端点和旋转角度。 c中心点、一条轴端点和另上条轴半径。   ...②拉伸图形: 可以拉伸对象中选定的部分,没有选定部分保持不变。 在使用拉伸图形命令时,图形选择窗口外部分不会有任何改变;图形选择窗口内的部分会隨图形选择窗口移动而移动,但也不会有形状的改变。...选择修改/拉伸命令,或单击拉伸按钮,或在命令行中输入stretch来执行。 要进行拉伸的对象必须用交叉窗口或交叉多边形的方式来进行选取。   ③延伸图形: 可以将选定对象延伸至指定边界。...可延伸对象必须是有端点的对象,直线、多线等,而不能是无端点的对象,圆、参照线等。 首先是指定延伸边界 再是选择要延伸对象   ④修剪图形: 可以将选定对象在指定边界一侧部分剪切掉。...倒角尺寸就由两个距离来决定。   ⑦缩放图形: 将选择的图形按比例均匀地放大或缩小。 可以指定基点和长度或输入比例因子来缩放对象。 也可以为对象指定当前长度和新长度。

    3K20

    ICA简介:独立成分分析

    从技术讲,这变得有点具有挑战性。 假设我们使用两个麦克风记录聚会中两组的对话。这会导致两个混合信号,其中第一次测量对第一组的影响较大,对第二组的影响较小,而第二次测量对第二组的影响较大。...角度 Theta 可以从数据的主要方向导出,通过主成分分析 (PCA) 确定的那样。此步骤将图形旋转到如上所示的位置。 3.2....Step 2 找到主成分的比例 |估计 ∑^(-1) 第二个组成部分涉及拉伸图形,这是通过 Sigma^-1 步骤实现的。...您所见,我们可以仅使用两个角度和数据的方差来确定逆矩阵 A,这实际是我们处理 ICA 算法所需的全部。进行测量、旋转和缩放它们。最后,我们再次旋转它们以获得最终尺寸。 4....您应该看到的是这两个信号彼此不同。现在让我们混合它们!

    95520

    iOS 9人机界面指南(一)下篇:UI设计基础 - 腾讯ISUX

    不要像上图中的反例那样将仅有品牌意义的内容放在屏幕顶部二级栏持续展示,使正文内容空间被压缩,而是考虑以其他低侵入性的方法无处不在地展示品牌,使用自定义颜色、字体,或巧妙地定制屏幕的背景。...需要对你的应用进行测试以确保在其中你没有将红色与绿色作为区分两个不同状态或值的唯一方式,一些图像编辑软件或工具能够有效的帮你验证颜色的盲区。...1.11.3 图形(Graphics) iOS应用大多数图形丰富。无论是你需要展示用户的照片,还是需要创建自定义图片,以下这些需求都应该遵守: 支持Retina显示屏。...显示照片或图片时请使用原始尺寸,并不要将它拉伸到大于100%。你不会希望在你的应用中看到拉伸和变形的图片。可以让用户自己来选择他们是否想要缩放图片。 不要使用从苹果系列产品中复制的图形。...理想状况下,这样的图形库视图拥有以下特征: 高度图形化。用户通过屏幕的缩略图就可以一目了然,快速找出自己想要的文件。 让用户用最少的动作完成自己的任务。

    1.8K21

    用 Mathematica 生成迷宫

    具体构造方法是把每个单元格看作一个顶点,如果两个单元格相邻,也就是有共同的"墙",那么就在这两个单元格对应的顶点之间添加一条边。...上面图形的红色部分就是个子图。可以注意到,两个单元格(未必相邻)之间如果可以走通,那么子图的顶点之间,必然存在一条由边首尾相连形成的通路。...后续阶段里,需要根据单元格的相邻关系生成图,要根据支撑树删掉一部分单元格的边,这都需要把各个单元格看成彼此独立而互相有联系的个体,这个联系就是它们之间的公共边。...有了这样的相邻信息,只要挑出相邻信息中,有两个元素的值,就可以构造一个图,然后再求得这个图的支撑树。...把之前的几个函数,生成相邻信息,得到支撑树,求边缘等结合起来,就可以得到最终的根据网格区域生成迷宫及解答的函数: 这个函数返回两个值,一个是组成迷宫的图案,一个是解答。

    2.1K40

    [ISUX译]iOS 9 人机界面指南(五):图标与图形设计 - 腾讯ISUX

    表格45-1所罗列出来的尺寸可以为自定义图标和图片做参考。 表格45-1 :自定义图标和图像的尺寸(像素) ? 注意: 如果你需要在主屏幕快捷操作创建自定义icon,请参考主屏幕快捷操作 。...尤其是避免把一大堆不同的图形都塞到你的icon中去。找到一个简单的、可以代表你的app精髓的元素,然后把它设计成一个简单而独特的图形。...代表真实物品的icon或者图像应该精确地描摹出实物的特征,织物、玻璃、纸张、金属等等,还要能表达实物的重量和质感。 保证你的icon在不同的背景图中都是好看的。...然而,为了确保图标在设备中更加漂亮,你应该同时遵循以下这些指南:(想要了解如何在你的网页内容中增加代码来提供自定义图标,请参考Specifying a Webpage Icon for Web Clip...据你所提供的可缩放图片,iOS会进行拉伸或者平铺,直到图片可以正确填充当前UI元素的背景区域。拉伸指的是在不考虑图片原始比例的情况下放大图片。拉伸图片的性能较高,但对于多像素图片来说,会出现失真现象。

    1.6K31

    Swift-图像的性能优化

    ---- 为什么我们说这种方法设置图像效果不好 Color Misaligned Images(拉伸图像->检测图片有没有被拉伸) 创建一个自定义尺寸的ImageView,并设置图像 let image...结果如图所示 事实证明,如果图像尺寸和ImageView尺寸不一致,图像就一定会被拉伸,只要被拉伸,CPU就会工作,如果是在cell,每次cell离开屏幕再回到屏幕的时候,都会对图片进行拉伸处理。..., size: rect.size) view.addSubview(imageView02) } 自定义创建图像的方法 /// 将给定的图像进行拉伸,并且返回新的图像 /// ///...建立了一个空白文件HQImage,在UIImage的extension里面自定义两个方法创建头像图像(hq_avatarImage)和创建矩形图像(hq_rectImage) // MARK: - 创建图像的自定义方法...背景被填充的是黑色,在你的图形以外的范围内会被看见。

    1.7K70

    【数学】到底什么是拓扑?

    即使这两个对象在几何形状上有所不同,但它们在拓扑上完全等价。我们可以将橡皮泥拉伸成可以想象的任何奇怪形状,但在拓扑结构世界中,所有这些形状都完全相同。...也许你对拉伸的形状没有什么概念,但是关于如何拉伸橡皮泥的游戏有一些规则: 不允许在橡皮泥打洞; 不允许将橡皮泥的两点捏合在一起(我们没法将球形的橡皮泥做成甜甜圈的形状)。...如果我们在拉伸时违反了这些规则,那么这两个对象在拓扑上将不再等价。拓扑学家称这种不破坏既定规则的拉伸为同胚,这只是一种数学上精确地描述如何让橡皮泥的形状保持相同拓扑性质的方法。...无论你在球面上的哪一点执行此操作,都会发生这种情况。 在与球体拓扑等价的任何三维对象也会发生这种现象。...拓扑是研究在形变状态下图形空间性质保持不变的一个数学分支,着重研究图形内的相对位置关系。例如,某一面与哪些面相邻、某一面由哪些点组成等都属于拓扑信息。

    4K20

    Android开发笔记(九)特别的.9图片

    如果背景是一个shape图形,其描边节点stroke在width属性已经设置了具体的像素值3dp,那么不管该shape图形拉伸到多大,描边厚度始终都是3dp。...左边窗口是图片加工区域,右边窗口是图片预览区域,从上到下依次是纵向拉伸预览、横向拉伸预览、未拉伸预览。....9图片的四个属性 上方的黑线,指的是水平方向的拉伸区域。水平方向拉伸图片时,只有黑线区域内的图像会被拉伸,黑线两边的图像保持原状,这保证了左右两边的边框厚度不变。 ?...左方的黑线,指的是垂直方向的拉伸区域。垂直方向拉伸图片时,只有黑线区域内的图像会被拉伸,黑线两边的图像保持原状,这保证了上下两边的边框厚度不变。 ?...在实际开发中,前两个属性使用的比较多,因为很多场景都要求图片拉伸要保真。后两个属性,一般用的不多,但若是不知道,遇到问题还挺麻烦的。

    90930

    PCA主成分分析(下)

    哦……可惜数学实际没那么多想象的浪漫,它的极致应潜入深海之渊,耐得住寂寞,踏实严谨。 所以上图不是凸函数,相反,它叫凹函数。...标量x被向量X(x1,x2,x3....xn)替代,系数a被代替矩阵A,依然得到一个凸函数: 其中 即:A为正定矩阵(特征值全部大于0) 考虑多元二次型的实际意义,我们先从包含两个变量(x,y)的二次型出发...二次型矩阵A,若是一个对角矩阵,对角线上的元素值,决定了图形的形状。 2. 左图的A决定了图形为正圆,右图则为椭圆 3. 两个图像具有线性(拉伸)关系,即通过变换二次型矩阵A,将正圆拉伸为椭圆。...再来变换: 两边乘以正交向量,令: 得到一个旋转后拉伸后的圆——倾斜椭圆 实际: 现在,借助二次型矩阵A,我们又可以将函数 表示回 进一步分析问题前,先来考虑y的极值问题。...对于二次型矩阵A,特征值就是图形进行伸缩的量,对应特征向量的就是图形旋转的方向。 而对称矩阵的特征向量两两正交,实际正是构成了旋转后的坐标方向。

    72710

    电脑软件:推荐一款桌面增强工具AquaSnap

    这款软件支持屏幕边缘吸附与屏幕分屏即多显示器控制、摇晃窗口置顶与窗口自动拉伸等实用功能。用户使用了这款软件以后就能使电脑桌面排列更加整洁。...该特性与 Windows 10 内置的 Aero Snap 分屏功能类似,但 AquaSnap 却提供了更丰富的自定义选择。...2.2、 窗口平铺当两个窗口并排时,按住「Ctrl」键调整其中一个窗口,另一个窗口大小也会随之调整。这是一个容易操作,且非常有用的改变窗口布局的方法。...2.4 窗口自动拉伸双击窗口边缘,铺满你屏幕的可用空间!这是另一种在桌面空间,快速调整多个窗口的方式。双击窗口边缘,使其在一个方向上最大化。...2.5、同时移动多个窗口按住「Ctrl」时移动一个窗口,可以让所有相邻的同组窗口即可随之移动。2.6 、支持窗口置顶需要一直盯着一个小窗口?晃动窗口,使其透明置顶。再次晃动以恢复其正常状态。

    62661

    solidworks软件怎么用,solidworks软件安装

    可以使用菜单栏或工具栏中的各种工具进行建模,进行旋转、拉伸、扫掠等操作。...例如,创建一个方形外形的零件,可以先画出一个正方形,然后选中正方形四条线条中相邻的两条,添加中线等约束关系,即可成功生成一个方形的外形。5....通过绘图工具可以生成投影视图、断面、剖面等视图,支持各种图形样式的自定义绘制。在绘图时需要注意格式设置、标注、尺寸等问题,确保图纸的规范、准确。...SolidWorks软件的扩展应用SolidWorks也可以通过自定义宏、API等方式进行扩展应用。通过宏的自定义可以实现各种复杂的自动化操作,将庞大的操作步骤缩减为简单的一步,提高工作效率。...而且其已经成为了很多精品软件的基础,3DEXPERIENCE等,未来还将成为一款更多场景的软件平台。

    2.6K00

    生化小课 | 纤维蛋白适应结构功能

    两个α螺旋接触的表面由疏水性氨基酸残基组成,它们的R基团以规则的互锁模式啮合在一起。这允许左手超扭曲内的多肽链紧密堆积。...纤维蛋白的强度通过多螺旋“绳索”中多肽链之间以及超分子组装中相邻链之间的共价交联而增强。在α-角蛋白中,稳定四级结构的交联是二硫键。...它存在于结缔组织中,肌腱、软骨、骨骼的有机基质和眼睛的角膜。事实,胶原蛋白是哺乳动物中最丰富的蛋白质,通常占总蛋白质含量的25%至35% 胶原蛋白螺旋是一种独特的二级结构,与α螺旋截然不同。...胶原蛋白也是一种卷曲的螺旋,但具有独特的三级和四级结构:三个独立的多肽,称为α链(不要与α螺旋混淆),彼此扭曲。胶原蛋白中的超螺旋扭曲是右旋的,与α链的左旋螺旋相反。 脊椎动物胶原蛋白有多种类型。...胶原蛋白三螺旋中α链的紧密包裹提供了比同等横截面的钢丝更大的拉伸强度。

    52410

    css笔记 - transform学习笔记(二)

    transform转换 CSS transform 属于2D/3D的转换、变形效果。他不是一个动画,他就是变形。比如正方形变平行四边形,再变圆形。都是形状变成另一个形状。...2 + 'px',第二个坐标是(border-width + padding +height) / 2 + 'px'; transform-style 被嵌套元素在3D空间如何显示 规定被嵌套元素如何在...2 scale(n-deg) 缩放 默认中心点就是盒模型的中心点 和上边的区别就是默认只缩放水平方向,就像scaleX(x) 3D scale3d(x,y,z) 缩放 同上 我设置三个点和设置正常的两个点没什么区别...scaleZ(z) 纵深方向缩放 同上 2d图形设置没有多大的区别,不过可以看到文字微妙的变化 首先,缩放的倍数就是数字的实际倍数,比如写2就是放大两倍。...x-axis 定义该视图在x轴的位置、 y-axis 定义该视图在y轴的位置 perspective-visibility 定义元素在不面对屏幕时是否可见 混合写法 多个属性值之间用逗号隔开即可。

    1.7K10
    领券