如何在另一个应用程序窗口中读取列表框项?我可以得到窗口的句柄,但我不知道访问其中的组件的明确方法.
我正在编写一个程序来通过局域网计算机传输文件,我一直在搜索Delphi中的文件传输方法.我发现UDP是一个很好的解决方案,但是有一个问题:在每个示例或文章中我发现服务器程序旁边都有一个客户端程序,但我的程序必须向/从网络中的每台计算机发送和接收,没有特定的服务器或客户端,像p2p,我不想让计算机服务器和另一个客户端,我该怎么办?我也搜索了Indy文章,它也在服务器/客户端模式下工作(据我所知).

希望问题足够清楚
我有一个包含10,000个项目和许多重复项目的列表框!我想把它保存到没有重复项目的文件(一个项目而不是所有副本!)并且我使用这种方式:
Function TMain.List_ExistsIn(ListBox_NAme: TListBox; EParameter: String): Integer;
Var
i: Integer;
Begin
EParameter := LowerCase(EParameter);
Result := -1;
For i:=0 To ListBox_Name.Items.Count - 1 Do
If EParameter = Lowercase(ListBox_Name.Items[i]) Then Begin
Result := i;
Break;
End;
End;
Run Code Online (Sandbox Code Playgroud)
我使用上面的代码来检测现有项目并按照以下步骤保存它:
Procedure TMain.MakeList(ListBox_Name: TListBox; FileName: String); //================
Var
i: Integer;
Temp_ListBox: TListBox;
Begin
Temp_ListBox := TListBox.Create(Main);
With Temp_ListBox Do Begin
Parent := Main;
Clear;
For i:=0 To ListBox_Name.Count - 1 Do
If Main.List_ExistsIn(Temp_ListBox, ListBox_Name.Items[i]) = -1 Then
Items.Add(ListBox_Name.Items[i]);
Items.SaveToFile(FileName);
Free;
End;
End;
Run Code Online (Sandbox Code Playgroud)
但它需要很长时间才能继续.有没有更好更快的方法?谢谢.
我编写了一个使用OLE的程序,它工作正常,直到我添加了一些对我的程序很重要的组件,之后我的程序在开始使用OLE时遇到问题并引发此异常:
"EOleSysError
No more threads can be created in the system"
Run Code Online (Sandbox Code Playgroud)
有没有办法请求更多的线程或免费使用的线程或类似的东西?怎么能解决这个问题?谢谢.
我在互联网上搜索了如何插入图片RichEdit.我只发现插入TImageRichedit或其他第三部分组件为我做.我不想使用其他组件或插入TImageRichEdit.
有没有其他方法可以做到这一点?
我想插入它,所以我可以使用段落操作,如对齐(插入TImage不提供这个,因为我在示例中找到并测试,我错了吗?).我想写一些类似于TJVRichEdit(在JVCL包中)发生的事情,在Richedit中重新调整大小的图片可以被忽略.
我正在使用Delphi 7,我编写了一个从用户那里获取一些信息的程序,它将来自几个编辑框和备忘录的信息以及备忘录中的其他输入组件组合在一起.如何将此备忘录另存为UTF 8文本文件?我从上一个程序的用户那里收到了一些没有utf问题解决方案的文件,现在,当我打开输出文件时,我看到???? (如你所知!)而不是不同的语言字符,这些不可恢复,是吗?
很短的时间,我问了一个关于排序表的问题,Tim Jarvis先生回答我很好.我搜索了他给出的关键词并在本网站找到了这个程序.但是,当我使用此过程时,错误"表忙"被提升.我怎么解决这个问题?谢谢.
我有一个列表框并向其添加项目,项目是文件的地址,项目是在一些进程后添加的,它们是这样插入的:
Listbox_Browser.Items := myItems;
Run Code Online (Sandbox Code Playgroud)
因此,我不是逐个添加它们我在插入ti列表框时无法检查它们,我试图在OnDraw中检查它们并使用如下代码:
Try
FileOpenandP(Listbox_Browser.Items[Index]);
Except
ListBox_Browser.Items.Delete(Index);
End;
Run Code Online (Sandbox Code Playgroud)
但我得到错误"列表索引超出界限",解决方案是什么?