我想做的是运行一个 if 语句来检查表单中的任何 TImage 对象是否具有等于 Tedit1.text 的 .top 属性。然后我想将与变量匹配的 TImage 的 .image 属性更改为 /Images/ButtonStand/jpeg
问问题
211 次
1 回答
3
您可以通过循环Form.Components
找到它。(您没有指定从哪里获取 .Top 的变量,所以我只是从 .Top 中检索到它TEdit
。您也没有指定新图像的来源,所以我假设它已经加载到某处TBitmap
。)
procedure TForm1.ChangeImageButtonClick(Sender: TObject);
var
i: Integer;
TopValue: Integer;
NewBmp: TBitmap;
begin
// Get top value to locate from Edit1
TopValue := StrToIntDef(Edit1.Text, -1);
if TopValue = -1 then // User entered invalid value. Nothing to do; bail out.
Exit;
for i := 0 to ComponentCount - 1 do
begin
if Components[i] is TImage then
begin
if TImage(Components[i]).Top = TopValue then
begin
NewBmp := TBitmap.Create;
NewBmp.LoadFromFile('Images' + IntToStr(i) + '.bmp');
try
TImage(Components[i]).Picture.Graphic.Assign(NewBmp);
finally
NewBmp.Free;
end;
end;
end;
end;
end;
于 2013-08-08T23:05:54.260 回答