使用过程(Delphi)为标签赋值

使用过程(Delphi)为标签赋值,delphi,view,procedure,dfm,Delphi,View,Procedure,Dfm,我一直在尝试使用过程为标签(由文本框插入)赋值。以下是我目前掌握的情况: 类型 TfrmM8E1=类(TForm) 按钮1:t按钮; txt1:TEdit; lbl1:TLabel; 程序按钮1点击(发送方:ToObject); 程序标签(a1:整数); 过程数据输入(变量a1:整数); 私有的 公众的 结束; 变量 frmM8E1:TfrmM8E1; 实施 {$R*.dfm} 程序TfrmM8E1.按钮1单击(发送方:ToObject); 变量 a:整数; 开始 //调用这两个过程 数据输入(

我一直在尝试使用过程为标签(由文本框插入)赋值。以下是我目前掌握的情况:

类型
TfrmM8E1=类(TForm)
按钮1:t按钮;
txt1:TEdit;
lbl1:TLabel;
程序按钮1点击(发送方:ToObject);
程序标签(a1:整数);
过程数据输入(变量a1:整数);
私有的
公众的
结束;
变量
frmM8E1:TfrmM8E1;
实施
{$R*.dfm}
程序TfrmM8E1.按钮1单击(发送方:ToObject);
变量
a:整数;
开始
//调用这两个过程
数据输入(a);
标签(a);
结束;
过程TfrmM8E1.数据输入(变量a1:整数);
开始
a1:=stroint(frmM8E1.txt1.Text);
//从txt1(一个文本框)接收一个值并将其存储在“a1”中。
结束;
程序TfrmM8E1.标签(a1:整数);
开始
frmM8E1.lbl1.Caption:=IntToStr(a1);
//将a1的值指定给标签
结束;
结束。
一旦程序运行,它不会在我的标签中显示文本框中插入的值

知道它为什么不起作用吗

如果您知道如何使主要思想发挥作用,请在整个过程中为文本框插入的标签指定一个值,太好了!忘记我的代码,让我看看你的:)


否则,如果您知道,或者至少有一点提示,我应该在代码中更改什么,那就更好了

你的代码对我来说很有用,至少和VCL代码一样。这里有很多非公理的东西,比如你通常不应该引用对象方法中的form变量。如果你以后要两张表格呢?或者如果没有设置该变量呢

这样做的惯用方法更像:

procedure TForm1.Button1Click(Sender: TObject);
begin
   Label1.Caption := Edit1.Text;
end;
你可以在那里做一些验证,以确保它是一个数字,比如

Label1.Caption := Validate(Edit1.Text);
然后验证可以是这样的:

function TForm1.Validate(S: String): String;
var I: Integer;
begin
   I := StrToIntDef(S, -1);
   if I = -1 then Result := 'Invalid positive integer.'
   else Result := S;
   end;
举个例子


编辑:单词更正。

我想你的意思是惯用的而不是公理的。你的
验证
很奇怪。最好使用
TryStrToInt
,错误消息提示它检查整数的符号,但它不检查。可能您的意思是
如果TryStrToInt(S,intval)和(intval>0),那么结果:=S else{handle error}
。(请注意,0不是正整数。如果改为使用
intval>=0
,则错误消息应为“无效的非负整数”。)。另外,使用
const
string参数更为惯用。