Fecha actual Mié Jun 26, 2024 1:17 pm

Todos los horarios son UTC + 1 hora [ DST ]




Nuevo tema Responder al tema  [ 6 mensajes ] 
Autor Mensaje
NotaPublicado: Mar Jul 25, 2006 8:53 pm 

Registrado: Jue Jul 20, 2006 8:36 pm
Mensajes: 143
Ubicación: Bilbao
Tengo la siguiente duda:

tengo dos form, en el form1 tengo el menu tmainMenu con todo lo que tiene que hacer...y en el Formpassword tengo 2 campos tipo Edit llamados nombre y password y otros 2 campos tipo label que tambien se llaman Nombre y Password.

Bien, estando en Form1 qe me presenta ya los menus y todo va bien,quiero presentar el Formpassword y que me pregunte los datos y me vuelva a form1 y sigua haciendo lo que le toca, por lo que he hecho en form1

METHOD Form1OnShow( oSender ) CLASS TForm1
AbreBasesDeDatos()
If !ValidaUsuario(oSender)
CierraBasesdeDatos()
Endif

en mi fichero rutinas.prg tengo:
Function ValidaUsuario()
return nil

como traigo a presencia el campo label y el campo edit?
que metodo me hace introducir los datos en el edit?

_________________
(C) Josu Udaondo...el fiera de clipper 5
Bilbao 2006


Arriba
 Perfil  
Responder citando  
NotaPublicado: Mié Jul 26, 2006 1:09 am 
Avatar de Usuario

Registrado: Dom Oct 09, 2005 11:26 am
Mensajes: 362
Ubicación: Salamanca - España
ironmansp escribió:
Tengo la siguiente duda:

tengo dos form, en el form1 tengo el menu tmainMenu con todo lo que tiene que hacer...y en el Formpassword tengo 2 campos tipo Edit llamados nombre y password y otros 2 campos tipo label que tambien se llaman Nombre y Password.

Bien, estando en Form1 qe me presenta ya los menus y todo va bien,quiero presentar el Formpassword y que me pregunte los datos y me vuelva a form1 y sigua haciendo lo que le toca, por lo que he hecho en form1

METHOD Form1OnShow( oSender ) CLASS TForm1
AbreBasesDeDatos()
If !ValidaUsuario(oSender)
CierraBasesdeDatos()
Endif

en mi fichero rutinas.prg tengo:
Function ValidaUsuario()
return nil

como traigo a presencia el campo label y el campo edit?
que metodo me hace introducir los datos en el edit?


Hola de nuevo Josu.

Deberias de mirarte los evento de windows, ya que es este el mayor problema cuando pasas de la programación con funciones a la de objetos.

Si lo que pretendes es mostrar una ventana de identificación de usuario tienes que hacerlo antes de que lances la aplicación (y no se muestra nada de la misma) o dentro del bucle principal (con la ventana principal como fondo). Yo utilizo la primera:

procedure Main()

Application:Icon:Name := resIcoMain
Application:Initialize()
Application:CreateForm( TMainForm(), @oApp )

Application:CreateForm( TLogIn(), @FormLogIn ) // <------ este

....
....

FormLogIn:ShowModal()
If FormLogIn:ModalResult == mrOk
Application:Run()
Else
oApp:FormOnClose()
endif

return

A ver si te aclara algo.

_________________
Un saludo.
Jesús P. Melgar Velasco


Arriba
 Perfil  
Responder citando  
NotaPublicado: Mié Jul 26, 2006 12:20 pm 

Registrado: Jue Jul 20, 2006 8:36 pm
Mensajes: 143
Ubicación: Bilbao
Yo tengo dos formularios, llamados Form1 y FormPassword.
En Form1 tengo el menu definido y me funciona bien. En el metodo onShow de este formulario (Form1:Onshow() ) tengo una rutina que pone:

METHOD Form1OnShow( oSender ) CLASS TForm1
/* Este metodo abre las bases y pregunta el usuario,si no es correcto no le deja seguir */
AbreBasesDeDatos(oSender)
If ValidaUsuario() = .f.
CierraBasesdeDatos()
Quit
Endif
return

En FormPassword, tengo 2 campos TLabel llamados Nombre y password, y otros 2 campos TEdit llamados EditNombre y Editpassword, ademas en el formpassword.prg tengo la funcion ValidaUsuario con este codigo:

Function ValidaUsuario()
MEMVAR lRetorno
lRetorno := .t.
FormPassword:EditNombre:Caption := "MI mono amelio y yo"
FormPassword:EditPassword:Caption := Space(30)
FormPassword:Show()
FormPassword:ShowModal()
Cuenta1millon()
FormPassword:Close()
Return lRetorno


la ventana me la abre, pero no me deja meter ningun dato en el campo nombre ni en el campo password

_________________
(C) Josu Udaondo...el fiera de clipper 5
Bilbao 2006


Arriba
 Perfil  
Responder citando  
NotaPublicado: Mié Jul 26, 2006 2:11 pm 
Avatar de Usuario

Registrado: Dom Oct 09, 2005 11:26 am
Mensajes: 362
Ubicación: Salamanca - España
ironmansp escribió:
Yo tengo dos formularios, llamados Form1 y FormPassword.
En Form1 tengo el menu definido y me funciona bien. En el metodo onShow de este formulario (Form1:Onshow() ) tengo una rutina que pone:

METHOD Form1OnShow( oSender ) CLASS TForm1
/* Este metodo abre las bases y pregunta el usuario,si no es correcto no le deja seguir */
AbreBasesDeDatos(oSender)
If ValidaUsuario() = .f.
CierraBasesdeDatos()
Quit
Endif
return

En FormPassword, tengo 2 campos TLabel llamados Nombre y password, y otros 2 campos TEdit llamados EditNombre y Editpassword, ademas en el formpassword.prg tengo la funcion ValidaUsuario con este codigo:

Function ValidaUsuario()
MEMVAR lRetorno
lRetorno := .t.
FormPassword:EditNombre:Caption := "MI mono amelio y yo"
FormPassword:EditPassword:Caption := Space(30)
FormPassword:Show()
FormPassword:ShowModal()
Cuenta1millon()
FormPassword:Close()
Return lRetorno


la ventana me la abre, pero no me deja meter ningun dato en el campo nombre ni en el campo password


Hola, Josu. (un saludo siempre está bien)

Mira, 'a simple vista' te comento TRES errores importantes:

MEMVAR lRetorno
lRetorno := .t.

1º Deberias releer la utilización del MemVar. ¿Porque no haces?

local lRetorno := .t.
....

2º Las lineas siguientes las deberias asignar AL CREAR el form, ya que como lo haces actualmente se reasignan cada vez que llamas a la funcion. Como mucho puedes dejar el editPassword, para iniciarlo cada vez que es llamada la función.

FormPassword:EditNombre:Caption := "MI mono amelio y yo"
FormPassword:EditPassword:Caption := Space(30)

3º Deamsiados 'Shows', el primero es para un form No Modal, por lo tanto sobra.

FormPassword:Show() <<<<< ---- SOBRA
FormPassword:ShowModal()

De momento.....

_________________
Un saludo.
Jesús P. Melgar Velasco


Arriba
 Perfil  
Responder citando  
NotaPublicado: Mié Jul 26, 2006 4:05 pm 

Registrado: Jue Jul 20, 2006 8:36 pm
Mensajes: 143
Ubicación: Bilbao
Aupa Jesús :

El punto 1 está O.K pero es mi vicio personal, me dar por declarar las variables.
El punto 2 es indiferente. No me preocupa ya que yo accedo directamente a los objetos siempre.
Lo "jodío" está en el punto 3, puesto que no me hace el READMODAL, es decir, no hace el GET/READ. Y no sé porqué....
Lo seguro es que hago algo MAL...
El exceso de SHOWS no me preocupa, ya he supuesto que el método SHOWMODAL incluye un SHOW, pero por si acaso...

Te puede sonar porké no me hace el READ??? Se supone que después de haber hecho el READMODAL el cursor debiera de estar situado en el campo NOMBRE y el programa permanecer a la espera de tecleo.... De hecho la ventana sale,las etiquetas se dibujan y los campos aparecen..pero no puedo pulsar ninguna tecla

_________________
(C) Josu Udaondo...el fiera de clipper 5
Bilbao 2006


Arriba
 Perfil  
Responder citando  
NotaPublicado: Mié Jul 26, 2006 6:22 pm 

Registrado: Jue Jul 20, 2006 8:36 pm
Mensajes: 143
Ubicación: Bilbao
no se puede poner dos shows seguidos, al quitar el primer show y dejar el showmodal solo, me funciona bien...ahora le pondre unos botones... de ok o cancel...

_________________
(C) Josu Udaondo...el fiera de clipper 5
Bilbao 2006


Arriba
 Perfil  
Responder citando  
Mostrar mensajes previos:  Ordenar por  
Nuevo tema Responder al tema  [ 6 mensajes ] 

Todos los horarios son UTC + 1 hora [ DST ]


No puede abrir nuevos temas en este Foro
No puede responder a temas en este Foro
No puede editar sus mensajes en este Foro
No puede borrar sus mensajes en este Foro
No puede enviar adjuntos en este Foro

Buscar:
Saltar a:  
cron