TListView的问题 TListView设为vsIcon模式,自己画背景,单个选择的时候背景框能全部显示,按Ctrl键,用鼠标选择多个,背景也能全部显示。如果用鼠标直接选择多个则图片显示不全,怎么回事? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 自己实现自画吧,在drawitem中对选中的记录进行处理 var lpRect: TRect; X, Y: Integer; Icon: TIcon; p: PItemData; sName: string;begin if (Item = nil) or (Item.Data = nil) then Exit; p := Item.Data; lpRect := Item.DisplayRect(drBounds); if cdsSelected in State then FPicture.Draw2(ACanvas, lpRect, 'Selected', 0); Icon := GetFileIconEx(p^.Path, 1, itLargeIcon); if Icon <> nil then try // 画图标 X := (RectWidth(lpRect) - Icon.Width) div 2 + lpRect.Left - 3; Y := lpRect.Top + 2; ACanvas.Brush.Style := bsClear; ACanvas.Draw(X, Y, Icon); finally FreeAndNil(Icon); end; // 画文字 SetBkMode(ACanvas.Handle, TRANSPARENT); ACanvas.Brush.Style := bsClear; lpRect := Item.DisplayRect(drLabel); lpRect.Bottom := lpRect.Top + ACanvas.TextHeight(Item.Caption) * 2; sName := ExtractFileName(p^.Path); sName := GetShort(ACanvas, lpRect, sName); DrawString(ACanvas, sName, lpRect, DT_CENTER or DT_WORDBREAK); 在OnAdvancedCustomDrawItem里画的。 找到问题了,caption太长,large_image图片的大小不够。结贴 delphi 主程序调用bpl非模式MDI窗口问题。 如何判别RichView里的文字信息移动到哪里了? 请教一个关于语句的问题 简单问题,帮帮忙 我中了1百万,狂喜中!!!!!!!!!!!!!! adoquery在loadfromfile从xml读取数据之后,如果执行sql语句? A class named Tdatagrid already exists 的问题 怎样使用模糊查询! 在一个MDI的程序中,如何阻止同一个子窗体多次被打开? 在delphi xe4中如何安装spcomm控件 关于同类组件循环赋值问题 最近重新学delphi 2011,还有多少人在用delphi?
var
lpRect: TRect;
X, Y: Integer;
Icon: TIcon;
p: PItemData;
sName: string;
begin
if (Item = nil) or (Item.Data = nil) then
Exit;
p := Item.Data; lpRect := Item.DisplayRect(drBounds); if cdsSelected in State then
FPicture.Draw2(ACanvas, lpRect, 'Selected', 0); Icon := GetFileIconEx(p^.Path, 1, itLargeIcon);
if Icon <> nil then
try
// 画图标
X := (RectWidth(lpRect) - Icon.Width) div 2 + lpRect.Left - 3;
Y := lpRect.Top + 2;
ACanvas.Brush.Style := bsClear;
ACanvas.Draw(X, Y, Icon);
finally
FreeAndNil(Icon);
end; // 画文字
SetBkMode(ACanvas.Handle, TRANSPARENT);
ACanvas.Brush.Style := bsClear;
lpRect := Item.DisplayRect(drLabel);
lpRect.Bottom := lpRect.Top + ACanvas.TextHeight(Item.Caption) * 2; sName := ExtractFileName(p^.Path);
sName := GetShort(ACanvas, lpRect, sName);
DrawString(ACanvas, sName, lpRect, DT_CENTER or DT_WORDBREAK);
在OnAdvancedCustomDrawItem里画的。
结贴