亚洲免费乱码视频,日韩 欧美 国产 动漫 一区,97在线观看免费视频播国产,中文字幕亚洲图片

      1. <legend id="ppnor"></legend>

      2. 
        
        <sup id="ppnor"><input id="ppnor"></input></sup>
        <s id="ppnor"></s>

        Delphi實現(xiàn)提取可執(zhí)行文件內(nèi)部所有圖標

        字號:

        本實例實現(xiàn)的功能是能夠從用戶選擇的可執(zhí)行文件(后綴名為exe)中提取所有圖標并且顯示在窗體上。
            在窗體中添加TImage 組件、TOpenDialog組件和TButton組件,TImage組件充當顯示文件內(nèi)圖標的容器,TOpenDialog組件和TButton組件用來激活提示用戶選擇GIF動畫的對話框。
            首先在窗體的uses段中添加ShellAPI,然后添加按鈕響應(yīng)代碼如下:
            procedure TfrmMain.btnOpenClick(Sender: TObject);
            var
            i: Integer;
            Large, Small: HICON;
            nIcons: Integer;
            begin
            if OpenDialog1.Execute then
            begin
            self.Image1.Canvas.Refresh;
            nIcons:=ExtractIconEx(PChar(OpenDialog1.FileName), -1, Large, Small, 1);
            for i:=0 to nIcons-1 do
            begin
            ExtractIconEx(PChar(self.OpenDialog1.FileName), i, Large, Small, 1);
            DrawIcon(self.Image1.Canvas.Handle,(i div 4)*40,(i mod 4)*40,Large);
            end;
            end;
            end;
            當用戶在程序運行過程中選擇一個可執(zhí)行文件后,程序首先通過self.Image1.Canvas. Refresh語句清除TImage組件上的顯示內(nèi)容,然后通過將ExtractIconEx函數(shù)的第2個參數(shù)指定為-1來取得可執(zhí)行文件中圖標的數(shù)目。得到數(shù)目后,通過一個循環(huán)中的ExtractIconEx (PChar(self.OpenDialog1.FileName), i, Large, Small, 1)語句把可執(zhí)行文件中的大、小圖標分別存儲在Large和Small變量中。最后通過DrawIcon函數(shù)在TImage組件上繪制圖標。
            程序代碼如下:
            unit Unit1;
            interface
            uses
            Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
            Dialogs, StdCtrls, ShellAPI, Grids, ExtCtrls;
            type
            TfrmMain = class(TForm)
            btnOpen: TButton;
            OpenDialog1: TOpenDialog;
            Image1: TImage;
            procedure btnOpenClick(Sender: TObject);
            private
            { Private declarations }
            public
            { Public declarations }
            end;
            var
            frmMain: TfrmMain;
            implementation
            {$R *.dfm}
            procedure TfrmMain.btnOpenClick(Sender: TObject);
            var
            i: Integer;
            Large, Small: HICON;
            nIcons: Integer;
            begin
            if OpenDialog1.Execute then
            begin
            self.Image1.Canvas.Refresh;
            nIcons:=ExtractIconEx(PChar(OpenDialog1.FileName), -1, Large, Small, 1);
            for i:=0 to nIcons-1 do
            begin
            ExtractIconEx(PChar(self.OpenDialog1.FileName), i, Large, Small, 1);
            DrawIcon(self.Image1.Canvas.Handle,(i div 4)*40,(i mod 4)*40,Large);
            end;
            end;
            end;
            end.