0

我想做的是运行一个 if 语句来检查表单中的任何 TImage 对象是否具有等于 Tedit1.text 的 .top 属性。然后我想将与变量匹配的 TImage 的 .image 属性更改为 /Images/ButtonStand/jpeg

4

1 回答 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 回答