delphi 获取java控件位置_delphi的IdFTP控件函数怎么调用
RootDir = 要删除的根目录,一般情况下 RemoteDir 与 RootDir 相等}
procedure TForm1.FTP_DeleteAllFiles(var idFTP : TIdFtp;RemoteDir,RootDir : string);
label Files;
var
i,DirCount : integer;
Temp : string;
begin
idFTP.ChangeDir(RemoteDir);
if Pos(RootDir,idFTP.RetrieveCurrentDir) = 0 then Exit;
Files :
idFTP.List(nil);
DirCount := idFTP.DirectoryListing.Count ;
while DirCount = 0 do
begin
Temp := idFTP.RetrieveCurrentDir;
idFTP.ChangeDirUp;
idFTP.RemoveDir(Temp);
idFTP.List(nil);
DirCount := idFTP.DirectoryListing.Count ;
for i := 0 to DirCount - 1 do
if idFTP.DirectoryListing[i].FileName = RootDir then Exit;
end;
for i := 0 to DirCount - 1 do
begin
if Pos(RootDir,idFTP.RetrieveCurrentDir) = 0 then Break ;
if idFTP.DirectoryListing[i].ItemType = ditDirectory then
begin
FTP_DeleteAllFiles(idFTP,idFTP.DirectoryListing[i].FileName,RootDir);
end else begin
idFTP.Delete(idFTP.DirectoryListing[i].FileName);
goto Files ;
end;
end;
end;
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
IdFTP, StdCtrls, idftplist, ComCtrls, ExtCtrls;
type
Thread1 = class(TThread)
private
FidFTP : TIdFtp;
protected
procedure Execute; override;
public
constructor Create(var idFTP : TIdFtp);
end;
Thread2 = class(TThread)
private
FidFTP : TIdFtp;
protected
procedure Execute; override;
public
constructor Create(var idFTP : TIdFtp);
procedure FTP_DeleteAllFiles(var idFTP: TIdFtp; RemoteDir: string);
end;
TForm1 = class(TForm)
IdFTP1: TIdFTP;
Button1: TButton;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
StatusBar1: TStatusBar;
Timer1: TTimer;
Memo1: TMemo;
Button3: TButton;
Edit4: TEdit;
procedure IdFTP1Connected(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure IdFTP1Disconnected(Sender: TObject);
procedure IdFTP1Status(ASender: TObject; const AStatus: TIdStatus;
const AStatusText: String);
procedure Timer1Timer(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Edit4Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
function GetPrevDir(dir:string):string;
end;
var
Form1: TForm1;
T1: TThread;
T2: TThread;
implementation
{$R *.dfm}
procedure TForm1.IdFTP1Connected(Sender: TObject);
begin
Button1.Enabled := false;
Timer1.Enabled := true;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if not IdFTP1.Connected then
begin
Timer1.Enabled := false;
IdFTP1.Tag := 0;
IdFTP1.Host := Edit1.Text;
IdFTP1.Username := Edit2.Text;
IdFTP1.Password := Edit3.Text;
IdFTP1.Port := strtoint(Edit4.Text);
T1 := Thread1.Create(IdFTP1);
end;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
IdFTP1.Abort;
if IdFTP1.Connected then IdFTP1.Disconnect;
end;
procedure TForm1.IdFTP1Disconnected(Sender: TObject);
begin
Button1.Enabled := true;
if IdFTP1.Tag = 0 then Button1.Click;
end;
procedure TForm1.IdFTP1Status(ASender: TObject; const AStatus: TIdStatus;
const AStatusText: String);
begin
StatusBar1.Panels.Items[0].Text := AStatusText;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Timer1.Enabled := false;
T2 := Thread2.Create(IdFTP1);
end;
{ Thread1 }
constructor Thread1.Create(var idFTP: TIdFtp);
begin
FidFTP := idFTP;
FreeOnTerminate := True;
inherited Create(false);
end;
procedure Thread1.Execute;
begin
try
FidFTP.Connect(true, -1);
except
end;
end;
{ Thread2 }
constructor Thread2.Create(var idFTP : TIdFtp);
begin
FidFTP := idFTP;
FreeOnTerminate := True;
inherited Create(false);
end;
procedure Thread2.Execute;
begin
try
FTP_DeleteAllFiles(FidFTP, '/');
except
end;
end;
{删除整个ftp目录,包括下面的文件, RemoteDir 要删除的目录}
procedure Thread2.FTP_DeleteAllFiles(var idFTP : TIdFtp; RemoteDir : string);
var
i,DirCount : integer;
Temp : string;
begin
idFTP.ChangeDir(RemoteDir);
Form1.Memo1.Lines.Add('ChangeDir:' + idFTP.RetrieveCurrentDir);
idFTP.List(nil);
DirCount := idFTP.DirectoryListing.Count;
if DirCount = 0 then
begin
try
idFTP.RemoveDir(idFTP.RetrieveCurrentDir);
Form1.Memo1.Lines.Add('Success:' + idFTP.RetrieveCurrentDir);
except
Form1.Memo1.Lines.Add('Failed:' + idFTP.RetrieveCurrentDir);
end;
//上级
Temp := Form1.GetPrevDir(idFTP.RetrieveCurrentDir);
if Temp <> '/' then FTP_DeleteAllFiles(idFTP, Temp);
end;
for i := 0 to DirCount - 1 do
begin
if idFTP.DirectoryListing[i].ItemType = ditDirectory then
begin
delphi 获取java控件位置_delphi的IdFTP控件函数怎么调用相关推荐
- JAVA学习第五篇--java中对象的创建过程以及函数的调用过程
下面本文将详细介绍java语言中对象的创建过程,以及函数的调用过程. class Person{public String name="zhao";public int ege;p ...
- WPF 获取鼠标屏幕位置、窗口位置、控件位置
原文:WPF 获取鼠标屏幕位置.窗口位置.控件位置 public struct POINT{public int X;public int Y;public POINT(int x, int y){t ...
- JAVA知识点梳理第四部分——Swing控件
JAVA整理知识点传送门: JAVA知识点拉理第一部分--常规知识 JAVA知识点梳理第二部分--接口.内部类.异常等等 JAVA知识点梳理第三部分--图形用户界面GUI部分 JAVA知识点梳理第四部 ...
- java学习笔记(三):前端miniUI控件库入门
java学习笔记(三):前端miniUI控件库入门 最近在一家公司实习学习,一上来就需要学习了解相关的前端内容--miniUI.而这个内容自己本身并没有了解学习过,上手也是遇到了不少的问题,于是想把自 ...
- html 控件坐标定位,利用JS改变html控件位置
8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 利用JS改变html控件位置 我想写一个贪吃蛇小游戏,所以需要完成蛇的自动移动效果,这就需要改变html控件位置.本来我 ...
- Qt鼠标相对位置、绝对位置、窗口位置、控件位置、控件大小、控件绝对位置
目录 坐标系 鼠标位置 控件位置 控件的相对位置 控件绝对位置 控件的大小,rect 窗口位置 窗口的大小 窗口绝对位置 窗口相对位置 总结 在Qt界面开发时,有时需要根据鼠标位置,控件位置来确定 ...
- Android获取景点的信息,景点介绍(ListView控件应用)
1. 案例概述 此案例主要是对ListView列表控件的使用.当应用中包含多项数据,每项数据结构相同,只是内容不同时,可通过列表显示.对于列表中的内容,可以是显示字符串的TextView,也可以是结构 ...
- 数据回发时,维护ASP.NET Tree控件位置
ASP.NET2.0提供了一个功能强大的TreeView控件,但是它看起来有一个缺陷:它好像不能够跟踪用户最后选择的一个节点.如果你滚动到第50个节点然后展开该节点,那么当单击链接页面进行回发后,你必 ...
- android控件之间的过渡动画效果,Android - 交换控件位置:基于LayoutParams的瞬间交换与基于ObjectAnimator动画效果交换...
现需要交换两个控件(本文中是两个RelativeLayout),找到了两个方法: 1.使用LayoutParams改变两个layout的属性,即其相对关系(below等),实现位置的交换,但是并没有交 ...
最新文章
- Docker 入门到实践笔记2
- android 渠道包 占位符配置,Android打包
- 学习笔记——ArrayList总结
- sp MySQL 导入_mysql数据导入redis
- 本地如何预览php文件上传,如何实现js上传图片本地预览同时支持预览截图的功能...
- django 上传文件夹_django上传文件
- 第三次学JAVA再学不好就吃翔(part49)--String类的获取功能
- 判断一个字符串是否是回文_Python
- select下拉列表
- 2018 rust卡石头教程_rust地上的石头怎么捡 | 手游网游页游攻略大全
- 理解容器中超易混淆 Attach 和 Exec 的异同
- 阿里云企业邮箱哪个代理商好
- 作品集十(平面设计)
- 山海演武传·黄道·第一卷 雏龙惊蛰 第三章 九邪谷
- [日推荐]『我的时间线』记录你的生活
- 顶级投资机构ARK将区块链列为颠覆式创新技术
- ssh无输入密码登录问题
- Ghost 8.2 +GHOST使用教程(图+文)
- 用计算机打女生节快乐,女生节快乐的朋友圈说说
- 超全的 Vue 开源项目合集
热门文章
- java 精选选择题_Java生产率提示:社区精选
- 存储过程 锁定并发_Java并发教程–锁定:显式锁定
- eclipse 扩展_Eclipse扩展的轻量级集成测试
- 构建Spring微服务并对其进行Dockerize生产
- gradle ant_区分基于Ant目标的Gradle任务
- instanceof运算符_Java 8中的instanceof运算符和访客模式替换
- 什么是JAX-RS注释? (第2部分)
- io和nio的缓冲_IO与NIO –中断,超时和缓冲区
- 带有Gluon Ignite和Dagger的JavaFX中的依赖注入
- apache mahout_Apache Mahout:入门