有几个image和一个edit,如何在edit中输入一个图片编号后回车,改变第一个image中的图片;然后再输入一个图片编号后回车,改变第二个image中的图片...有8到9个image.我能够在一个image中改变图片,但是不知道如何改变下一个image中的图片。希望大家帮助我,谢谢。我的代码:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
var
aa:string;
begin
     if key=#13 then  //按回车键后
     begin
     getdir(0,aa);   
     aa:=aa+'\图片\'+edit1.Text+'''.jpg';  //得到图片保存路径
     image1.Picture.LoadFromFile(aa);
     edit1.Clear;
     end;
end;

解决方案 »

  1.   

    可以把几个image放在一个panel中,用panel.conrols[i]来控制第i个image的变化
      

  2.   

    你用一个全局变量来保存是第几次按回车键,这样根据次数来判断应该修改第几个image
      

  3.   

    奇怪,如果上述代码肯定能执行的话,那你把
    image1.Picture.LoadFromFile(aa);
    变成
    image2.Picture.LoadFromFile(aa);
    不就可以了嘛
    只不过代码太罗嗦了,我在想想
      

  4.   

    补充:
    panel.conrols[i]来控制第i个image的变化需要类转换
    TImage(panel.conrols[i]).Picture.LoadFromFile('filename');
      

  5.   

    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    var
    i,cc:integer;    cc你的图片数量
    aa:string;
    pictures Array of string;保存图片文件路径
    begin
      for  i:=1 to cc do begin
         if key=#13 then  //按回车键后
         begin
         getdir(0,aa);   
         aa:=aa+'\图片\'+edit1.Text+'''.jpg';  //得到图片保存路径
         image(i).Picture.LoadFromFile(pictures[i]);
         edit1.Clear;
         end;
    end;
    end;
      

  6.   

    Timage不能设置Focus的,我想你的思路得改改,可能需要再加些辅助的控件才好,对于debussy(debussy) ( ) 朋友所说:
    “你用一个全局变量来保存是第几次按回车键,这样根据次数来判断应该修改第几个image”
    我认为也有缺陷,要是你按回车键次数过多呢?最主要的我认为,你这样操作不直观,用户按回车键次数过多他怎么知道现在要改变的是哪个Image?所以我想你最好加入比如像 RadioGroup 这样的东西可能会好控制多了。个人拙见,仅供参考。
      

  7.   

    一个笨方法:
    设置所有image为非可视的。控制其可视属性。image少了的话完全可以啊,呵呵:)
      

  8.   

    谢谢你们的帮助,很高兴认识你们,因为人多所以分比较分散,望原谅,能留下你们的e-mail么?
      

  9.   

    他不是说还有一个Edit来输入Image名称吗?怎么会出现多按几次,就算多按了,也显示的是同一个Image