我想做这样一个程序:可以通过文件选择对话框,在窗体上显示选定EXE文件的图标。请问如何实现?用TImage可以吗?请大家帮帮忙,偶初学Delphi,对它的控件不熟。望能给出大致代码。

解决方案 »

  1.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      icon:Ticon;
    begin
      icon:=Ticon.Create;
      icon.LoadFromFile('d:\icon1.ico');
      application.Icon:=icon;
      icon.Free;
    end;
      

  2.   

    在Google中搜索 delphi 提取图标可以找到很多教程例子
      

  3.   

    //在窗体上加入 对话框 和TImage,Button
    procedure TForm1.Button1Click(Sender: TObject);
    var MyIcon:TIcon;
      nIndex2:word;
      fname1:string;
    begin
      if OpenDialog1.Execute then
      begin
        fname1:=OpenDialog1.FileName;
        MyIcon := TIcon.Create;
        MyIcon.Handle := ExtractIcon(hInstance, pchar(fname1),0);
        if MyIcon.Handle=0 then
        begin
          MyIcon.Handle := ExtractAssociatedIcon(hInstance,pchar(fname1),nIndex2);
        end;
      MyIcon.SaveToFile('c:\wxmwxmwxm.ico');
      sleep(200);
      Image1.Picture.LoadFromFile('c:\wxmwxmwxm.ico');
      MyIcon.Free;
      deletefile('c:\wxmwxmwxm.ico');
      end;
    end;
      

  4.   


    to wxmwxmwxm:  MyIcon.SaveToFile('c:\wxmwxmwxm.ico'); 
      sleep(200); 
      Image1.Picture.LoadFromFile('c:\wxmwxmwxm.ico'); 
      MyIcon.Free; 
      deletefile('c:\wxmwxmwxm.ico'); 哇,这样也太麻烦了吧:(1)先从EXE文件中提取图标
    (2)再保存成文件:MyIcon.SaveToFile('c:\wxmwxmwxm.ico');
    (3)再显示:Image1.Picture.LoadFromFile('c:\wxmwxmwxm.ico'); 
    (4)再删除临时文件:deletefile('c:\wxmwxmwxm.ico'); 大虾们,有没有简单一点的办法啊?可以不要保存成文件再显示吗?
      

  5.   


    uses ShellAPI;
    ExtractIcon
      

  6.   


    自己搞定了,呵呵~//在窗体上加入 对话框 和TImage,Button 
    procedure TForm1.Button1Click(Sender: TObject); 
    var 
      MyIcon:TIcon;  
      fname1:string; 
    begin 
      if OpenDialog1.Execute then 
      begin 
        fname1:=OpenDialog1.FileName; 
        MyIcon := TIcon.Create; 
        MyIcon.Handle := ExtractIcon(hInstance, pchar(fname1),0);  
        Image1.Picture.Agissn(MyIcon); 
        MyIcon.Free; 
      end; 
    end; 给分了:)