gpt4 book ai didi

image - 将图像大小调整为选择矩形Delphi

转载 作者:行者123 更新时间:2023-12-03 18:37:36 34 4
gpt4 key购买 nike

嗨,我无法弄清楚为什么这行不通。
我有一个图像和一个选择,我希望图像始终与选择相同大小和位置,因此我将这段代码放在计时器中:

  procedure TfrmMainUI.tmrUpdateTimer(Sender: TObject);
var i : integer;
begin
Image1.Width:=Selection1.Width;
Image1.Height:=Selection1.Height;
Image1.Position.X:=Selection1.Position.X;
Image1.Position.Y:=Selection1.Position.Y;
end;


但这是行不通的。

应该发生的是图像调整大小到所选内容,并且其位置也跟随所选内容。
但是发生的是,我可以移动选区并调整其大小,并且图像仅停留在原处且不会调整大小。

最佳答案

正如@Mike Sutton在评论中指出的那样,您应该使用OnTrackTSelection事件来触发图像更新。

documentation说:


OnTrack事件的事件处理程序会从
TSelection对象处于处理状态时使用MouseMove方法
移动或调整大小。

编写自定义OnTrack事件处理程序以在以下情况下执行特定操作
TSelection正在移动或调整大小。


您在注释中声明,组件是在运行时动态创建的,而不是在设计时的表面上创建的。因此,您还需要在代码中分配处理程序。像这样做:

Selection1.OnTrack := SelectionTrack;


您的事件处理程序将如下所示:

procedure TfrmMainUI.SelectionTrack(Sender: TObject);
begin
Image1.Width:=Selection1.Width;
Image1.Height:=Selection1.Height;
Image1.Position.X:=Selection1.Position.X;
Image1.Position.Y:=Selection1.Position.Y;
end;


您还要在评论中说,您需要跟踪许多链接的图像和选择的选择更改。您可以像这样修改事件处理程序:

procedure TfrmMainUI.SelectionTrack(Sender: TObject);
var
Selection: TSelection;
Image: TImage;
begin
Selection := Sender as TSelection;
Image := ImageFromSelection(Selection);//you need to implement this function
Image.Width:=Selection.Width;
Image.Height:=Selection.Height;
Image.Position.X:=Selection.Position.X;
Image.Position.Y:=Selection.Position.Y;
end;

关于image - 将图像大小调整为选择矩形Delphi,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14918540/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com