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 03-04-2006
JELIRM JELIRM is offline
Miembro
 
Registrado: feb 2005
Ubicación: EL SALVADOR
Posts: 124
Poder: 22
JELIRM Va por buen camino
Gracias Bicho y Vtdeleon por sus respuestas en cuanto al enlace que me puso Bicho no lo he logrado hacer esta un poco confuso,
En cuanto al enlace de Vtdeleon el problema es que con cualquier TEdit dentro de esa form hiciera lo mismo, lo que se me ocurrio es hacer una validacion mas a esa condicion con respecto al foco actual de el Tedit; pero no se como validarlo(el foco)
el codigo original es:
begin
if (ActiveControl is TEdit) and
(Msg.Charcode = VK_TAB) then
begin
ShowMessage('TAB key pressed?') ;
end;
inherited;
end;

lo que yo he intentado pero me da error dice que es un valor boleano pero intento Edit1.Setfocus= True e igual

begin
if (ActiveControl is TEdit) and (Edit1.SetFocus) and
(Msg.Charcode = VK_TAB) then
begin
ShowMessage('TAB key pressed?') ;
end;
inherited;
end;

No se si me explique bien, y gracias por sus respuestas.
Responder Con Cita
  #2  
Antiguo 03-04-2006
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.572
Poder: 27
egostar Va camino a la fama
Usa este evento en el objeto Edit.

Código Delphi [-]
 
procedure TForm1.Edit1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
   if Key = 9 then begin // La tecla TAB tiene el código ASCII 9
     ShowMessage('Tecla TAB presionada!!!');
   end;
end;

Saludos
Responder Con Cita
  #3  
Antiguo 04-04-2006
JELIRM JELIRM is offline
Miembro
 
Registrado: feb 2005
Ubicación: EL SALVADOR
Posts: 124
Poder: 22
JELIRM Va por buen camino
GRACIAS,
Fijate que funciona pero solo con un TEdit si pongo dos no me funciona en el primero sino que en el segundo TEdit.
Responder Con Cita
  #4  
Antiguo 04-04-2006
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.572
Poder: 27
egostar Va camino a la fama
Post

Cita:
Empezado por JELIRM
GRACIAS,
Fijate que funciona pero solo con un TEdit si pongo dos no me funciona en el primero sino que en el segundo TEdit.
No habia visto el enlace que puso vtdeleon, ahi esta la respuesta a tu problema, lo que creo es que no supiste como hacerlo.

http://delphi.about.com/cs/adptips20...ltip0702_5.htm

Aqui esta el codigo completo con dos Tedit.

Código Delphi [-]
 
unit Unit1;
 
interface
 
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
 
type
   TForm1 = class(TForm)
        Edit1: TEdit;
        Edit2: TEdit;
   private
        { Private declarations }
        procedure CMDialogKey(Var Msg: TWMKey) ;
        message CM_DIALOGKEY; 
   public
        { Public declarations }
end;
 
var
   Form1: TForm1;
 
implementation
 
{$R *.DFM}
 
procedure TForm1.CMDialogKey(Var Msg: TWMKEY) ;
begin
   if (ActiveControl is TEdit) and
     (Msg.Charcode = VK_TAB) then begin
     ShowMessage('TAB key pressed?') ;
   end;
   inherited;
end;
 
end.

Si quieres usar otros objetos, pues tendras que modificar el codigo a tus necesidades.

Saludos
Responder Con Cita
  #5  
Antiguo 04-04-2006
JELIRM JELIRM is offline
Miembro
 
Registrado: feb 2005
Ubicación: EL SALVADOR
Posts: 124
Poder: 22
JELIRM Va por buen camino
Gracias de nuevo por la cooperacion,
fijate que eso ya lo hice el problema es que la accion es para todos los TEdit que tenga la Form y yo quiero una en particular para cada TEdit asi:
////
Si presiono Tab en TEdit1
que aga algo
fin
Si presiono Tab en Tedit2
que haga otra cosa.
/////

A mi se me ocurria ponerle una condicion y es con respecto al foco del objeto asi:
Si presiono Tab en TEdit y el foco esta en TEdit1
efectua alguna accion
fin.
El problema es que no se como identificar en que foco esta yo he hecho lo siguiente pero me da error.

procedure TForma.CMDialogKey(Var Msg: TWMKEY) ;
begin
if (ActiveControl is TEdit) and (Edit1.SetFocus) and
(Msg.Charcode = VK_TAB) then
begin
ShowMessage('TAB key pressed?') ;
end;
inherited;
end;

De Antemano gracias por vuestra Ayuda
Responder Con Cita
  #6  
Antiguo 04-04-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
Otra solución más siguiendo el ejemplo de egostar

Código Delphi [-]
procedure TForm1.Edit1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
   if Key = 9 then begin // La tecla TAB tiene el código ASCII 9
      if Tedit(Sender).Name = Edit1.Name then
         // pos es el uno
      else if Tedit(Sender).Name = Edit2.Name then
         // pos eso.
   end;
end;

LLegados a este punto, ahora en los demás TEdits, en su evento KeyUp elige el Edit1Keyup, por tanto todos los Tedits compartiran el mismo evento.

Si estas en el edit1, el parámetro Sender será el Edit1, si estas en el Edit32 pues el Sender será el Edit32 ... vamos... el objeto que desencadena el evento.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #7  
Antiguo 04-04-2006
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.572
Poder: 27
egostar Va camino a la fama
Post

Yo veo otras dos soluciones a este problema.

La primera es utilizar el evento OnKeyUp de cada Edit y usar el código que quieras para cada uno.

La otra es usar el siguiente código.

Código Delphi [-]
 
procedure TForm1.CMDialogKey(Var Msg: TWMKEY) ;
begin
   if Msg.CharCode = VK_TAB then begin
      if ActiveControl.Name = 'Edit1' then begin
         ShowMessage('TAB Presionado en TEdit1');
      end;
      if ActiveControl.Name = 'Edit2' then begin
         ShowMessage('TAB Presionado en TEdit2');
      end;
   end;
   inherited;
end;

Espero ayude y si alguien sabe de otra solución mas elegante será bienvenida.

Saludos

Última edición por egostar fecha: 04-04-2006 a las 16:55:59.
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
Hacer una pausa fuera del evento OnTimer y sin usar Sleep DarkByte Varios 9 28-06-2007 04:08:00
en que evento del dbgrid puedo hacer un operacion matematica . . . Shidalis Varios 13 26-08-2005 22:25:06
como hacer que una columna del dbgrid contenga un valor de un TEdit en cada celda Shidalis OOP 2 02-08-2005 12:05:35
Pasar el valor de un TEdit dentro de un StringGrid a otro TEdit que está fuera atirado Varios 4 11-09-2004 19:13:48
TEdit RoyTan Varios 5 26-11-2003 21:12:33


La franja horaria es GMT +2. Ahora son las 10:29:22.


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