Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
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 28-10-2005
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 30
jachguate Va por buen camino
Ampliando lo ya dicho por vtdeleon, solamente quiero apuntar que en la implementación que tenes del método Edit1Change, aunque efectivamente este se disparará para todos los edits que crees dinamicamente, en realidad seguirá actuando sobre Edit1, es decir, aún cuando el que esté cambiando es edit3, seguirá evaluando el valor de edit1 (y cambiandolo).

Supongo que lo que queres es que si Edit3 es el que cambia, sea el valor de este el que se modifique. En este caso, podes valerte del parámetro Sender del método, que traerá una referencia al edit que en realidad ha disparado el evento. Así, podes tener un solo método atendiendo los eventos de muchos objetos.

La codificación debiera lucir algo similar a lo siguiente:

Código Delphi [-]
procedure TFormulario.Edit1Change(Sender: TObject);
var
  EditCambia : TEdit; 
begin
  EditCambia := Sender as TEdit;
  if EditCambia.Text = '' then
  begin
    EditCambia.Text := '0';
    EditCambia.SelectAll;
  end;
end;

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #2  
Antiguo 28-10-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Los muy puntillosos añadirían al principio:

Código Delphi [-]
if Sender is TEdit

Es que hay cada exagerado

// Saludos
Responder Con Cita
  #3  
Antiguo 28-10-2005
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.964
Poder: 29
delphi.com.ar Va camino a la fama
Otra opción puede ser que el scope de la variable edt1 en lugar de estar dentro del procedimiento create, pertenezca a la clase...
¿Porqué creas un objeto tan estático, que aparentemente siempre se crea, en tiempo de ejecución?
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #4  
Antiguo 28-10-2005
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 30
jachguate Va por buen camino
Cita:
Empezado por roman
Los muy puntillosos añadirían al principio:

Código Delphi [-]
if Sender is TEdit

Es que hay cada exagerado

// Saludos
Suelo implementar esta interfaz "TPuntilloso", por eso he hecho un casteo seguro, con as. Si el sender no fuese un TEdit, saltará la excepción EInvalidTypeCast, protegiendo el código a la perfección, y siguiendo correctamente las sanas prácticas de programación: Si se rompe el contrato, se eleva una excepción.

Claro, con is se podria evitar esta excepción y no hacer nada, pero parece que en esta situación bastará con que se eleve.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #5  
Antiguo 28-10-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
¡Ah maestrooo! ¡Cuánta razón tienes! (De verdad)

Es esa costumbre mía de evitar el salto de excepciones si puedo verificarla previamente.

// Saludos
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


La franja horaria es GMT +2. Ahora son las 14:32:17.


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