当我有这个目录路径时:
C:\Program Files (x86)\Embarcadero\
Run Code Online (Sandbox Code Playgroud)
我正在寻找的功能应该返回:
C:\Program Files (x86)\
Run Code Online (Sandbox Code Playgroud)
我试过这段代码,但它只适用于文件,不适用于目录:
function GetParentDirectory(const Path: string): string;
begin
Result := ExpandFileName(Path);
end;
Run Code Online (Sandbox Code Playgroud)
有谁知道我应该使用什么来返回某个目录的父文件夹的路径?
我试图得到一个directorie的子目录我有一个工作脚本,但我只想要子目录名称而不是之前的目录名称.
示例:
如果我输入:"\ Program Files(x86)\ Embarcadero\RAD Studio\12.0"
那么现在这是我的输出:
"\ Program Files(x86)\ Embarcadero\RAD Studio\12.0\bin"
"\ Program Files( x86)\ Embarcadero\RAD Studio\12.0\bin64"
"\ Program Files(x86)\ Embarcadero\RAD Studio\12.0\binosx32"
......
但我希望我的输出是:
"bin"
"bin64"
"binosx32"
...
这是我现在使用的脚本:
procedure GetSubDirectories(const directory : string; list : TStrings) ;
var
sr : TSearchRec;
begin
try
if FindFirst(IncludeTrailingPathDelimiter(directory) + '*.*', faDirectory, sr) < 0 then
Exit
else
repeat
if ((sr.Attr and faDirectory <> 0) AND (sr.Name <> '.') AND (sr.Name <> '..')) then
List.Add(IncludeTrailingPathDelimiter(directory) + sr.Name) ;
until FindNext(sr) <> …Run Code Online (Sandbox Code Playgroud) 如何查看列表视图中是否只选择了一个项目?
我现在用:
if listview1.Selected <> nil then
begin
...
end;
Run Code Online (Sandbox Code Playgroud)
但是当选择了一个或多个项目时,此代码可以工作,如果选择了一个项目,脚本是什么
当我构建一个项目,其中"链接与运行时包"设置为true时,输出exe非常小,在我的电脑上,exe工作正常,但有些人得到rtl190.bpl丢失的错误.我怎样才能解决这个问题?我还想要一个小的输出文件.
我想在Delphi中创建/编写一个inifile但它不起作用.要编写/创建一个inifile我使用这个脚本:
ini := TIniFile.Create('Test.ini');
try
ini.WriteInteger('Test', 'Port', 33645);
ini.WriteBool('Test', 'ListenOnStart', true);
ini.WriteBool('Test', 'UpdateCheck', true);
ini.UpdateFile;
finaly
ini.free;
end;
Run Code Online (Sandbox Code Playgroud)
我收到错误"无法写入Test.ini.",当我以管理员身份执行时,我没有收到此错误,但仍然无效.
我尝试在idtcpclient中接收文本,但它不起作用.这是我在计时器中使用的代码:
procedure TForm1.Timer2Timer(Sender: TObject);
var
receivedtext:string;
begin
if idtcpclient1.Connected = true then
begin
with idtcpclient1 do
begin
if not IOHandler.InputBufferIsEmpty then
begin
try
receivedtext := IOHandler.ReadLn;
finally
if receivedtext = '' = false then
begin
showmessage(receivedtext);
idtcpclient1.IOHandler.InputBuffer.Clear;
receivedtext := '';
end;
end;
end;
end;
end
else
begin
timer2.Enabled := false;
end;
end;
Run Code Online (Sandbox Code Playgroud)
定时器的间隔为8 ms.计时器在连接时自动启用.但是当我发送内容时,我没有收到消息框或错误.我确信我写的数据是因为当我使用时,tclientsocket我会收到它.
我做错了什么?