自定义函数放在一个窗口里,别的窗口该怎么调用??????
我想把系统PUBLIC变量,自定义函数放在程序的第一个窗口(FLogin)里,自定义函数在别的窗口里面倒是可用FLogin.的方式调用,但是变量在别的窗口却用不了
unit Ulogin;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TFlogin = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Flogin: TFlogin;
Xlanguage:Char;
implementation
Function Xgetlanguage(Str_chs:string;Str_cht:String):String;
Begin
If Xlanguage = 'S' Then
Xgetlanguage:=Str_chs
Else Xgetlanguage:=Str_cht;
End;
procedure TFlogin.Button1Click(Sender: TObject);
begin
Fmain.Visible:=True;
end;
end.
我在第二个窗口里
Xlanguage:=‘S’,//找不到变量??
这是为什么?或许有什么其他方法可以实现我的想法,
大师们,救救一只菜鸟吧
问题点数:20、回复次数:5Top
1 楼qi7(与其临渊羡渔 不如退而结网)回复于 2004-09-04 15:16:24 得分 0
Xlanguage放到public下面;在第二个窗口用Flogin.调用.
或者是不是你在第二个窗口没有引用ulogin文件?Top
2 楼zhongguoshuai(zhongguoshuai)回复于 2004-09-04 15:26:56 得分 0
再第二个窗口的use 加入住窗口的unit1;
可以用unit1.ws(function);Top
3 楼zhongguoshuai(zhongguoshuai)回复于 2004-09-04 15:30:23 得分 20
unit main1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
Tmain = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
function wu:string;
end;
var
main: Tmain;
s:string;
implementation
uses main_frm1;
一下为调用的窗口
unit main_frm1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, StdCtrls,main1;
type
Tmain_frm = class(TForm)
Button1: TButton;
PopupMenu1: TPopupMenu;
Button2: TButton;
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
procedure Tmain_frm.FormCreate(Sender: TObject);
begin
main1.main.wu;
end;
end.
Top
4 楼kikox277()回复于 2004-09-04 15:34:52 得分 0
Function Xgetlanguage(Str_chs:string;Str_cht:String):String; 要先声明
Xlanguage:Char; 要放设为公共变量
第二窗口要unit
Ulogin窗口Top
5 楼leo_0205(其实我学习很努力,但是......)回复于 2004-09-04 16:47:43 得分 0
回复zhongguoshuai
谢谢,不过有一点问题,Function 放在Public后面,编译通不过,这样就可以
type
TForm3 = class(TForm)
Button1: TButton;
private
{ Private declarations }
public
{ Public declarations }
end;
function xgetlanguage(Str_chs:string;Str_cht:string):string;
var
Form3: TForm3;
xlanguage:char;
implementation
调用时:
procedure TForm2.Button2Click(Sender: TObject);
begin
If Radiobutton1.Checked Then
Unit3.xlanguage:='S'
Else
Unit3.xlanguage:='T';
label1.Caption:=unit3.xgetlanguage('CHS','CHT');
end;
Top




