调用"更改图标"对话框,编译过不了 |
答題得分者是:ha0009
|
bigdogchina
版主 發表:238 回覆:523 積分:312 註冊:2003-04-28 發送簡訊給我 |
大大们,我这个傻瓜又在提问了,请您见谅哦
我想在程式中调用"更改图标"对话框,代码如下:
< class="code">
unit Unit1; interface uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,shellapi; type
TForm1 = class(TForm)
Button1: TButton;
OpenDialog1: TOpenDialog;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end; var
Form1: TForm1; implementation {$R *.dfm} function PickIconDlg(hwndOwner:HWND; lpstrFile:PChar;nMaxFile:DWORD; lpdwIconIndex: LPDWORD):BOOL;stdcall;external 'SHELL32.DLL' index 62; procedure TForm1.Button1Click(Sender: TObject);
var
PName: PChar;
MaxFl,IcoIndex: Cardinal;
NumIcon:Integer;
hLIcon,hSIcon: THandle;
begin
if OpenDialog1.Execute then
begin
GetMem(PName,1024);
StrCopy(PName,PChar(OpenDialog1.FileName));
MaxFl := 1023;
IcoIndex := 0;
if not PickIconDlg(Handle,PName,MaxFl,@IcoIndex) then
Exit;
NumIcon := ExtractIconEx(PName,IcoIndex,hLIcon,hSIcon,1);
FreeMem(PName);
DrawIcon(Canvas.Handle,250,43,hLIcon);
end;
end; end.
可是编译却过不了:
[Warning] Unit1.pas(27): Symbol 'INDEX' is specific to a platform
[Error] Unit1.pas(45): Types of actual and formal var parameters must be identical
[Fatal Error] Porject1.dpr(5): Could not compile used "Unit1.pas"
编译器把错误停在了
NumIcon := ExtractIconEx(PName,IconIndex,hLIcon,hSIcon,1);
请大大们指出错误在那里及改正的办法,不省感激!!! 人生在勤,不索何获?
------
人生在勤,不索何获? |
ha0009
版主 發表:16 回覆:507 積分:639 註冊:2002-03-16 發送簡訊給我 |
你好:
請你改紅色的部分
< class="code">
function PickIconDlg(hwndOwner:HWND; lpstrFile: PChar; nMaxFile: DWORD; lpdwIconIndex: LPDWORD): BOOL; stdcall; external 'SHELL32.DLL' index 62; procedure TForm1.Button3Click(Sender: TObject);
var
PName: PChar;
MaxFl,IcoIndex: Cardinal;
NumIcon:Integer;
hLIcon,hSIcon: HICON;
begin
if OpenDialog1.Execute then begin
GetMem(PName,1024);
StrCopy(PName,PChar(OpenDialog1.FileName));
MaxFl := 1023;
IcoIndex := 0;
if not PickIconDlg(Handle,PName,MaxFl,@IcoIndex) then Exit;
NumIcon := ExtractIconEx(PName,IcoIndex,hLIcon,hSIcon,1);
FreeMem(PName);
DrawIcon(Canvas.Handle,250,43,hLIcon);
end;
end;
|
Justmade
版主 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
|
bigdogchina
版主 發表:238 回覆:523 積分:312 註冊:2003-04-28 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |