如何为每个TEdit设置特定的文本?

mKed

我是超级新手,并尝试编写以下代码,将以下代码设置TEdit.Text为代码中提到的每个代码

procedure TForm2.Button1Click(Sender: TObject);
var
  i : integer;
  Edit : TEdit;
begin
  for i := 0 to Edit.ComponentCount - 1 do
  begin
    with Edit.Components[i] do
    begin
      Text := 'Done';
    end;
  end;
end;

我究竟做错了什么 ?

戴维·赫弗南

这是我可以看到的错误:

  1. 您永远不会为分配值Edit
  2. 通常,表单拥有所有组件,因此aTEdit将拥有零个拥有的组件。
  3. Edit.Components[i]TComponent没有Text属性的类型如果您的代码可以编译,那么Text实际上就是形式的代码。从这一点上您应该学习的教训是永远不要再使用with了。

您应该使用以下代码解决此问题:

procedure TForm2.Button1Click(Sender: TObject);
var
  i: Integer;
  Edit: TEdit;
begin
  for i := 0 to ComponentCount-1 do begin
    if Components[i] is TEdit then begin
      Edit := TEdit(Components[i]);
      Edit.Text := 'Done';
    end;
  end;
end;

注意,这里我们使用ComponentCount,并Components[]从形式本身。我们删除了邪恶的with言论。TEdit在首先使用is运算符检查组件的类型之后,我们不得不将组件转换为type的引用

只要表单拥有在其中找到的所有编辑内容,此方法便会起作用。但是,如果您动态创建控件,或者使用框架或父窗体,则基于所有权通过的这种方法Components[]将不会产生所有控件。在这种更复杂的情况下,您需要使用ControlCount来使用父/子关系进行迭代Controls[]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何为句子中的特定单词设置文本颜色?

如何为每个TreeViewItem设置事件?

如何为每个膨胀的EditText设置ID?

如何为数组的每个元素设置状态

如何为每个Int设置限制

如何为本地宏中的每个文件设置特定的文件顺序

在Python 3的tkinter中使用循环时,如何为每个小部件设置特定功能?

如何为饼图的每个切片设置特定颜色?

如何为JLabel设置禁用的文本颜色?

如何为 GtkTextView 设置最大文本宽度?

如何为按钮内的文本设置动画

如何为输入标签设置文本高度?

如何为特定进程设置内存限制?

如何为特定goroutine设置断点?

如何为特定的SQL查询设置超时?

如何为特定文件或目录设置别名?

如何为特定的xib设置自动版式?

如何针对ACTION_SEND意图过滤特定应用(并为每个应用设置不同的文本)

如何为每个循环导出文本文件?

如何为列表中的每个项目添加文本视图?

如何为 DOM 中的每个元素添加不同的文本

如何为每个标志木制对象添加文本?

如何为标题中的每个符号设置样式

如何为Azure中的每个分支设置不同的管道

如何为每个 StreamListener 的 ConcurrentKafkaListenerContainerFactory 设置并发(或其他配置)

如何为 OkHttp 中的每个请求设置代理?

如何为每个资源设置随机休息时间?

如何为每个类实例设置唯一约束?

如何为每个绑定Spring Cloud Kafka流设置ValueSerde