Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-06-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Ya que tenemos el programa funcionando seguro no queremos que ingrese alguien sin autorización, pues vamos a hacer el login.
Primero vamos a File, New, Form.
Colocamos en el:
1- AdoQuery (ADLogin).
2- Edit
EUsuario
EClave
2- botones
BtnOk
BtnCancel
Y sus respectivos label indicativos.
Quedaria algo asi:


Lo guardamos con el nombre Flogin y el unit UFlogin.
Ahora para llamar a esta pantalla, le hacemos unos ligeros cambios al form Banco.
En el evento Onformcreate de este añadimos en la primera linea el siguiente codigo, quedaria asi:
Código Delphi [-]
procedure TBanco.FormCreate(Sender: TObject);
begin
    // Muestra la pantalla de Login
   FLogin:=TFLogin.Create(self);
   try
   FLogin.ShowModal;
   finally
   FLogin.Free;
   end;

   DTP1.DateTime:= now; // inicio la fecha al dia de hoy
   Banco.Active := True; // activo la tabla
   Banco.Last;  // le indico que lea el ultimo registro
   SumRet.Active := True; // activo el query
   SumDep.Active := True; // activo el query
   // coloco el resultado de (SumDep - SumRet) en el edit
   ESalTot.Text := FloatToStr((SumDep.Fields[0].AsFloat) - SumRet.Fields[0].AsFloat);
   // establecemos los dbedits como desactivados
   DBNTransac.Enabled := False;
   DBDescrip.Enabled := False;
   DBRetiros.Enabled := False;
   DBDeposit.Enabled := False;
   DBSalAnt.Enabled := False;
   // Deshabilitamos el combobox
   CBTipo.Enabled:= False;
   // Deshabilitamos el navegador
   DBNavigator1.Enabled := False;
   // escondemos los botones, con esto evitamos cometer errores
   BRetiros.Visible := False;
   BDeposito.Visible := False;
end;
Esto le indica al programa que busque el loguin.
Ahora en el evento OnformShow de este mismo (Banco):
Código Delphi [-]
procedure TBanco.FormShow(Sender: TObject);
begin
    If not LoginOK then Close;
end;
Esta indicacion es para que si no esta autorizado no se conecte.

Vamos al form (FLogin):
Siguiendo los mismos pasos que en los ADoquery que tenemos en el form Banco, vamos a clocar esta sentencia sql en el string de ADLogin:
Código SQL [-]
SELECT CodUsuario, Nombre, Clave  FROM Usuarios WHERE
Nombre = nom

Demosle doble clic a FLogin, en el evento OnCreate:
Código Delphi [-]
procedure TFLogin.FormCreate(Sender: TObject);
begin
   Cuenta := 0;
   Usuario := '';
   Nombre := '';
end;

Lo que sigue sera en los eventos OnClick. de los botones.
Demosle doble clic al boton Cancelar:
Código Delphi [-]
procedure TFLogin.BtnCancelClick(Sender: TObject);
begin
   LoginOK := False;
   Close;
end;

Demosle doble clic al boton OK:
Código Delphi [-]
procedure TFLogin.BtnOkClick(Sender: TObject);
begin
   LoginOK := False;
   ADLogin.Parameters.ParamByName('nom').Value:= EUsuario.Text;
   ADLogin.Active:= True;
   EUsuario.Text:= ADLogin.Fields[1].AsString;
   If ADLogin.RecordCount < 1 then
    Begin
       Cuenta := Cuenta + 1;
       MessageDlg('Usuario no encontrado',mtError, [mbOK], 0);
       EUsuario.Text := '';
       EClave.Text := '';
       ADLogin.Active := False;
       If Cuenta = 3 then Close;
    end
   else
       If ADLoginClave.AsString = EClave.Text then
        Begin
          // Usuario := AdoQuery1CodUsuario.AsString;
           LoginOk := True;
           Nombre := ADLoginNombre.AsString;
           ADLogin.Active := False;
           Close;
        end
     else
         Begin
           Cuenta := Cuenta + 1;
           MessageDlg('Clave Inválida',mtError, [mbOK], 0);
           EClave.Text := '';
           ADLogin.Active := False;
           If Cuenta = 3 then Close;
         end;

end;

Vamos a colocar unas variables, aqui:
Código Delphi [-]

var
  FLogin: TFLogin;
  Cuenta : integer;
  Usuario, Nombre : String;
  LoginOK : boolean;

implementation
Este no le he querido comentar mucho para que os familiaricéis con el código, asi aprendemos mejor.
Ahora abrid la tabla, colocar un usuario y clave y probad el programa.
Saludos
Responder Con Cita
  #2  
Antiguo 16-06-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Bueno ahora lo que queda es hacer un par de reportes y listo, para eso haré alguno que otro cambio.
Para que esto no se haga mas grande he decidido hacer los ligeros cambios y colocarlo, en esta dirección: http://terawiki.clubdelphi.com/Delph...niTutorial.zip
El programa se llama (Caral-MiniTutorial. zip)
Este contiene todo el código ademas de la base de datos.
Espero os sirva y le saquéis provecho.
Saludos y suerte

Última edición por ecfisa fecha: 26-04-2016 a las 19:21:15. Razón: actualizar enlace
Responder Con Cita
  #3  
Antiguo 17-07-2007
tenporal tenporal is offline
Miembro
 
Registrado: may 2007
Posts: 28
Poder: 0
tenporal Va por buen camino
Thumbs up Una sugerencia de aplicacion

Saludos Caral, de verdad se agradecen tus ganas de compartir a la comunidad consejos muy utiles para los que se inician en Delphi.

Mi peticion a ti y a los programadores avanzados seria la siguiente:

Realizar una aplicacion paso a paso con las opciones siguientes: materias, profesores, grupos, alumnos. Que la base de datos estuviese en access con el nombre BD, con las siguientes tablas:

TABLA MATERIAS
Campo Tipo Longitud
cvemateria Alfanumerico 5 *campo llave
semestre Alfanumerico 1
materia Alfanumerico 50
*** un ejemplo podria ser 1101, 1, MATEMATICAS

TABLA PROFESOR
campo tipo Longitud
cveprofesor Alfanumerico 3 * campo llave (iniciales)
apellidop Alfanumerico 25
apellidom Alfanumerico 25
nombre Alfanumerico 25
*** un ejemplo podria ser JPL, PEREZ, LOPEZ, JUAN

TABLA GRUPOS
campo tipo longitud
ciclogrupomatprof Alfanumerico 17 *llave compuesta
observaciones Alfanumerico 50
*** un ejemplo podria ser 2007A1020 1101JPL, grupo especial
*** la llave compuesta seria (ciclo-escolar de 5 alfanumericos, grupo de 4 alfanumericos, materia de 5 alfanumericos, profesor de 3 alfanumericos)

TABLA ALUMNOS
campo tipo longitud
cvealumno A 10 *campo llave
ciclo A 5
grupo A 4
cvemateria A 5
cveprofesor A 3
calificacion A 2
observacion A 50

Esas serian las tablas de la base de datos.

Para las opcion de MATERIAS, pudiesemos tener los botones:
Nuevo (agregar una nueva materia, no puede haber 2 repetidas)
Modificar (cambiar los datos de una materia sin cambiar su clave)
Buscar (mostrar los datos de una materia especifica)
Eliminar (Solo se pueden eliminar las materias que no tengan grupos asignados, vease tabla grupos)
Salir (salir de la pantalla de Materias)

Los campos de esta pantalla deben manejarse con los componentes DBEDIT, accesandolos a traves de ADO

Hago esta peticion, por que trate de seguir la aplicacion de Bancos, pero llego el punto en que me perdi y creo que la aplicacion que propongo esta mas facil, espero su respuesta a mi peticion, Gracias por su apoyo.

Atte. Tenporal
Responder Con Cita
  #4  
Antiguo 17-07-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola tenporal
Te aconsejo que empieces la aplicacion que necesitas en un nuevo hilo, no importa si esta bien o mal, lo importante es que la comiences, con tus dudas incluidas.
Puede ser algo como:
Mi Aplicacion para el colegio, o algo asi.
Cuando empieces, ya le trataremos de meter mano, es mucho mejor, asi aprenderas, siguiendo lo que empieces.
Si hago todo yo o alguien mas es como hacer la tarea, no se trata de eso.
Saludos
Responder Con Cita
  #5  
Antiguo 12-08-2007
nachopro nachopro is offline
Registrado
 
Registrado: ago 2007
Posts: 8
Poder: 0
nachopro Va por buen camino
Caral, Excelente... logré conectar con ADO mi ejemplo a MySQL vía OBDC

Me gustaría tener el código fuente de esta aplicación porque hay cosas que se me pierden.... (soy nuevo, 2 días en Delphi) y quiero tenerlas bien claras, y dado que el link no funciona aquí estoy

espero que sigas teniendo la fuente, muchas gracias
Responder Con Cita
  #6  
Antiguo 12-08-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
El ftp del club a tenido ciertos problemas, no te preocupes ya se van a solucionar.
Saludos
Responder Con Cita
  #7  
Antiguo 13-08-2007
nachopro nachopro is offline
Registrado
 
Registrado: ago 2007
Posts: 8
Poder: 0
nachopro Va por buen camino
Caral, se complica mucho si te pido que lo subas a rapidshare o me lo envíes por mail?
Responder Con Cita
  #8  
Antiguo 09-08-2011
Avatar de jose_kira_sk8
jose_kira_sk8 jose_kira_sk8 is offline
Registrado
NULL
 
Registrado: jul 2011
Posts: 9
Poder: 0
jose_kira_sk8 Va por buen camino
Cool

mmm,bueno el tutorial ,pero no podes hacer una base de datos como la gente en access... Ibexpert rules
Responder Con Cita
  #9  
Antiguo 19-04-2010
fsolispa fsolispa is offline
Miembro
 
Registrado: sep 2008
Posts: 28
Poder: 0
fsolispa Va por buen camino
mismo problema pero con mysql

hola, tengo un problema muy similar solo que trabajo con delphi 2010 y mysql, a delphi le instale los componentes de zeoslib, todo trabaja muy bien, solo que quiero utilizar los datos del nombre de usuario y contraseña para que con una tabla pueda activar o desactivar opciones del menu principal, actualmente utilizo el loginprompt en "true".

1.- ¿hay forma de poder rescatar esa información para lo que lo quiero.?
2.- ¿debo hacer un procedimiento similar al tuyo para poder tener esa información?

Espero que la explicación sea entendible, gracias de antemano
Responder Con Cita
  #10  
Antiguo 19-04-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Te aconsejo que hagas un hilo nuevo con tu duda, si esta a mi alcance te ayudo con gusto.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #11  
Antiguo 19-04-2010
fsolispa fsolispa is offline
Miembro
 
Registrado: sep 2008
Posts: 28
Poder: 0
fsolispa Va por buen camino
gracias

gracias te agradezco
Responder Con Cita
  #12  
Antiguo 05-07-2010
marioar marioar is offline
Miembro
 
Registrado: jul 2010
Posts: 11
Poder: 0
marioar Va por buen camino
Una pregunta que debe ser tonta, se puede poner en la direccion de la path del adoconnection la direccion de la aplicacion utilizando por ejemplo ExtractFilePath( Application.ExeName )??
Si se puede, como hago? y si no se puede... que me recomiendan hacer??
Responder Con Cita
  #13  
Antiguo 05-07-2010
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is online now
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.325
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Si, si lo haces por código.
Prueba a generar una cadena de conexión con el Asistente de ADO. Obtendrás un texto similar a este:

Código:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\Archivos de programa\Archivos comunes\Borland Shared\Data\dbdemos.mdb;Persist Security Info=False
Puedes asignar este texto al ADO Connectionpor código y modificarlo para cambiar lo que necesites:

Código Delphi [-]
Conn := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' +
            'c:\Archivos de programa\Archivos comunes\Borland Shared\Data\dbdemos.mdb;' +
            'Persist Security Info=False';
    ADoConnection.ConnectionString := conn;

Y también puedes cambiarlo, por ejemplo, con algo así:

Código Delphi [-]
    FileName := ExtractFilePath(Application.ExeName) + '\Data\MisDatos.mdb';
    Conn := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' +
            FileName + ';' +
            'Persist Security Info=False';
    ADoConnection.ConnectionString := conn;
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #14  
Antiguo 05-07-2010
marioar marioar is offline
Miembro
 
Registrado: jul 2010
Posts: 11
Poder: 0
marioar Va por buen camino
Disculpa la ignorancia, pero, donde pongo el codigo delphi para poder extraer la path de la aplicacion como en el ultimo ejemplo que me diste??
gracias!!
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Mini -Navegador Web eldavi Internet 0 22-03-2007 19:03:47
Delphi para novatos Yomero Varios 1 10-01-2007 21:24:10
Problemas con PHP y Mini Impresora newdelphi7 PHP 6 16-12-2006 05:34:38
Mini Racing Online turminator Varios 2 21-04-2006 01:39:33
Lista de mini imagenes newbery Gráficos 2 21-11-2005 18:16:54


La franja horaria es GMT +2. Ahora son las 09:55:12.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi