Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Escribe en un form y ocultar o visualizar datos (https://www.clubdelphi.com/foros/showthread.php?t=29532)

david duarte 24-01-2006 21:16:49

Escribe en un form y ocultar o visualizar datos
 
Hola a todos!!!

De repente viendo mi proyecto, ( tengo una pantalla en donde pide nombre de usuario y contraseña), en esa misma forma, tengo unos labels en donde dice si las tablas estan activas o no, pero los usuarios no deben de ver esas opciones, por lo cual, hago la forma mas pequeña, en donde nada mas quepan los edits, automaticamente cuando aparece esa forma, mando el control al primer edit para que el usuario teclee su nombre.

Lo que quiero hacer (lo necesito) es que yo, al darle una palabra la que sea, me haga mas grande la forma y me despliegue la informacion de las tablas.

Alguien sabe como hacerlo??

La verdad no le encontre, le puse codigo en el onkeypress de la forma, pero como tengo el control en el edit, todo lo que pongo por logica aparece en el edit.

Saben como ponerle el control a la forma? o como se hacer??

Que yo teclee una palabra y se agrande la forma, asi como en los juegos, que le escribes una palabra y te pone mas poderes.

Gracias
Cómo te sientes hoy??

dec 24-01-2006 21:24:58

Hola,

¿No has probado en el evento "OnChange" de alguno de los "TEdit", por ejemplo, de tal modo que aproveches ahí para cambiar el ancho del formulario (propiedad "Width") y el alto también (propiedad "Height") si te hace falta? Incluso podrías situar el formulario de la pantalla (puesto que al cambiar el tamaño pudiera ser que te quedara un poco descolocado) con sus propiedades "Left" y Top". O utiliza el método "SetBounds" del formulario, para cambiar las cuatro propiedades mencionadas de una vez. ;)

luisgutierrezb 24-01-2006 21:25:14

La forma tiene una propiedad que se llama Keypreview la pones a True, esto le indica que aunque este en un Edit, el texto se procesa primero en la forma, en el onkeypress por ejemplo, si mal no recuerdo en en el parametro sender debe venir el edit que lo mando...

dec 24-01-2006 21:43:51

Hola,

Cita:

Empezado por luisgutierrezb
(...) si mal no recuerdo en en el parametro sender debe venir el edit que lo mando...

Quería comprobar si era así, pero en los eventos "OnKeyPress", "OnKeyDown" y "OnKeyUp" de un formulario, el "Sender" es... el formulario en cuestión... El caso es que me pareció muy lógico lo que dijiste, me llamó la atención (por eso lo quise comprobar), pero, pensándolo mejor, es al formulario a quien pertenecen esos eventos, por tanto ha de ser el formulario quien se "identifique", es decir, quien "envíe" dichos eventos.

david duarte 24-01-2006 23:55:30

Hola!!!

lo que pasa es que no quiero escribir dentro del edit, sino que al darle clic en la forma se pase a esta, y ahi escribirle p.e. jefe' y se haga mas grande la forma.
Si la palabra es diferente, que no haga nada.

Esto para que es???
Para yo como programador, ver si estan activas todas las tablas.
El usuario no debe de ver esas etiquetas. Pero la verdad no se me ocurre nada bueno, voy a seguir pensando e investigando a ver que se me ocurre.
De todos modos gracias!!!

Si se les ocurre otra cosa se los agradeceria.
Cómo te sientes hoy??

Se me olvidaba decirles uso delphi 5, paradox y sockets.

roman 25-01-2006 01:35:13

Cita:

Empezado por david duarte
Esto para que es???
Para yo como programador, ver si estan activas todas las tablas.

O sea que lo que quieres es incorporar una especie de modo "debug" en tu aplicación.

¿Y para qué te complicas la vida con una palabra "clave"? Simplemente usa el evento OnKeyUp del formulario con KeyPreview en activado y espera una combinación de teclas, digamos Ctrl+Alt+Shift+J (J de jefe :D).

O bien haz un formulario alterno con las etiquetas prohibidas y otro sin ellas y al comienzo lees la línea de parámetros de la aplicación y sólo si la ejecutas, por decir algo con

--jefe

muestras el formulario poderoso.

En fin, seguro que hay mil ideas más, pero lo que quieres y para lo que quieres, relamente no vale la pena complicarse la existencia.

// Saludos

david duarte 26-01-2006 00:41:59

Muchas gracias.

Lo probe, pero la verdad es que no se como ponerle para que me reconozca esa o alguna otra combinacion de teclas ya sea ctl-z, ctl+alt+z, o alguna otra, ya ,me quebre la cabeza como media hora y no me sale. lo voy a seguir intentando.
Gracias.

Cómo te sientes hoy??

Jonnathan 26-01-2006 02:55:15

Hola David, toma nota que estos momentos de iluminación (o suerte) no los tengo muy a menudo :D. Coloca un TPopupMenu en la ventana, crea un item dentro ese PopupMenu y dale doble clic. En el evento de ese item vas a poner el código para cambiar el tamaño de la ventana. A ese mismo item le vas a cambiar la propiedad ShorCut por alguna que te guste, en mi caso probe con Ctrl+D (D de "Debug"). Por último, en la propiedad PopupMenu de ese formulario seleccionas el PopupMenu que acabas de crear. Inicia tu aplicación y presiona la combinación que escogiste como ShorCut del item que te mencione. COMPROBADO :cool:.
Un detalle que no sabía de Delphi y los PopupMenus que acabo de ver gracias al amigo David, cada día se aprende algo nuevo :p . Saludos.

roman 26-01-2006 03:12:36

Cita:

Empezado por david duarte
no se como ponerle para que me reconozca esa o alguna otra combinacion de teclas ya sea ctl-z, ctl+alt+z, o alguna otra

Es fácil. Mira, el evento OnKeyUp u OnKeyDown reciben dos parámetros (además del consabido Sender), Key y Shift. Key es el código numérico de la tecla que se haya oprimido. Así, si quieres detectar si se pulsa, digamos, la 'J', pondrías algo como:

Código Delphi [-]
if (Key = Ord('J')) then

Ord('J') será el código numérico de 'J'.

El otro parámetro, Shift, te indica que teclas modificadoras estabn apretadas al mismo tiempo. Pueden ser ssAlt, ssShift o ssCtrl. Como puede haber más de una de éstas oprimidas a la vez, Shift es realmente un conjunto.

Entonces, lo que debes hacer, además de la comparación ya vista, es comparar el conjunto Shift con el conjunto de teclas modificadoras que quieras, por ejemplo:

Código Delphi [-]
if ((Key = Ord('J')) and (Shift = [ssAlt, ssShift, ssCtrl])) then

esto es, "si está oprimida J junto con Ctrl, Alt y Shift entonces..."

// Saludos

david duarte 26-01-2006 16:15:19

Muchas gracias a todos por sus comentarios y/o consejos, ya lo solucione, tal y como dijo roman, estaba relativamente facil, pero ya ves uno que a veces por las prisas se les pasma el cerebro o porque no, las ideas.

Jonnathan, Gracias por tu sugerencia, lamentablemente por falta de tiempo(ya tengo que entregar el sistema) no puedo probar tu consejo, pero te prometo que lo voy a checar posteriormente y porque no, si me gusta mas, lo aplicare.

Gracias a todos!!!

y felicidades roman, tienes tantos mensajes que me sorprendo, Gracias por ayudar a todos lo que casi no sabemos de delphi, por mas que me he querido adentrar en las opciones de cada una de las propiedades de los objetos me doy cuenta que me falta mucho por aprender. =) Dejenme decirles que yo no puedo por mucho responder las dudas que los demas tienen, pero los pocos consejos que he dado, espero que les haya ayudado en algo.

Muchisimas gracias.
Cómo te sientes hoy

david duarte 27-10-2006 01:26:53

Hola a todos otra vez.
Me surgio una cuestion.
No se si se pueda que independientemente en la forma que me encuentre, si yo le pongo ctrl+J, me muestre una pantalla.
ya que con el codigo anterior, solamente me muestra la pantalla, si estoy en la forma principal, de lo contrario, no me muestra nada.

Ya estuve checando pero no logro hacer esto.

probe con
Código:

if .... vk_control+ 's' o vk_control+vk_s
pero no funciona.
Si alguien sabe donde encontrar informacion de esta se los agradeceria.
Saludos!!!

roman 27-10-2006 05:25:45

El evento OnKeyUp sólo lo detectará el formulario al que pertenezca. Una solución es que uses un ActionList (pestaña Standard): agregas una acción y le pones Ctrl+J o la combinación que desees a su propiedad Shortcut. En el evento OnExecute de la acción codificas lo que requieras. El Ctrl+J responderá desde cualquier formulario.

// Saludos

david duarte 27-10-2006 18:34:47

Hola Roman, en si, así tenemos varias formas que necesitamos ver en cualquier momento, sin importar en que forma estemos.

Ok, deja lo verifico y les digo como me fue.

Muchas Gracias
Saludos!!!

Editado
27-Oct-06-2:00pm

Ya le puse el codigo como me recomendaste Roman, pero no funciona.

El codigo lo puse de la siguiente manera:

En la forma principal, añadi un TactionList, le añadi una accion, posteriormente en el evento On Execute le puse el siguiente codigo:

Código:

  MuestraForma(TFrmTeacherSQL);
en la forma principal, le pongo lo siguiente

Código:

  frmprincipal.AccionSQL.Enabled := True;
pero solamente muestra la forma, cuando estoy en la pantalla principal, cuando estoy viendo cualquier otra, no aparece nada.

No se si haya que activar otra cosa en otra pantalla
Saludos!!!


La franja horaria es GMT +2. Ahora son las 15:23:31.

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