Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-10-2011
L3st4t L3st4t is offline
Miembro
 
Registrado: feb 2008
Posts: 24
Poder: 0
L3st4t Va por buen camino
Trasladar Procedure

Buenas....

Cree un codigo en el procedure del "boton1' resulta que no quiero copiar de nuevo el codigo en el event Enter del Edit. Como hago para llamar al procedure desde dicho evento en otras ocasiones lo he hecho pero ahorita no quiere funcionar con el método que usado antes.

Gracias
Responder Con Cita
  #2  
Antiguo 16-10-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola L3st4t.

En realidad no te entiendo muy claramente... pero por lo que pude descifrar sería:

Código Delphi [-]
Edit1.OnEnter:= Button1.OnEnter
O de otro modo, posicionado en el TEdit, desde el Object Inspector -> Pestaña events -> OnEnter, y elegir: Button1.OnEnter

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 16-10-2011 a las 03:21:23.
Responder Con Cita
  #3  
Antiguo 16-10-2011
L3st4t L3st4t is offline
Miembro
 
Registrado: feb 2008
Posts: 24
Poder: 0
L3st4t Va por buen camino
Si algo así es lo que necesito.... Probé el código que me pasaste y no me llamo al evento.

Lo que pasa es que estaba tratando de llamar el Método desde el OnEnter pero me genera un error
Responder Con Cita
  #4  
Antiguo 16-10-2011
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

En principio, si los eventos comparten el mismo número y tipo de argumentos, pueden compartirse entre diferentes objetos o instancias de los mismos tipos de objeto. Por lo demás, a mí me parece que falta algo de información. Sin ir más lejos, dices que si usas "el método" desde el "OnEnter" te "genera un error". ¿Pero qué error? Eso no lo dices. Yo creo que podrías copiar aquí al menos parte de tu código y señalar dónde encuentras el error. O alguna forma de reproducir dicho error, de manera que sepamos con qué estamos tratando.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #5  
Antiguo 16-10-2011
Avatar de Sapt_86
Sapt_86 Sapt_86 is offline
Registrado
NULL
 
Registrado: oct 2011
Ubicación: Bahia Blanca, Argentina
Posts: 8
Poder: 0
Sapt_86 Va por buen camino
Intenta con esto:
Código Delphi [-]
procedure TForm1.btn1Enter(Sender: TObject);
begin
 ShowMessage('HOLA');
end;

procedure TForm1.edt1Enter(Sender: TObject);
begin
  btn1Enter(sender);
end;
Responder Con Cita
  #6  
Antiguo 16-10-2011
L3st4t L3st4t is offline
Miembro
 
Registrado: feb 2008
Posts: 24
Poder: 0
L3st4t Va por buen camino
Ok, Este es mi codigo

Código Delphi [-]
procedure TF_Principal.Button1Click(Sender: TObject);
Var Codigo: String;
begin
Codigo := EditCodigo.Text;
with DataM.MyQuery do
  begin
    SQL.Clear;
    SQL.Add('SELECT * FROM SFixed');
    SQL.Add('WHERE');
    SQL.Add('FX_CODIGO = :Codigo');
    SQL.Add('AND SFIXED.FX_TIPO =  :9');
    ParamByName('Codigo').AsString:= Codigo;
    ParamByName('9').AsString:= '9';
    RequestLive := true;
    Open;
    While EditCodigo.Text <> '' do
    begin
    IF  (FieldByName('FX_CODIGO').AsString <> Codigo)  then
       begin
       ShowMessage('El Accionista No Existe Pasar Por Administración');
       L_Aprobado.Visible := False;
       end;
    IF  (FieldByName('FX_CODIGO').AsString = Codigo)  AND (FieldByName('FX_SALDO').AsCurrency > 0) then
       begin
       ShowMessage('El Accionista Presenta Deuda Pasar Por Administración');
       L_Aprobado.Visible := False;
       end;
    IF  (FieldByName('FX_CODIGO').AsString = Codigo)  AND (FieldByName('FX_SALDO').AsCurrency = 0) then
       begin
       L_Aprobado.Visible := True;
       end;
    Break;
    end;
       IF  EditCodigo.Text = ''  then
          begin
          ShowMessage('Por Favor Ingrese ID del Accionista');
          end;


  end;
end;

Disculpen no me explique bien en cuanto el error..El error me lo da cuando copio ese mismo código en el evento Enter del edit.

Con los tips que me han dado aquí para llamar el método simplemente no hace nada. El programa corre perfectamente pero cuando le doy Enter no ejecuta nada.

Gracias por su colaboración

Saludos...
Responder Con Cita
  #7  
Antiguo 17-10-2011
Avatar de Sapt_86
Sapt_86 Sapt_86 is offline
Registrado
NULL
 
Registrado: oct 2011
Ubicación: Bahia Blanca, Argentina
Posts: 8
Poder: 0
Sapt_86 Va por buen camino
Hola L3st4t.

Creo entender lo que intentas hacer, si lo que quieres es que al presionar la tecla enter en el edit se ejecute el procedimiento que esta asociado al evento OnClick del boton, debes hacer lo siguiente, en el evento OnKeyUp del edit:

Código Delphi [-]
procedure TForm1.edt1KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if (Key= vk_return) then
    btn1.Click;
end;

o

Código Delphi [-]
procedure TForm1.edt1KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if (Key= vk_return) then
    btn1.OnClick(Sender);
end;

Ambos deberian funcionar. El evento OnEnter de algunos objetos no hace referencia a que se ejecuta cuando presionas la tecla enter.

Espero haberte ayudado, de lo contrario dime que error te muestra.

Saludos.
Responder Con Cita
  #8  
Antiguo 17-10-2011
Avatar de defcon1_es
defcon1_es defcon1_es is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuenca - España
Posts: 533
Poder: 21
defcon1_es Va por buen camino
¿Y no sería más claro y sencillo crear un procedimiento con el código que necesites?

Ejp:

Código Delphi [-]
procedure TF_Principal.MiProcedimiento;
Var Codigo: String;
begin
Codigo := EditCodigo.Text;
with DataM.MyQuery do
  begin
    SQL.Clear;
    SQL.Add('SELECT * FROM SFixed');
    SQL.Add('WHERE');
    SQL.Add('FX_CODIGO = :Codigo');
    SQL.Add('AND SFIXED.FX_TIPO =  :9');
    ParamByName('Codigo').AsString:= Codigo;
    ParamByName('9').AsString:= '9';
    RequestLive := true;
    Open;
    While EditCodigo.Text <> '' do
    begin
    IF  (FieldByName('FX_CODIGO').AsString <> Codigo)  then
       begin
       ShowMessage('El Accionista No Existe Pasar Por Administración');
       L_Aprobado.Visible := False;
       end;
    IF  (FieldByName('FX_CODIGO').AsString = Codigo)  AND (FieldByName('FX_SALDO').AsCurrency > 0) then
       begin
       ShowMessage('El Accionista Presenta Deuda Pasar Por Administración');
       L_Aprobado.Visible := False;
       end;
    IF  (FieldByName('FX_CODIGO').AsString = Codigo)  AND (FieldByName('FX_SALDO').AsCurrency = 0) then
       begin
       L_Aprobado.Visible := True;
       end;
    Break;
    end;
       IF  EditCodigo.Text = ''  then
          begin
          ShowMessage('Por Favor Ingrese ID del Accionista');
          end;
  end;
end;

y lo llamas cuando y donde lo necesites:

Código Delphi [-]
procedure TF_Principal.edt1KeyUp(Sender: TObject; var Key: Word;   Shift: TShiftState); 
begin   
  if (Key= vk_return) then     
    MiProcedimiento; 
end;

procedure TF_Principal.edt1Enter(Sender: TObject); 
begin   
  MiProcedimiento; 
end;
__________________
Progress Openedge
https://abevoelker.com/progress_open...dered_harmful/


Delphi forever...

Última edición por defcon1_es fecha: 17-10-2011 a las 13:59:12.
Responder Con Cita
  #9  
Antiguo 17-10-2011
L3st4t L3st4t is offline
Miembro
 
Registrado: feb 2008
Posts: 24
Poder: 0
L3st4t Va por buen camino
Gracias Sapt_86 Por tu respuesta... Muy agradecido


defcon1_es no podria esta mas deacuerdo contigo de hecho antes de postear la pregunta ya lo habia hecho pero resulta que cuando llamo el procedimiento mas de una vez me da un error que al parecer es de memoria y se posiciona en el
Código Delphi [-]
 Whit DataM.MyQuery do
por ende la aplicación no me corre y por tal motivo poestee la pregunta para ve que estaba haciendo mal.

Entonces que podrá ser?

Saludos
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
llamar a procedure desde otra procedure anubis Varios 23 04-03-2010 18:44:37
puntero a un procedure en un procedure como parametro fcios Varios 2 14-03-2009 03:41:22
Como Trasladar una aplicacion hecha en c++Builder Hacia Delphi rgstuamigo Varios 6 04-10-2008 14:24:40
trasladar el valor de un Qrexpr1 a un campo de tabla suppergus Varios 1 06-02-2005 11:04:47
Trasladar Marcas de un BMP a otro Jessica666 Gráficos 3 07-07-2004 02:17:37


La franja horaria es GMT +2. Ahora son las 20:47:45.


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