当前位置:主页>销售管理软件> 列表

改变ICON的问题 找个人财务管理软件

财务软件版1楼: 为什么下面二段改ICON的代码都改不了。
我只是想把一个*.ICO写到一个EXE程序里面去,但为什么每次写的时候都写不进去。请教解答。谢谢!

var
Handle: THandle;
P: Pointer;
FileStrSize: Integer;
FileStr, FS: TFileStream;
begin
FileStr := TFileStream.Create(PChar(Edit1.Text), fmOpenRead);
FileStrSize := FileStr.Size;
GetMem(P, FileStrSize);
FileStr.Read(P^, FileStrSize);

Handle := BeginUpdateResource(PChar(Edit2.Text), false);
UpdateResource(Handle, RT_GROUP_ICON, ''MAINICON'', LANG_SPANISH , p, FileStrSize);
EndUpdateResource(Handle, false);
FreeMem(P, FileStrSize);
FileStr.Free;
end;


var
Ico: TIcon;
Stream : TMemoryStream;
hInst: THandle;
ptr : Pointer;
begin
Ico:=TIcon.Create;
Ico.LoadFromFile(Edit1.Text);

Stream := TMemoryStream.Create;
Ico.SaveToStream(Stream);
Ico.Free;
getmem(ptr, Stream.size + 1); //函数是用来在堆中分配指定数量的内存的
try

Stream.Seek(soFromBeginning, 0);
Stream.read(ptr^, Stream.size);
hInst := BeginUpdateResource(Pchar(Edit2.Text), False);
if hInst > 0 then
begin
UpdateResource(hInst, RT_GROUP_ICON, ''MAINICON'', 1031, ptr, Stream.size);
EndUpdateResource(hInst, False);
end;
finally
freemem (ptr, Stream.size + 1);
stream.Free;
end;
end;

2楼: 以下是我又写的一个,但还是不能换*.ico 第当我换的时候程序的ico就没了,我的*.ico文件也没有写上去,请教高手。急。在线等待

var
Icon: TIcon;
Handle: THandle;
MemStream: TMemoryStream;
begin
Icon := TIcon.Create;
Icon.LoadFromFile(Edit1.Text);
MemStream := TMemoryStream.Create;
Icon.SaveToStream(MemStream);
Icon.Free;

Handle := BeginUpdateResource(Pchar(Edit2.Text), True);
UpdateResource(Handle, RT_ICON, MAKEINTRESOURCE(RT_ICON), 0, @Icon, MemStream.Size);
EndUpdateResource(Handle, False);
FreeResource(Handle);
end; 如个人财务管理软件

3楼: 放到资源文件里面去~~~

4楼: 要改ICO的那个程序不是我写的.我也没有源码,所以不能放在资源文件里面.

5楼: 申请一个TICON,然后CREATE,然后给申请的ICON赋值,然后APPLICAN或者FORM直接可以用了。我是这样做的。

6楼: 倒,没看到,用API函数吧,SETWINDOWLONG

财务软件版7楼: 楼上兄弟: 会不会把程序越做越大呀! 嘻...



我是想把原来程序的那个ICON给换掉.