Hola.
Empecemos por el primer error... quita la función del form Login y declarala como un método de DataModule1:
Código Delphi
[-]
...
uses ..., IBQuery;
...
type
TDataModule1 = class(TDataModule)
IBDatabase1: TIBDatabase;
IBTransaction1: TIBTransaction;
IBQPassword: TIBQuery;
private
public
function LoginAccepted(qy: TIBQuery; const nam, pwd: string): Boolean;
end;
var
DataModule1: TDataModule1;
implementation
function TDataModule1.LoginAccepted(qy: TIBQuery; const nam, pwd: string): Boolean;
begin
qy.Close;
qy.SQL.Clear;
qy.SQL.Add('SELECT * FROM USUARIO');
qy.SQL.Add('WHERE NOMBRE = :NOMBRE');
qy.ParamByName('NOMBRE').AsString := nam;
qy.Open;
Result := not qy.IsEmpty and (qy.FieldByName('CLAVE').AsString = pwd);
qy.Close;
end;
...
Estando la unidad de DataModule1 incluída en el form "Login", llama a la función de este modo:
Código Delphi
[-]
procedure TLogin.btnAceptarClick(Sender: TObject);
begin
if not DataModule1.LoginAccepted(DataModule1.IBQPassword, EditUsuario.Text, EditPassword.Text) then
raise Exception.Create('El usuario o la contraseña son inválidos.');
end;
Saludos