出学者的问题(30分)

  • 主题发起人 主题发起人 小学生_hjz
  • 开始时间 开始时间

小学生_hjz

Unregistered / Unconfirmed
GUEST, unregistred user!
1.这是一段程序的截取,问划线处的代码是什么意思?怎么用?
procedure TForm1.StringGrid1GetEditMask(Sender: TObject;
ACol,
ARow: Integer;
var Value: String);
begin
Value := '09;0';
-----------------
end;


2.procedure TForm1.UpdateButtonClick(Sender: TObject);
var
I, J: Integer;
begin
for I := 1 to 4do
begin
Chart1.Series [I-1].Clear;
for J := 1 to 5do
Chart1.Series [I-1].Add (
StrToInt (StringGrid1.Cells [J, I]),
'', Chart1.Series [I-1].SeriesColor);
end;
end;

UpdateButtonClick (self);
----------------------------
我知道划线处是一个函数调用可参数用self是为什么?再什么情况下用self?
 
这个地方可以写self,
也可是nil
或者是其他任何对象.
self是TForm1的自身实例引用, delphi编译器会在调用函数的地方自动传入这个东西你是看不到的.
 
第一个划线的地方可以根据col和row判断是哪格的数据,然后判断value值是否合法,如果不合法可以修改value值
UpdateButtonClick那个self是把当前form传进去了让他的代码可以调用,一般控件事件都会给出这个参数来传递自己
其实看你那个UpdateButtonClick的过程并没有调用其第一个参数sender,所以实际给什么都行
UpdateButtonClick (self);或者UpdateButtonClick (nil);都可以
 
第一个划线处,看声明,var Value: String
var表示这个参数是引用参数,你修改了Value的值,相应的就把原来那个变量修改了。
比如我这样调用了:
var a:string;
begin
StringGrid1GetEditMask(self,1,1,a);
end;
程序执行的结果是a='09;0'
 
后退
顶部