directoryoutline是无条件的接受,而drivetabset需检查是否是合法的标签。
3.拖动放下的响应
directoryoutline的拖动放下用于实现文件移动功能。程序中调用confirmchange 事件
处理过程,目标路径由dirctoryoutline.items[getitem(x,y)].fullpath来得到。
procedure tfmform.directoryoutlinedragdrop(sender, source: tobject; x,
y: integer);
begin
if source is tfilelistbox then
with directoryoutline do
begin
confirmchange('move',filelist.filename, items[getitem(x, y)].fullpath);
end;
end;
drivetabset的拖动放下用于实现文件拷贝功能。程序中把当前位置转化为相应的驱
动器号,目标路径由currentdirlist[drivetabset.tabindex]获得。
procedure tfmform.drivetabsetdragdrop(sender, source: tobject; x,y: integer);
var
apoint: tpoint;
begin
apoint.x := x; apoint.y := y;
drivetabset.tabindex := drivetabset.itematpos(apoint);
if source is tfilelistbox then
with drivetabset do
begin
if currentdirlist[tabindex] <> '' then
confirmchange('copy',thefilename,currentdirlist[tabindex]);
end;
end;
4.filelist响应拖动结束,更新文件列表
procedure tfmform.filelistenddrag(sender, target: tobject; x, y: integer);
begin
if target <> nil then filelist.update;
end;