请帮助解决以下问题:
错误:调用类过程行的实际参数太多。
主要单位:
procedure TForm1.btnbtbtn1Click(Sender: TObject);
var
bwagwoord,bemail :boolean ;
epos,wagwoord,safvoer :String ;
begin
Form2.qryreg.Close;
form2.qryreg.SQL.Text := 'select * from registertb ';
form2.qryreg.open ;
epos := edt1.text ;
wagwoord := edt2.text ;
safvoer := ' ';
bemail :=form2.qryreg.locate ('Email',epos,[]);
bwagwoord := form2.qryreg.Locate('Wagwoord',wagwoord,[]);
Login.create(epos,wagwoord,bepos,bwagwoord);
Login.toetslog(safvoer);
showmessage(safvoer);
end;
CLASS:
unit cls_login;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, StdCtrls, Buttons, math, ExtCtrls;
type
Tlogin = class(Tobject)
private
Fepos :string ;
fwagwoord :string ;
Fbepos : Boolean;
fbwagwoord : Boolean;
Constructor Create(epos,wagwoord:String;bepos, bwagwoord: boolean);
procedure toetslog(var safvoer :string );
public
end;
implementation
{ Tlogin }
constructor Tlogin.Create(epos, wagwoord: String;bepos, bwagwoord: boolean);
begin
fepos := epos ;
fwagwoord := wagwoord ;
fbepos := bepos;
fbwagwoord := bwagwoord;
end;
procedure Tlogin.toetslog( var safvoer :String );
begin
if (fbepos = True) and (fbwagwoord = True)
then
begin
safvoer := 'Welcome '+' '+fepos
end
else
safvoer := 'SORRY VERKEERD HEHE'+' '+fwagwoord ;
end;
end.
答案 0 :(得分:4)
好的,我一直在浏览你格式错误的代码,我想我发现了问题。但是,你的问题并不容易:正如我所说,你的代码显示格式不佳,错误信息也可能是错误的。如果代码已经格式化,并且字面上报告了错误,则问题会非常明显。
您的构造函数TLogin.Create()
和您的方法TLogin.toetslog()
都是私有的。如果您尝试从其他单元呼叫它们,则无法访问它们。因此,从主单元中,唯一有效的构造函数是Create without parameters。如果您使用参数调用Create,则会收到错误"Too many parameters on call to..."
或类似错误。
这样做:
type
TLogin = class(TObject)
private
Fepos: string;
Fwagwoord: string ;
Fbepos: Boolean;
Fbwagwoord: Boolean;
public
constructor Create(epos, wagwoord: string; bepos, bwagwoord: Boolean);
procedure ToetsLog(var safvoer: string);
end;
以这种方式调用构造函数:
Login := TLogin.Create(epos, wagwoord, bepos, bwagwoord);
答案 1 :(得分:2)
很难将错误消息与代码匹配,但我认为您正在使用/创建Login对象错误。
//Login.create(epos,wagwoord,bepos,bwagwoord);
Login := TLogin.create(epos,wagwoord,bepos,bwagwoord);