DirectoryOutlineDriveTabSet决定是否能接受拖动的就地放下
procedure TFMFormDirectoryOutlineDragOver(Sender Source: TObject; X
Y: Integer; State: TDragState; var Accept: Boolean)
begin
if Source is TFileListBox then
Accept := True;
end;
procedure TFMFormDriveTabSetDragOver(Sender Source: TObject; X
Y: Integer; State: TDragState; var Accept: Boolean)
var
PropPos: Integer;
begin
if Source is TFileListBox then
with DriveTabSet do
begin
PropPos := ItemAtPos(Point(XY))
Accept := (PropPos > ) and (PropPos < TabsCount)
end;
end;
DirectoryOutline是无条件的接受而DriveTabSet需检查是否是合法的标签
拖动放下的响应
DirectoryOutline的拖动放下用于实现文件移动功能程序中调用ConfirmChange事件处理过程目标路径由DirctoryOutlineItems[GetItem(XY)]FullPath来得到
procedure TFMFormDirectoryOutlineDragDrop(Sender Source: TObject; XY: Integer)
begin
if Source is TFileListBox then
with DirectoryOutline do
begin
ConfirmChange(MoveFileListFileName Items[GetItem(X Y)]FullPath)
end;
end;
DriveTabSet的拖动放下用于实现文件拷贝功能程序中把当前位置转化为相应的驱动器号目标路径由CurrentDirList[DriveTabSetTabIndex]获得
procedure TFMFormDriveTabSetDragDrop(Sender Source: TObject; XY: Integer)
var
APoint: TPoint;
begin
APointX := X; APointY := Y;
DriveTabSetTabIndex := DriveTabSetItemAtPos(APoint)
if Source is TFileListBox then
with DriveTabSet do
begin
if CurrentDirList[TabIndex] <> then
ConfirmChange(CopyTheFilenameCurrentDirList[TabIndex])
end;
end;
FileList响应拖动结束更新文件列表
procedure TFMFormFileListEndDrag(Sender Target: TObject; X Y: Integer)
begin
if Target <> nil then FileListUpdate;
end;
到目前为止我们的文件管理器功能已足够强大 不过还有许多问题值得读者去进
一步探讨如
文件与应用程序关联的建立
在文件列表框中显示更多的文件信息
文件列表框中的文件按后缀各排序等
文件管理器是一个真正的综合例程对它的钻研会使您更进一步模到Delphi编程的精髓
返回目录DELPHI基础教程
编辑推荐
Java程序设计培训视频教程
JEE高级框架实战培训视频教程
Visual C++音频/视频技术开发与实战
Oracle索引技术
ORACLEG数据库开发优化指南
Java程序性能优化让你的Java程序更快更稳定
C嵌入式编程设计模式
Android游戏开发实践指南
[] [] [] []