如何将变量var filename:String;cout:integer传入以下过程 ( 积分: 100 )

  • 主题发起人 主题发起人 wangzf
  • 开始时间 开始时间
W

wangzf

Unregistered / Unconfirmed
GUEST, unregistred user!
在线程中产生var filename:String;cout:integer两个变量,传入以下过程,如何表述???
procedure TfrmMailForm.ADrawItem(Sender:TObject;ACanvas:TCanvas;ARect:TRect;Selected:Bool;var filename:String;cout:integer);
var
i:integer;
sinfo:SHFILEINFO;
begin
ZeroMemory(@sinfo,sizeof(sinfo));
SHGetFileInfo(PChar(GetfileExt(filename)),FILE_ATTRIBUTE_NORMAL,sinfo,sizeof(sinfo),SHGFI_USEFILEATTRIBUTES OR SHGFI_ICON);
for i:=0 to coutdo
begin
ePic:=TPicture.Create;//创建一个用于装载图片的Tpicture对象
ePic.Icon.Handle:=sinfo.hIcon;//从项目所在目录装载图片
acanvas.Draw(arect.Left,arect.Top,ePic.Graphic);//将图片在菜单项中绘制出来
acanvas.Font.Size:=10;//设置菜单项的字体大小
acanvas.Font.Color:=clblue;
//设置菜单项字体颜色
acanvas.TextOut(arect.Left+40,arect.Top+15,filename);//在菜单项中输出文字A
end;
end;
 
没看明白, 想表述什么?
 
也就是我在调用以上过程出错,调用方法如下:
miSample:=TMenuItem.Create(frmMailForm);//动态创建菜单项
miSample.OnClick :=actSampleExecute;
//为菜单项添加动作
miSample.OnDrawItem :=frmMailForm.ADrawItem(self,self,self,self,fileext,i);//为菜单项设置显示方式
miSample.OnMeasureItem := frmMailForm.aMeasureItem;
//为菜单项设置大小
frmMailForm.PopupMenu1.Items.Insert(0,miSample);//将菜单项添加到菜单中
 
miSample.OnDrawItem :=frmMailForm.ADrawItem(self,self,self,self,fileext,i);//为菜单项设置显示方式
上面这行不对吧
FOnDrawItem: TMenuDrawItemEvent;
TMenuDrawItemEvent = procedure (Sender: TObject;
ACanvas: TCanvas;
ARect: TRect;
Selected: Boolean) of object;
ADrawItem不是TMenuDrawItemEvent 实例
 
接受答案了.
 
后退
顶部