- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 super 新手,并尝试编写以下代码,将每个 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;
我做错了什么?
最佳答案
以下是我能看到的错误:
Edit
赋值。TEdit
拥有的组件为零。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
声明。在首先使用 is
运算符检查组件的类型之后,我们必须将组件转换为 TEdit
类型的引用。
只要表单拥有在其中找到的所有编辑,这种方法就会起作用。但是,如果您动态创建控件,或者如果您使用框架或父窗体,那么这种基于通过 Components[]
的所有权的方法将不会产生所有控件。在这种更复杂的情况下,您需要使用 ControlCount
和 Controls[]
来使用父/子关系进行迭代。
关于delphi - 如何为每个 TEdit 设置特定的文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49192967/
我正在为表单上的 tedit 对象定义自定义样式。 在样式编辑器中,我向背景属性添加了一个tRectangle,将其Align 属性设置为Client,设置填充和描边颜色。然后我保存了样书,tedit
我想在TEdit中格式化##.###.###-#,我使用以下代码: procedure TfrmPropiedad.edtRUTChangeTracking(Sender: TObject); var
我希望使用 VCL 和 Delphi 10+ 在 TEdit 或 TMemo 控件中看到彩色表情符号。 可以吗? 输入的文字: 👨🏼🎤👩🏾👩🏼👧🏻👦🏿 我看到的: 我想看
我有一个由两个 TComboBox 组成的表格和一个 TEdit控件,我希望能够更新 TEdit 中的单词使用组合框中的值进行控制,但不太确定如何使其工作。 例子: 组合框 #1 包含以下项目:sue
我是 super 新手,并尝试编写以下代码,将每个 TEdit.Text 设置为代码中提到的一个 procedure TForm2.Button1Click(Sender: TObject); var
我正在尝试编写一个数独求解器,我想控制 81 个 TEdit 控件作为数组,但它们的名称是 Edit1、Edit2、Edit3 而不是 Edit[1]、Edit[2] 等 我不想为所有 81 个控件分
这个问题不太可能对任何 future 的访客有帮助;它只与一个较小的地理区域、一个特定的时间点或一个非常狭窄的情况相关,通常不适用于全世界的互联网受众。如需帮助使此问题更广泛适用,visit the
有什么办法可以添加placeholder文本要编辑? 我唯一的想法是始终在其 OnChange 事件中手动设置给定 edit 的颜色和文本,但这对我来说似乎有点乏味。 还有其他建议吗? 最佳答案 您正
我想将我的 TEdit 的 Texthint 更改为灰色。 我已经找到了这个https://stackoverflow.com/a/31550017/1862576并尝试通过 SendMessage
如何添加仅接受数字的 TEdit?我搜索信息但没有任何帮助。 我需要一个不接受任何字母或字符串的TEdit。 procedure TForm1.Edit1KeyPress(Sender: TObjec
当用户单击 TEdit1 或单击选择其中的某些文本时,如何选择 TEdit1 的所有文本 最佳答案 执行超出 TEdit 控件默认行为的任何操作都可能非常危险。您的用户知道标准 Windows 控件的
我想创建一个编辑框,用户必须在其中输入密码。当他们输入密码时,我希望不显示该字符,而是显示 *。是否有任何属性可以设置来执行此操作,我知道如何将 TEdit 设置为在输入时保持空白,但我不希望这样做。
TEdit(或 TCombo、TButtonedEdit)中的文本始终与顶部对齐。我还没有找到任何可以改变对齐方式的属性。通常这不是问题,除非我想设置更大的高度。 我用谷歌搜索了一下。有一些解决方案可
我想使用与默认不同的 Font.Color 绘制一段 TEdit.Text。有没有例子如何做到这一点? 我正在尝试做这样的事情: 注意:这张截图只是一个毛茸茸的草稿,但它让我相信什么问题是可以解决的。
我想在 Paintbox 中绘制 TEdit 的主题边框。该代码必须在 Windows Vista 和 7 下运行。我已尝试以下操作。它只能在 Windows XP 下运行。 var Detail
我有一个表单 TForm1,其中包含 5 个 TEdit 和 2 个 TBitBtn。 我还需要该程序,以便在 BitBtn1Click 上的 Edit1 和 Edit2 中输入数字数据后,Edit1
我在 Delphi 中编写代码时遇到了问题。也就是说,我无法访问组件,即使它们已声明并且我在上面的代码中使用了它们(之前在过程中,现在我尝试在函数中使用它们 - 也许这就是原因,我不知道,我不擅长De
如果用户使用屏幕阅读器(例如 Microsoft 讲述人),并且他们的焦点进入文本框: 他们听到的只是: Editing text 同时在可访问的应用程序中, 例如 Microsoft 文件资源管理器
创建一个简单的 FireMonkey 移动应用。 向表单添加 TEdit 字段。 分配 OnApplyStyleLookup 事件 编写以下代码 procedure TForm1.Edit1Apply
很容易获得 TEdit 控件的外部尺寸,但其中包括斜角(或框架,取决于 Ctrl3d 是否为真)。我想找出TEdit的白色输入区域的尺寸和位置。 我尝试了 TEdit.ClientRect,但如果 C
我是一名优秀的程序员,十分优秀!