Delphi - AYUDA CON ESTO PLEASEEE

 
Vista:

AYUDA CON ESTO PLEASEEE

Publicado por JP (1 intervención) el 14/12/2004 14:07:37
tengo un programa con 26 forms y la idea es bloquear pantallas(forms) para que puedan acceder solo personas autorizadas, cree una tabla usuario, con 3 campos nombre_usuario, codigo_usuario y prioridad.
funcionan a la perfeccion el acceso utilizando nombre_usuario y codigo_usuario. la idea de dejar la variable prioridad es para determinar los accesos, pero esto no se muy bien como implementarlo

ej:

if (table1.prioridad=1) then
form1.visible:=true; etc...

el problema es que no se muy bien como es la sintaxis de esta solución,considerando la posibilidad de una solucion mejor o mas facil.
gracias

Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:AYUDA CON ESTO PLEASEEE

Publicado por skull leader (284 intervenciones) el 14/12/2004 15:44:25
lo que puedes hacer, es establecer los permisos por pantalla a cada usuario cuando accese el usuario.
algo asi:
(supongamos que lees la propiedad desde tu tabla
permiso := Table1.FieldByName('prioridad').AsInteger;
case permiso of
1: begin
form1.visible := true;
....
end;
2 : begin
form2.visible := true;
end;
end;

y segun los casos que ocupes, el juego de formas que debes visualizar.

no es tan dificil, claro, segun lo que yo entendi
espero te sirva
saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:AYUDA CON ESTO PLEASEEE no funciona..

Publicado por JP (6 intervenciones) el 14/12/2004 16:53:27
hola trate de hacer lo que dijite pero no funciono, mira explio detallado lo que tengo..
tengo 25 forms de los cuales el 1 es el principal y el 10 es el de entrada el de acceso (es con el cual inicia cuando ejecutamos), para entrar al form1 y ver el menu con todas aplicaciones quehay (ingresos, modificaciones, ayuda, etc. ese es elmenu),
la validacion de usuario esta correcta pero al momento de querer restringir la entrada a las aplicaciones que contiuene el form 1 no podemos, la instruccion la ejecuto en el form 10 al lograr el ingreso, esto esta correcto o se debe hacer en el form 1 las restricciones..
para habilitar y desabilitar ??? eso es lo que nose.. por que si lo ago en el form 10 no pasa nada no me muestra errores pero no restringe las entradas tengo acceso a todo...

gracias por layauda..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:AYUDA CON ESTO PLEASEEE no funciona..

Publicado por skull leader (284 intervenciones) el 14/12/2004 17:10:58
tuve que leerlo 2 veces para entender.
veras, si tu form1 es tu principal, y tu form10 es tu forma de login, lo ideal es cuando corres el programa, que se ejecute la form1, y antes de que se muestre la form1, mostrar el form10
haces el acceso desde el form10, y recuperas el acceso, con el acceso recuperado, asignas los permisos, a cada pantalla o elemento del menu, segun como lo manejes.
cuando hayas terminado de asignar los permisos, cierras el form10, para que continue la ejecución del form1, ya con los permisos establecidos.
nota: el form10 tiene que estar en modal para que puedas hacer esto sin que accesen al resto de las pantallas usuarios que no tienen que hacer en esas pantallas que quieres proteger.

digamos, en el create de tu form1
procedure TForm1.OnCreate(Sender: TObject);
begin
Form10 := TForm10.Create(Self);
Form10.ShowModal;
Form10.Free;
end;

y en tu boton "Aceptar" en tu form10, digamos algo asi:
procedure TForm10.AceptarClick(Sender: TObject);
begin
//accesas
//estableces los permisos, lo que te di en mi post pasado,
//es aqui donde va
Close;
end;

si no fui claro, trato de explicarlo nuevamente, a mi esto me ha funcionado un par de veces, las veces que he tenido que manipular usuarios con permisos a nivel pantalla

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:AYUDA CON ahora muestro el codigo para ver erro

Publicado por JP (1 intervención) el 14/12/2004 18:26:43
en el form 10 boton aceptar

if (edit1.text = '') then begin
Form21.showmodal;
exit; end;
if (edit2.text = '') then begin
Form22.showmodal; exit; end;
query1.Close;
query1.Params[0].Value := Edit1.text;
query1.Params[1].Value := StrToInt(edit2.text);
query1.Open;
If query1.eof then
begin
Showmessage('clave o nombre de usuario incorrecto');
end
Else
begin
permiso:=table1.fieldbyName('prioridad').asinteger;
case permiso of
1: begin
Form1.visible:= true;
form2.visible:=true;
Form3.visible:=false;
end;
2:begin
form1.visible:= true; form2.visible:=false ; form3.visible:= true;
end;
end;
end.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:AYUDA CON ahora muestro el codigo para ver erro

Publicado por skull leader (284 intervenciones) el 14/12/2004 18:56:11
que intentas hacer con esto:
if (edit1.text = '') then begin
Form21.showmodal;
exit;
end;
if (edit2.text = '') then begin
Form22.showmodal;
exit;
end;
?
si puedo entender que hace tu codigo, pero no entiendo la idea de que quieres hacer con el
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:AYUDA CON ahora muestro el codigo para ver erro

Publicado por jp (6 intervenciones) el 14/12/2004 19:16:32
lo que hace showmodel ese es que no me gustaba los mesajes del showmessage y cree un form para que enviara un mensaje es eso solamente lo que sale en el from ese es que debe ingresar la clave y en otro que debe ingresar el nombre de usuario en form1 (prpncipal) tengo
procedure TForm1.Cliente1Click(Sender: TObject);
begin
Form2.showmodal
end;
procedure TForm1.Documento1Click(Sender: TObject);
begin
form3.Showmodal
end;
procedure TForm1.Cliente2Click(Sender: TObject);
begin
form4.showmodal
end;
procedure TForm1.Documento2Click(Sender: TObject);
begin
form5.showmodal
end;
procedure TForm1.Historial1Click(Sender: TObject);
begin
Form8.showmodal
end;
procedure TForm1.Salir1Click(Sender: TObject);
begin
Form19.showmodal
end;
procedure TForm1.Parmetros1Click(Sender: TObject);
begin
Form11.showmodal;
end;
procedure TForm1.Parmetros2Click(Sender: TObject);
begin
Form12.showmodal;
end;
procedure TForm1.Ayuda1Click(Sender: TObject);
begin
form15.showmodal;
end;
procedure TForm1.Acercade1Click(Sender: TObject);
begin
Form14.showmodal;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
form19.showmodal;
end;
procedure TForm1.hola1Click(Sender: TObject);
begin
Form20.showmodal;
end;
procedure TForm1.Documentos1Click(Sender: TObject);
begin
Form6.showmodal;
end;
end.
pero marca error en memoria no entiendo que pasa?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:AYUDA CON ahora muestro el codigo para ver erro

Publicado por skull leader (284 intervenciones) el 14/12/2004 22:27:26
no has tomado en cuenta en hacer tu aplicación mas dinamica?
crear las formas cuando las necesites y destruirlas cuando ya no sean necesarias??
eso consume menos memoria

esto hazlo de la siguiente forma
Form2 := TForm2.Create(Self);
Form2.ShowModal;
Fomr2.Free;

antes de que heches a andar esto, ve a Project->Options y veras la lista completa de tus forms, las que no necesites que se cargen desde el inicio del programa, pasalas y Aviailable Forms y cuando intentes accesar a ellas haz lo que indico arriba
en cuanto al problema inicial, creo que es cosa de que te organices más

pero ya sabes que estamos aqui para ayudarte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar