Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-06-2008
Avatar de kbaby
kbaby kbaby is offline
Miembro
 
Registrado: oct 2007
Ubicación: Granada
Posts: 178
Poder: 19
kbaby Va por buen camino
Cita:
Empezado por MAXIUM Ver Mensaje
Si ingreso un usuario nulo, puedo entrar incluso sin pass.

Preparando la v3.0

No entiendo eso que me dices Si cuando le das a ingresar, lo que hace es comprobar que el Nombre, Apellidos y Contraseña coincidan con los items. Si es así se abre tu usuario :S.

Cita:
Empezado por MAXIUM Ver Mensaje
Quítale la propiedad maximizar a la ventana

Preparando la v3.0
¿Tiene esa propiedad? ¿Cuándo? ¿Cómo se que la tiene? Es que nunca vimos en el colegio esa propiedad :/
Responder Con Cita
  #2  
Antiguo 29-06-2008
Avatar de kbaby
kbaby kbaby is offline
Miembro
 
Registrado: oct 2007
Ubicación: Granada
Posts: 178
Poder: 19
kbaby Va por buen camino
Red face

Bueno, anoche y esta mañana he estado pensando y dándole vueltas al asunto. Como me venían muchas ideas, cojí un boli y papel y me puse a hacer un esquema de como quiero que quede la "V. 3.0" .

He pensado en lo que me dijo Fenareth... que le gustaría tener un historial para ver sus progresos (o no progresos jaja) en la dieta. Entonces pensé en la tabla que tengo. Podría hacer lo siguiente.

Cuando un usuario empieza desde 0 no tiene ningún IMC realizado. Entonces la tabla nueva sería:

Nombre | Apellidos | Usuario* | Fecha | IMC

Usuario*
: He puesto en la V 3.0 usuario porque a la hora de ingresar, es molesto estar poniendo tantos datos... así que un usuario y contraseña y listo.

Cuando el usuario vayá a realizar su segundo cálculo del IMC... tendrá que ingresar la nueva fecha, su peso y su altura. Cuando le de a "Guardar IMC", este botón hará lo siguiente:

1º: Buscar en el ListBox el Usuario y Contraseña (que estarán consecutivos, aunque en la tabla no se muestra la contraseña).
2º: Quedará lo siguiente:

Nombre | Apellidos | Usuario' | Fecha-1 | IMC-1
Nombre' | Apellidos' | Usuario' | Fecha-2 | IMC-2

Osea, lo que va a hacer es volver a poner el nombre, los apelidos y el usuario de la persona. Seguido, pondrá la segunda fecha-2 que la obtendrá del edit en el que tiene que ponerla al hacer su IMC. Y El IMC-2 lo obtendrá del resultado obtenido.

¿Qué dificultades tengo?

Bueno yo creo que si me pongo puedo sacar todo... pero hay una cosa... para que cuando el usuario vuelva a abrir su sesión y le salga todo el historial... eso no se hacerlo. A ver, me explico mejor. El ListBox inicial era:

ListBox
-------
PEPE
LOPEZ LOPEZ
MANCHEGO
123456
18/05/2008
22
SARA
LOPEZ LOPEZ
COSMOPOLITA
121212
24/05/2008
26

Ese puede ser el ListBox inicial. Pero yo lo que quiero es que cuando PEPE se haga su segundo IMC el LISTBOX quede así:

ListBox
-------
PEPE
LOPEZ LOPEZ
MANCHEGO
123456
18/05/2008
22
PEPE
LOPEZ LOPEZ
MANCHEGO
123456
19/05/2008
21
SARA
LOPEZ LOPEZ
COSMOPOLITA
121212
24/05/2008
26

Lo que quiero es que se añada la información pero nunca al final. Creo que hay que hacer eso para que funcione. Aunque también si se agrega al final osea el ListBox quedaría:

ListBox
-------
PEPE
LOPEZ LOPEZ
MANCHEGO
123456
18/05/2008
22
SARA
LOPEZ LOPEZ
COSMOPOLITA
121212
24/05/2008
26
PEPE
LOPEZ LOPEZ
MANCHEGO
123456
19/05/2008
21

También puede encontrar a PEPE y poner en la tabla sus dos IMC ¿no?.



Pensando en Delphius... sobre el cifrado de contraseñas, pensé que para no complicarme... pues no mostraré en la celda la contraseña y así es más rapido

Me gustaría hacer una pregunta. La imagen de fondo es un elemento... ¿yo puedo hacer que cambie cuando el usuario inicie sesión? Osea, la Imagen1 se pondría Visible-False y la Imagen2 se pondría Visible-True.

Bueno xD Espero respuestas, voy a seguir en Delphi.
Responder Con Cita
  #3  
Antiguo 29-06-2008
Avatar de kbaby
kbaby kbaby is offline
Miembro
 
Registrado: oct 2007
Ubicación: Granada
Posts: 178
Poder: 19
kbaby Va por buen camino
Se me olvidó deciros. Me gustaría aprender como ponerle iconos a mis Button. Es que nunca me han enseñado nadie. Me gustaría ponerle iconitos :P

Haciendo el programa se me a venido otra duda...

Para que el usuario no tenga que estar ingresando la fecha con la que hace cada IMC... ¿el programa puede saber en que día estamos hoy? Yo vi que hay una utilidad que le pinchas y aparece un calendario blanco y azul. ¿De ahí delphi puede saber el día que es? Lo quiero para que se guarde en el ListBox y luego se vuelque en la tabla y así saber que día se hizo el IMC :P

Última edición por kbaby fecha: 29-06-2008 a las 14:46:21. Razón: otra duda
Responder Con Cita
  #4  
Antiguo 29-06-2008
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 27
eduarcol Va por buen camino
Cita:
Empezado por kbaby Ver Mensaje
Se me olvidó deciros. Me gustaría aprender como ponerle iconos a mis Button. Es que nunca me han enseñado nadie. Me gustaría ponerle iconitos :P
Debes utilizar el TBitBtn o el TSpeedButton, y en su propiedad Glyph ubicas la imagen

Cita:
Empezado por kbaby Ver Mensaje
Haciendo el programa se me a venido otra duda...

Para que el usuario no tenga que estar ingresando la fecha con la que hace cada IMC... ¿el programa puede saber en que día estamos hoy? Yo vi que hay una utilidad que le pinchas y aparece un calendario blanco y azul. ¿De ahí delphi puede saber el día que es? Lo quiero para que se guarde en el ListBox y luego se vuelque en la tabla y así saber que día se hizo el IMC :P
Coloca un calendario de esos, supongamos que el name es calendario, colocas Calendario.Date := Date;
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #5  
Antiguo 29-06-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 27
Delphius Va camino a la fama
Hola Diego, lo más natural sería de que tengas dos archivos: el primero para llevar el registro de tus usuarios y el segundo para llevar registros de sus IMC.

Ahora bien, realizar esto con archivos no es tan fácil puesto que deberás tener mucho código para mantener la referencia entre uno y otro. Si optas por este diseño debes tener el primer archivo una estructura como la siguiente:

ID_USUARIO - NOMBRE - APELLIDO - PASSWORD

Ese ID_USUARIO será un identificador, y se lo empleará para distinguir a un usuario de otro, por tanto el ID_USUARIO debe ser único a cada persona. El cantidato más firme a ser identificador es el DNI ya que no hay dos personas que tengan un mismo DNI. O si deseas, puedes asignarle cualquier numero. Por ejemplo, al primero que se registra le corresponde el ID 1, al segundo el 2, etc...

Ahora viene lo duro, el segundo archivo necesita tener una referencia hacia un ID_USUARIO para hacer la coincidencia. Nuestro segundo archivo como mínimo debe llevar la siguiente estructura:

FECHA - REF_USUARIO - MIC

¿Que es ese REF_USUARIO, pues básicamente este campo tendrá el valor de ID_USUARIO al que le pertenecen dichos datos. Por ejemplo, si existe un usuario cuyo ID es 123456, entonces cada uno de sus registros tendrá una forma como la siguiente:

xx/xx/xx - 123456 - 20
xx/xx/xx - 123456 - 25
...
yy/yy/yy - 568541 - 15

¿Cómo hacemos para obtener exclusivamente sus datos? Muy fácil: recorrer el archivo de punta punta e ir buscando solo aquellos cuyo valor REF_USUARIO es igual al ID_USUARIO de la persona que se logueó.

Cuando se procesa a registrar un nuevo valor de MIC, deberá bastar con ingresarlo al final del archivo y sin olvidar llenar el REF_USUARIO para que posteriormente podamos recuperar sus datos.

Como podrás comprobar esta manera de llevar a cabo el archivo te separa a los usuarios de los registros de IMC pero requiere de mayor código.

La manera en que tu lo estás llevando al archivo es básica, y el problema se presenta cuando debes recorrer todos los datos de una misma persona.
Otra posibilidad de conseguir esto es un solo archivo. Pero a mi modo de ver es contraproducente ya que terminas registrando duplicados.
Una opción es que si deseas llevar un solo archivo es que insertes los datos ordenados por usuarios, de modo que sólo bastaría recorrer los datos desde la posición que le pertenece a dicho usuario hasta que se encuentre al siguiente. Por ejemplo:

NOMBRE1
APELLIDO1
PASSWORD1
MIC1-1
MIC1-2
MIC1-3
NOMBRE2
APELLIDO2
PASSWORD2
MIC2-1
....

Pero el algoritmo para extraer adecuadamente los datos debe ser capaz de manerar una cantidad variable de MICs. Por tanto induce a otro código un tanto enrreversado.

La tercera alternativa: cuando se crea un usuario, que se cree un archivo destinado a guardar sus propios MICs. De modo que solo puede bastar con levar un registro para hacer corresponder un archivo con un usuario. Algo como esto:

NOMBRE - APELLIDO - PASSWORD - NOMBRE_ARCHIVO

De modo que al loguearse al sistema, se lee este NOMBRE_ARCHIVO, se lo abre y se recorren sus datos.

Esas son las opciones que tienes. Todas requieren de más o menos código, deberás analizar cual de todas esas opciones te conviene.

Una cuarta opción es que te pases a estudiar bases de datos y te olvides de archivos y código para recorrer los datos, que abrir y cerrar... pero no se que tan preparado te sientas para aprender sobre esto.

Con respecto a obtener la fecha de hoy lo más fácil es emplear la función Now que devuelve la fecha y hora. Por ejemplo:

Código Delphi [-]
Mivariable := Now;

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #6  
Antiguo 29-06-2008
Avatar de kbaby
kbaby kbaby is offline
Miembro
 
Registrado: oct 2007
Ubicación: Granada
Posts: 178
Poder: 19
kbaby Va por buen camino
Cita:
Empezado por Delphius Ver Mensaje
Hola Diego, lo más natural sería de que tengas dos archivos: el primero para llevar el registro de tus usuarios y el segundo para llevar registros de sus IMC.

Ahora bien, realizar esto con archivos no es tan fácil puesto que deberás tener mucho código para mantener la referencia entre uno y otro. Si optas por este diseño debes tener el primer archivo una estructura como la siguiente:

ID_USUARIO - NOMBRE - APELLIDO - PASSWORD

Ese ID_USUARIO será un identificador, y se lo empleará para distinguir a un usuario de otro, por tanto el ID_USUARIO debe ser único a cada persona. El cantidato más firme a ser identificador es el DNI ya que no hay dos personas que tengan un mismo DNI. O si deseas, puedes asignarle cualquier numero. Por ejemplo, al primero que se registra le corresponde el ID 1, al segundo el 2, etc...

Ahora viene lo duro, el segundo archivo necesita tener una referencia hacia un ID_USUARIO para hacer la coincidencia. Nuestro segundo archivo como mínimo debe llevar la siguiente estructura:

FECHA - REF_USUARIO - MIC

¿Que es ese REF_USUARIO, pues básicamente este campo tendrá el valor de ID_USUARIO al que le pertenecen dichos datos. Por ejemplo, si existe un usuario cuyo ID es 123456, entonces cada uno de sus registros tendrá una forma como la siguiente:

xx/xx/xx - 123456 - 20
xx/xx/xx - 123456 - 25
...
yy/yy/yy - 568541 - 15

¿Cómo hacemos para obtener exclusivamente sus datos? Muy fácil: recorrer el archivo de punta punta e ir buscando solo aquellos cuyo valor REF_USUARIO es igual al ID_USUARIO de la persona que se logueó.

Cuando se procesa a registrar un nuevo valor de MIC, deberá bastar con ingresarlo al final del archivo y sin olvidar llenar el REF_USUARIO para que posteriormente podamos recuperar sus datos.

Como podrás comprobar esta manera de llevar a cabo el archivo te separa a los usuarios de los registros de IMC pero requiere de mayor código.

La manera en que tu lo estás llevando al archivo es básica, y el problema se presenta cuando debes recorrer todos los datos de una misma persona.
Otra posibilidad de conseguir esto es un solo archivo. Pero a mi modo de ver es contraproducente ya que terminas registrando duplicados.
Una opción es que si deseas llevar un solo archivo es que insertes los datos ordenados por usuarios, de modo que sólo bastaría recorrer los datos desde la posición que le pertenece a dicho usuario hasta que se encuentre al siguiente. Por ejemplo:

NOMBRE1
APELLIDO1
PASSWORD1
MIC1-1
MIC1-2
MIC1-3
NOMBRE2
APELLIDO2
PASSWORD2
MIC2-1
....

Pero el algoritmo para extraer adecuadamente los datos debe ser capaz de manerar una cantidad variable de MICs. Por tanto induce a otro código un tanto enrreversado.

La tercera alternativa: cuando se crea un usuario, que se cree un archivo destinado a guardar sus propios MICs. De modo que solo puede bastar con levar un registro para hacer corresponder un archivo con un usuario. Algo como esto:

NOMBRE - APELLIDO - PASSWORD - NOMBRE_ARCHIVO

De modo que al loguearse al sistema, se lee este NOMBRE_ARCHIVO, se lo abre y se recorren sus datos.

Esas son las opciones que tienes. Todas requieren de más o menos código, deberás analizar cual de todas esas opciones te conviene.

Una cuarta opción es que te pases a estudiar bases de datos y te olvides de archivos y código para recorrer los datos, que abrir y cerrar... pero no se que tan preparado te sientas para aprender sobre esto.

Con respecto a obtener la fecha de hoy lo más fácil es emplear la función Now que devuelve la fecha y hora. Por ejemplo:

Código Delphi [-]Mivariable := Now;


Saludos,
Me tiro para la 1º Alternativa. Es la que mejor me he enterado. Y lo de aprender base de datos... como dices, mejor mas adelante Voy a hacerlo (cuando sepa como conseguir la fecha xD).
Responder Con Cita
  #7  
Antiguo 29-06-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 27
Delphius Va camino a la fama
Cita:
Empezado por kbaby Ver Mensaje
Una pregunta que no viene al tema:

¿Por qué sabeis tanto?
¿Es por el tiempo que habeis usado Delphi?
¿Por qué teneis una carrera?
¿La experiencia?


Gracias tio.

__________________________________

EDITO:

¿Sólo muestra la hora no? No puede mostrar la fecha?
Respondiendo, a tus preguntas yo diría que por amor al arte y el gusto por Delphi.

Aqui hay personas que no se dedican profesionalmente en el área de la informática, y aún asi tienen conocimientos sobre el tema. Esto lo han conseguido leyendo libros, consultando en los foros.

La experiencia también juega un papel importante, a medida que uno se ejercita, adquiere más destreza y habilidad en la resolución y desarrollo de sistemas. Se forma, se educa, se instruye.

Una de las cosas más importante es no perderle el miedo a pulsar F1. Allí dice mucho, pero no te dirá como aprender sobre programación. Esto se consigue con la práctica, y para ello sólo se necesita constancia (como todas las cosas de la vida).

No importa si es Delphi, o el lenguaje que sea... no es que nos sepamos los "trucos" y cada partecita de Delphi. La intención es asimilar los conceptos, las ideas y llevarlas a cabo en el lenguaje que te toque. Puede que en el dia de mañana te veas obligado a emplear Fox Pro, NET, Java, Cobol, VB... lo que se busca es aprender las nociones básicas de la programación, el uso de la lógica y un conjunto de buenas prácticas que te van a ayudar.

Si me preguntas cuanto se de Delphi, con gusto te digo que se menos del 50%. No tiene sentido aprenderse el lenguaje. Aqui lo usamos porque vemos en el producto una buena herramienta de calidad y porque ofrece ciertas ventajas que tal vez, otros compiladores/IDEs no poseen o lo poseen probremente.

A mi me encanta hacerte pensar Diego, y lo voy a seguir haciendo (admito que me gusta un poco ver sufrir al otro) Se que te cuesta, al comienzo todo cuesta. Pero más adelante, llegarás a darte cuenta de que ciertas cosas se te vuelven triviales.

Asi que si somos o no profesionales, aqui no nos importa... el que puede ayuda, y algunos nos arriesgamos a ayudar aun sin saber en profundidad sobre el tema.

Y no es que sepamos, es que conocemos. Posiblemente ya hemos pasado por ello, hicimos algo parecido, o recordamos haber visto por algun lado algo del tema.

Tu no te preocupes por ello, cada uno tiene su propio ritmo de aprendizaje.
Y por cierto, por ahora, que estas de "vacaciones" aprovecha para ir practicando... aunque yo te recomendaría que no descuides lo que viste en matemática, física, quimica. Durante el primer año de la carrera... no vas a tocar mucho a la PC ¡te van a asediar con análisis y/o calculo matemático, álgebra, física y química!

Con respecto al tema de la función Now: Now regresa el valor de tipo TDateTime. Es decir fecha y hora. Si sólo deseas la fecha, declara la variable de tipo TDate y guarda el valor:

Código Delphi [-]
var variable: TDate;
...
variable := Now;
ShowMessage(DateToStr(variable));

Para saber más sobre TDateTime, TDate y TTime... pulsa F1.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #8  
Antiguo 29-06-2008
Avatar de kbaby
kbaby kbaby is offline
Miembro
 
Registrado: oct 2007
Ubicación: Granada
Posts: 178
Poder: 19
kbaby Va por buen camino
Cita:
Debes utilizar el TBitBtn o el TSpeedButton, y en su propiedad Glyph ubicas la imagen
Muchas gracias, uf esto me será muy util pues no quiero tener sólo el menu de mi programa, quiero unos botones grandes con iconos que se sepa para que es.

¿Dónde puedo encontrar fotos .bmp chicas para esto?
¿Puedo cojer un .ico que me guste, capturarlo con IMPR, PANT,PETSIS y guardar la imagen del icono en .bmp?

Cita:
Coloca un calendario de esos, supongamos que el name es calendario, colocas Calendario.Date := Date;
Interesante lo voy a probar, aunque viendo lo que me dijo delphius:

A:= now

Resulta más cómodo ¿no?

¿Pero A que tipo de variable es? Yo la puse Real y cuando meto A en un edit me sale este valor: 39628,7796189583


PD: Sigo leyendo el post de Delphius que es dificil de entender a primeras.
Responder Con Cita
  #9  
Antiguo 29-06-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 24
enecumene Va por buen camino
Cita:
Empezado por kbaby Ver Mensaje
¿Pero A que tipo de variable es? Yo la puse Real y cuando meto A en un edit me sale este valor: 39628,7796189583
Hola, A es una variable tipo TDate ó TDateTime.


Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #10  
Antiguo 29-06-2008
Avatar de kbaby
kbaby kbaby is offline
Miembro
 
Registrado: oct 2007
Ubicación: Granada
Posts: 178
Poder: 19
kbaby Va por buen camino
Entonces para probar lo de la hora ¿con este código me valdría?

Código Delphi [-]
var a:tdate;
begin
a:=now;
edit1.text:=datetostr(a);
end

Es que no tengo el delphi al lado ahora mismo.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
¿Directivas compilacion? drykea Varios 1 03-05-2007 14:51:15
Errores De CompilaciÓn nax Varios 1 20-08-2005 07:54:24
WEEK lo hice pero tengo una consulta jwmoreira Firebird e Interbase 0 17-03-2005 16:21:34
hice una prueba entre SQL Server y Firebird 1.5 Michel Firebird e Interbase 2 07-07-2003 14:57:26


La franja horaria es GMT +2. Ahora son las 04:03:09.


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