Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-07-2010
Avatar de lmpadron
lmpadron lmpadron is offline
Miembro
 
Registrado: feb 2009
Ubicación: Habana, Cuba
Posts: 204
Poder: 16
lmpadron Va por buen camino
Repetir una accion

Hola Tengo una prequeña duda, tengo un FORM con casi 600 edit (muchos verdad!!) y necesito programar el evento OnKeyPress, el probema es que es el mismo codigo para todos estos Edits mi pregunta es Como se puede escribir este codigo una sola ves ????, hay alguna forma en que pueda asignarle esta accion a los demas edits sin necesidad de escribirlo en cada uno de ellos ??? Gracias
__________________
Nunca esta de más volver a ver la "Guia de Estilo" o "La Otra Guia de Estilo". Recuerda siempre usar los "Tags" para una mejor legibilidad de tu código.


Cuando miras fijamente al abismo, este te devuelve la mirada


oo______ooo_____ooo_ooooooo_____ooo____oooooo____ooooooo______oooo____ooo____oo_
oo______oooo___oooo_oo____oo__oo___oo__oo____oo__oo____oo___oo____oo__oooo___oo_
oo______oo_oo_oo_oo_oo____oo_oo_____oo_oo_____oo_oo____oo__oo______oo_oo_oo__oo_
oo______oo__ooo__oo_oooooo___ooooooooo_oo_____oo_ooooooo___oo______oo_oo__oo_oo_
oo______oo_______oo_oo_______oo_____oo_oo____oo__oo____oo___oo____oo__oo___oooo_
ooooooo_oo_______oo_oo_______oo_____oo_oooooo____oo_____oo____oooo____oo____ooo_
________________________________________________________________________________
Responder Con Cita
  #2  
Antiguo 29-07-2010
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
Hola,
600 edits es un error grave de diseño. Para lo que tu quieres, puedes hacer algo asi, por ejemplo, en el evento OnCreate

Código Delphi [-]

for i := 0 to Form1.ComponentCount - 1 do
begin
    if Form1.Components[i] is TEdit then
     (Form1.Components[i] as TEdit).OnKeyPress := MiProcedimientoOnKeyPress;
end;

de todas maneras, sigo diciendote que 600 TEdit en un form es un fallo grave que te dara mas problemas que soluciones. Un saludo.
Responder Con Cita
  #3  
Antiguo 29-07-2010
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola lmpadron, puedes asignar el codigo que tienes en el OnKeyPress a todos los edit que quieras, para ello solo debes seleccionar en diseño el OnKeyPress del edit que quieras (digamos Edit1KeyPress) en el OnKeyPress de los otros edits.

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #4  
Antiguo 29-07-2010
Avatar de lmpadron
lmpadron lmpadron is offline
Miembro
 
Registrado: feb 2009
Ubicación: Habana, Cuba
Posts: 204
Poder: 16
lmpadron Va por buen camino
Cita:
Empezado por Caro Ver Mensaje
Hola lmpadron, puedes asignar el codigo que tienes en el OnKeyPress a todos los edit que quieras, para ello solo debes seleccionar en diseño el OnKeyPress del edit que quieras (digamos Edit1KeyPress) en el OnKeyPress de los otros edits.

Saluditos
Se me habia ocurrido esa idea pero me surgio la duda de si eso funcionaba para cada edit de forma individual o repetia el evento en el edit donde se escribio el codigo en particular. Por ejemplo lo que necesito es reemplazar algunos caracteres para evitar que los usuarios cometan errores, los reemplasos son los mismos en todos los edit pero al yo llamar el evento de del edit1 desde otro edit por ejemplo el 2 las acciones se realizan en el Edit1 o en el Edit2 ???????

Cita:
Empezado por coso Ver Mensaje
(...)sigo diciendote que 600 TEdit en un form es un fallo grave que te dara mas problemas que soluciones. Un saludo.
Que debo hacer si necesito que se introdusca la informacion en una BD con mas de 600 campos, pense en usar un TDBGrid pero creo que eso me traeria mas problemas, conoces alguna solucion mejor ??????

Gracias por su ayuda !!!!!
__________________
Nunca esta de más volver a ver la "Guia de Estilo" o "La Otra Guia de Estilo". Recuerda siempre usar los "Tags" para una mejor legibilidad de tu código.


Cuando miras fijamente al abismo, este te devuelve la mirada


oo______ooo_____ooo_ooooooo_____ooo____oooooo____ooooooo______oooo____ooo____oo_
oo______oooo___oooo_oo____oo__oo___oo__oo____oo__oo____oo___oo____oo__oooo___oo_
oo______oo_oo_oo_oo_oo____oo_oo_____oo_oo_____oo_oo____oo__oo______oo_oo_oo__oo_
oo______oo__ooo__oo_oooooo___ooooooooo_oo_____oo_ooooooo___oo______oo_oo__oo_oo_
oo______oo_______oo_oo_______oo_____oo_oo____oo__oo____oo___oo____oo__oo___oooo_
ooooooo_oo_______oo_oo_______oo_____oo_oooooo____oo_____oo____oooo____oo____ooo_
________________________________________________________________________________
Responder Con Cita
  #5  
Antiguo 29-07-2010
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Cita:
Empezado por lmpadron Ver Mensaje
Se me habia ocurrido esa idea pero me surgio la duda de si eso funcionaba para cada edit de forma individual o repetia el evento en el edit donde se escribio el codigo en particular. Por ejemplo lo que necesito es reemplazar algunos caracteres para evitar que los usuarios cometan errores, los reemplasos son los mismos en todos los edit pero al yo llamar el evento de del edit1 desde otro edit por ejemplo el 2 las acciones se realizan en el Edit1 o en el Edit2 ???????
Hola de nuevo, el evento OnKeyPress y la mayoría tienen un parámetro Sender con el que puedes hacer referencia al edit en el que se esta ejecutando dicho evento (haciendo un Cast).

Código Delphi [-]
  TEdit(Sender).Text := 'algo'; //eso en delphi
  //en c++ creo que es algo así:
  < TEdit > (Sender)-> ............

Yo también creo que 600 edit son muchos y si son campos de una sola tabla(algo no esta bien en tu diseño).

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #6  
Antiguo 29-07-2010
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
Hola,
otra vez, una bd que necesite 600 campos introducidos a mano...es que hay un problema de diseño seguro...y ya no te digo la de problemas que te provocara trabajar con algo asi...Si nos cuentas que necesitas hacer, quiza te podamos ayudar. Un saludo.

PD:
Cita:
edit por ejemplo el 2 las acciones se realizan en el Edit1 o en el Edit2
como te dice Caro, deberas usar el Sender del evento OnKeyPress para tratar directamente con el objeto que lo ha llamado.
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
Repetir valor altp SQL 7 27-06-2007 13:23:05
Es sano repetir? Johnny Q OOP 4 12-07-2005 21:09:51
accion remota unko! Internet 2 19-03-2005 18:51:21
Acción del PrinterSetupDialog BlueSteel Impresión 2 14-01-2005 21:26:29
no repetir campos ebeltete SQL 5 22-05-2003 04:32:53


La franja horaria es GMT +2. Ahora son las 06:03:10.


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