gpt4 book ai didi

Delphi 无法从 TEdit 获取文本

转载 作者:行者123 更新时间:2023-12-03 14:53:31 26 4
gpt4 key购买 nike

我在 Delphi 中编写代码时遇到了问题。也就是说,我无法访问组件,即使它们已声明并且我在上面的代码中使用了它们(之前在过程中,现在我尝试在函数中使用它们 - 也许这就是原因,我不知道,我不擅长Delphi)。我做了一些屏幕,让它看起来更清晰。看看吧。

http://imageshack.us/photo/my-images/90/weirddelphi1.png/

http://imageshack.us/photo/my-images/837/weirddelphi2.png/

http://imageshack.us/photo/my-images/135/weirddelphi3.png/">

正如您在第一个屏幕上看到的,我收到编译器错误。它说该组件不存在,但在第三个屏幕上您可以看到该组件存在。在第二个屏幕上,我什至可以使用此组件(可以成功调用代码完成,但如果我尝试在 secondaryFunction 的范围内调用它,我会收到如下错误:“由于源代码中的错误,无法调用代码完成” - 但错误到底是什么?! )。如果我注释掉引用 Edit7 和 Edit8 的这两行,我就可以毫无问题地运行该程序。我真的不知道出了什么问题,如果你们能给我一些建议,我将不胜感激。我不想在这里发布整个代码,因为它需要大约 300 行,但是如果你需要知道其他东西来解决这个问题,那么问我会告诉你..

我没有足够的声誉点来发布 2 个以上的超链接,因此您必须对最后一个链接进行“复制和粘贴”:D

最佳答案

问题在于 Edit7TForm1 类的一部分。无法通过 TForm1 外部的名称访问 Edit7。因此,您可以使用全局 Form1 变量,然后执行

function secondFunction(x: extended): extended;
var
paramA, paramB: extended;
begin
paramA := StrToFloat(Form1.Edit7.Text);
paramB := StrToFloat(Form1.Edit8.Text);

Result := paramA + paramB * sin(x);
end;

或者您可以将 secondFunction 设为 TForm1 类的一部分:

function TForm1.secondFunction(x: extended): extended;
var
paramA, paramB: extended;
begin
paramA := StrToFloat(Edit7.Text);
paramB := StrToFloat(Edit8.Text);

Result := paramA + paramB * sin(x);
end;

但是您需要在 TForm1 类的声明中声明 secondFunction,例如

TForm1 = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
function secondFunction(x: extended): extended;
end;

在单元的开头。

关于Delphi 无法从 TEdit 获取文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5929340/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com