delphi 获取指定文件的图标
前段时间因为项目需要,获取指定文件的图标,绕了很多弯子,现在弄出来了,跟大家共享下.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,ShellAPI, ExtCtrls;
type
TForm1 = class(TForm)
lbl1: TLabel;
btn1: TButton;
dlgOpen1: TOpenDialog;
imgPic: TImage;
procedure btn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
Mem : TMemoryStream;
implementation
{$R *.dfm}
procedure TForm1.btn1Click(Sender: TObject);
var
FileInfo : TSHFileInfo;
hc: TIcon;
Bitmap : TBitmap;
begin
Mem := Tmemorystream.Create;
if dlgOpen1.Execute then
begin
FileInfo.iIcon := 0;
SHGetFileInfo(pchar(dlgOpen1.filename), 0, FileInfo, SizeOf(TSHFileInfo),
SHGFI_ICON or SHGFI_LARGEICON);
imgPic.Picture.Icon.Handle := FileInfo.hIcon;
hc := TIcon.Create;
Bitmap := TBitmap.Create;
hc.Handle := FileInfo.hIcon;
Bitmap.width := hc.width;
Bitmap.height := hc.height;
Bitmap.Canvas.Draw(0, 0, hc);
Bitmap.SaveToStream(Mem);
Mem.SaveToFile(ExtractFilePath(paramstr(0)) + 'qinxh.bmp');
imgPic.Picture.LoadfromFile(ExtractFilePath(paramstr(0)) + 'qinxh.bmp');
hc.Free;
Bitmap.Free;
end;
end;
end.
相关文档:
在Delphi中的Record类型中,与之C语言对应的即是结构体类型(struct
),也可能是为了符合C语言或C++程序员的习惯,对于它在Delphi中的应用存在的一些问题进行初步的说明。在Delphi中的记录体类型有两种方式定义
Type
RecTest = record (packed
)
ID :integer; ......
破解方法都是用了盒子 Delphi.Distiller.v1.85
费话不多说
安装任意delphi 2010 正式版
序列号是 HAAL-DANSGN-FZR5AG-M3BS
安装完之后点击开始->Embarcadero RAD Studio 2010 ->Check for update
&nb ......
引用参数:
引用参数用var关键字标示
procedure DoubleTheValue (var Value: Integer);
begin
Value := Value * 2;
end;
在这种情况下,参数既把一个值传递给过程,又把新值返回给调用过程的代码。当你执行完以下代码时:
var
X: Integer;
begin
X := 10;
DoubleTheValue (X);
x变量的值变成了20 ......
1,规范简介
本规范主要规定Delphi源程序在书写过程中所应遵循的规则及注意事项。编写该规范的目的是使公司软件开发人员的源代码书写习惯保持一致。这样做可以使每一个组员都可以理解其它组员的代码,以便于源代码的二次开发记忆系统的维护。
2,一般格式规范
2.1 缩进
缩进就是在当源程序的级改变时为增加可读 ......
<1>利用Unit的
Initalization与Finalization这两个小节
可以在Unit的这两个小节中安排Unit的进入和退出,但是
Program
与
Library并没有这两个部分,所以只能写在Unit中。
<2>利用ExitProc变量
在Library的begin
..end.中间是可以写代码
的,
这里可以放置
DLL初始化代码
。如果想要做善 ......