变量怎么赋值?请教大家,请先看问题 (50分)

  • 主题发起人 主题发起人 fengfan
  • 开始时间 开始时间
F

fengfan

Unregistered / Unconfirmed
GUEST, unregistred user!
变量怎么赋值?请教大家,请先看问题

一个问题,全局变量,怎样给一个全局变量赋值:

unit Unit2


interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls


type
TForm1 = class(TForm)
Button1: TButton

Button2: TButton

procedure Button1Click(Sender: TObject)

procedure Button2Click(Sender: TObject)

private
{ Private declarations }
public
{ Public declarations }
procedure test2(test:string)

end


var
Form1: TForm1

test:string


implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject)

var
test1:string

begin
test1:='测试';//在这个地方调用下面的函数赋值
test2(test1)

end


procedure TForm1.test2(test: string)

begin
test:=test;//在这里赋值
showmessage(test);//显示结果为 ‘测试’
end


procedure TForm1.Button2Click(Sender: TObject)

begin
form1.Caption:=test;//在这里的显示为空,
end



end.



执行过程为:先按BUTTON1按纽,然后在按BUTTON2按纽,而在这时FORM。
CAPTION则显示为空了。怎么解决啊。 高手帮忙啊。请赶紧帮忙啊。
 
改成这样
procedure TForm1.test2(test: string)

begin
Unit2.test:=test;//在这里赋值
~~~~~~~~
showmessage(test);//显示结果为 ‘测试’
end;
 
formcreate 赋值不行吗
 
接受答案了.
 
谢谢你了,50分是不是太多了。啊。哈哈
 
你的程序不规范哈,一般写程序,不管是自己写或者是在一个项目组里写肯定要遵守一个
规范。想你这个问题一般在规范里就被约定了,比方有如下的约定:
类中的变量加前缀:m_ eg:m_strTest
函数中的参数加前缀:A eg:AstrTest
全局变量加前缀:g_ eg:g_strTest
等等。
这样自然就不会有你这个问题。如果按你这样写,万一一个不注意,程序就容易出错。
而且错误也很难查找!
 
后退
顶部