totote
04-01-2008, 22:18:13
Buenas gente tengo una duda, tengo un proyecto, el cual tiene una clase llamada TUsuarioOnline con sus funciones y un constructor, esta clase la quiero hacer global a todo el proyecto, entonces en defino una instancia de la clase en el source del proyecto, despues intento crear el objeto desde un formulario, pero no me deja, que puedo hacer, aca les dejo el codigo de lo que hice.
Proyecto:
program pCorrelatividades;
uses
Forms,
uLogin in 'uLogin.pas' {fLogin},
udmCorrelatividades in 'udmCorrelatividades.pas' {dmC: TDataModule},
uCorrelatividades in 'uCorrelatividades.pas' {fCorrelatividades},
uClases in 'uClases.pas';
{$R *.res}
var
usuario_online: TUsuarioOnline;
begin
Application.Initialize;
Application.MainFormOnTaskbar := True;
Application.CreateForm(TfCorrelatividades, fCorrelatividades);
Application.CreateForm(TdmC, dmC);
Application.Run;
end.
fLogin:
procedure TfLogin.btAceptarClick(Sender: TObject);
var
user: string;
Nivel: integer;
begin
if (edUser.Text <> '') and (edPass.Text <> '') then
begin
dmC.cdsLogin.Close;
dmC.cdsLogin.Params.ParamByName('user').AsString:= edUser.Text;
dmC.cdsLogin.Params.ParamByName('pass').AsString:= edPass.Text;
dmC.cdsLogin.Open;
if dmC.cdsLogin.RecordCount > 0 then
begin
user:= edUser.Text;
Nivel:= dmC.cdsLogin.FieldByName('nivel').AsInteger;
usuario_online:= TUsuarioOnline.Create(user,Nivel); // <-- aca da error que no reconoce usuario_online
end
else
messagedlg('Datos incorrectos, por favor vuelva a intentar',mtInformation,[mbOk],0);
end
else
messagedlg('Campos incompletos',mtError,[mbOk],0);
end;
uClases:
unit uClases;
interface
type
TUsuarioOnLine = class
private
Usuario: String;
Nivel: integer;
public
constructor Create(nombre: string;Nvl: integer);
function GetUsuario():string;
function GetNivel():integer;
end;
implementation
{ TUsuarioOnLine }
constructor TUsuarioOnLine.Create(nombre: string; Nvl: integer);
begin
Usuario:= nombre;
Nivel:= Nvl;
end;
function TUsuarioOnLine.GetNivel: integer;
begin
result:= Nivel;
end;
function TUsuarioOnLine.GetUsuario: string;
begin
result:= Usuario;
end;
end.
Espero que me puedan ayudar Saludos
Proyecto:
program pCorrelatividades;
uses
Forms,
uLogin in 'uLogin.pas' {fLogin},
udmCorrelatividades in 'udmCorrelatividades.pas' {dmC: TDataModule},
uCorrelatividades in 'uCorrelatividades.pas' {fCorrelatividades},
uClases in 'uClases.pas';
{$R *.res}
var
usuario_online: TUsuarioOnline;
begin
Application.Initialize;
Application.MainFormOnTaskbar := True;
Application.CreateForm(TfCorrelatividades, fCorrelatividades);
Application.CreateForm(TdmC, dmC);
Application.Run;
end.
fLogin:
procedure TfLogin.btAceptarClick(Sender: TObject);
var
user: string;
Nivel: integer;
begin
if (edUser.Text <> '') and (edPass.Text <> '') then
begin
dmC.cdsLogin.Close;
dmC.cdsLogin.Params.ParamByName('user').AsString:= edUser.Text;
dmC.cdsLogin.Params.ParamByName('pass').AsString:= edPass.Text;
dmC.cdsLogin.Open;
if dmC.cdsLogin.RecordCount > 0 then
begin
user:= edUser.Text;
Nivel:= dmC.cdsLogin.FieldByName('nivel').AsInteger;
usuario_online:= TUsuarioOnline.Create(user,Nivel); // <-- aca da error que no reconoce usuario_online
end
else
messagedlg('Datos incorrectos, por favor vuelva a intentar',mtInformation,[mbOk],0);
end
else
messagedlg('Campos incompletos',mtError,[mbOk],0);
end;
uClases:
unit uClases;
interface
type
TUsuarioOnLine = class
private
Usuario: String;
Nivel: integer;
public
constructor Create(nombre: string;Nvl: integer);
function GetUsuario():string;
function GetNivel():integer;
end;
implementation
{ TUsuarioOnLine }
constructor TUsuarioOnLine.Create(nombre: string; Nvl: integer);
begin
Usuario:= nombre;
Nivel:= Nvl;
end;
function TUsuarioOnLine.GetNivel: integer;
begin
result:= Nivel;
end;
function TUsuarioOnLine.GetUsuario: string;
begin
result:= Usuario;
end;
end.
Espero que me puedan ayudar Saludos