我声明的过程,想要用到窗体里的控件,还想要有若干输入的参数和返回的参数,怎么声明呢
如果按下面,则在过程里用不起窗体里的控件
procedure searchrule(参数);
var user_str:string;
begin
//
//
end;如果按下面,怎么才能返回值和输入其他值呢
procedure searchrule(Sender: TObject);
var user_str:string;
begin
//
//
end;
如果按下面,则在过程里用不起窗体里的控件
procedure searchrule(参数);
var user_str:string;
begin
//
//
end;如果按下面,怎么才能返回值和输入其他值呢
procedure searchrule(Sender: TObject);
var user_str:string;
begin
//
//
end;
解决方案 »
- 麻烦懂C++跟Delphi的高手看一下下面的C++代码用Delphi该怎么写
- 编辑器:请问有没有直接将字符转换为16进制的函数可用(WIN32),可否举例呢
- ado 如何将blob字段插入另一个blob字段
- 有关查询的问题
- 如何改变DBGIRD的行的颜色?
- 祝各位新年快乐!万事如意! (新年散分,尽管可用粉很少)快来啊,3:30前结帐
- 请问编程高手:安装程序中 ini文件是如何写成的,注册又是如何写成的??? 谢谢那位热心朋友耐心给我讲解好么?
- 关于BatchMove
- 如何使程序只有在关闭操作系统时才关闭
- 好难过!居然无人回答我,是我的问题太难,还是太幼稚了?
- 再问DBGrid中放入checkbox的问题...
- 散分,说说心里话...
procedure searchrule(edt1: TEdit; cb: TComboBox; s: string);
var user_str:string;
begin
edt1.Text := cb.Items.Strings[cb.Items.ItemIndex];
//
其他
//
s:= edt1.Text;
end;
type
myreturn=record
a:string;
b:integer;
end ;
用procedure 是没有返回值的,要用到function
function searchrule(edt1: TEdit; cb: TComboBox; s: string):myreturn;
var user_str:string;
begin
edt1.Text := cb.Items.Strings[cb.Items.ItemIndex];
//
其他
//
s:= edt1.Text;
result.a:=s;
result.b:=2;
end;
这样就可以了,
改成
function TForm1.searchrule(传入参数):传出参数
这样不就ok了!
function myfun(var intA,intB:integer):boolean;
begin
intA:=intA+10;
intb:=intB+20;
end;procedure TForm1.Button1Click(Sender: TObject);
var
ia,ib:integer;
begin
ia:=0;
ib:=0;
myfun(ia,ib);
ShowMessage(Format('%d %d',[ia,ib]));//返回10,20
end;
如果没有规律,可以定义一个结构体来接受当然还可以用procedure ,接受结果的变量当成参数写进去,var关键字来表示是址传递。