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 09-06-2008
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.142
Poder: 36
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

No estoy muy puesto, pero, me parece que podrías comprobar si el evento en cuestión está asignado, y, si lo está, "dispararlo", algo así como:

Código Delphi [-]
if Assigned(FOnChange) then
begin
  FOnChange(Self);
end;

Tendrás que probar a ver si no explota algo.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #2  
Antiguo 09-06-2008
Angel Fernández Angel Fernández is offline
Miembro
 
Registrado: may 2004
Ubicación: Valencia - España
Posts: 141
Poder: 23
Angel Fernández Va por buen camino
Gracias dec por tu respuesta.

Sin embargo, no me funciona. Salta el error de access violation at ......

Por lo visto, si escribo algo en el evento onchange, ya no se activa el nuevo onchange creado por mí.

Buf, seguiré investigando.

Un saludo.
Responder Con Cita
  #3  
Antiguo 09-06-2008
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 26
maeyanes Va por buen camino
Hola...

Te recomiendo que uses el método protegido Change del TEdit para hacer lo que quieres.

Código Delphi [-]
TMyEdit = class(TEdit)
protected
  procedure Change; override;
end;

implementation

procedure TMyEdit.Change;
begin
  // Código propio
  inherited
end;


Saludos...

Edit.

Quité la referencia al hilo de Dec ya que el tema tratado en ese hilo era en realidad otro...

Última edición por maeyanes fecha: 09-06-2008 a las 15:26:35.
Responder Con Cita
  #4  
Antiguo 09-06-2008
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 19.440
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
El método Change que has colocado funciona perfectamente, pero te falta definir el inherited en el changed del componente (no en el evento).

Has sobreescrito (supongo) el método Changed en tu componente con la clausula override, así que si no llamas al inherited desde tu método perderás todo el código que se ejecuta en los predecesores(antecesores) de tu componente. En concreto en TCustomEdit.Change se lanza el evento OnChange, por lo tanto, al no colocar inherited en tu componente ese evento deja de funcionar.

Código Delphi [-]
procedure TColorEdit.Change;
begin
  inherited;

  if FMode = MOpenFile then
    if fileexists(text) then
    begin

   .....

EDITO: Veo que se me adelantaron...
Esto me pasa por no refrescar las ventanas...
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #5  
Antiguo 09-06-2008
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 26
maeyanes Va por buen camino
Hola...

Neftali, solo que el método Change que colocó Angel Fernandez es en realidad un manejador de eventos, checa la firma del método: procedure TColorEdit.Change(Sender: TObject);. Claro que en tiempo de diseño al asignar el evento OnChange, se pierde la referencia al método especificado.


Saludos...
Responder Con Cita
  #6  
Antiguo 09-06-2008
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 19.440
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por maeyanes Ver Mensaje
...solo que el método Change que colocó Angel Fernandez es en realidad un manejador de eventos, checa la firma del método: procedure TColorEdit.Change(Sender: TObject)
Gracias maeyanes.
No me había fijado en el parámtero y estaba suponiendo que ha sobreescrito el método cuando realmante no es así.

He ahí el error.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #7  
Antiguo 09-06-2008
Angel Fernández Angel Fernández is offline
Miembro
 
Registrado: may 2004
Ubicación: Valencia - España
Posts: 141
Poder: 23
Angel Fernández Va por buen camino
Gracias a todos.

Lo que me ha indicado maeyanes funciona perfectamente.

Lo subo por si a alguien le interesa o quiere utilizarlo como base para otra cosa.

Un saludo.
Archivos Adjuntos
Tipo de Archivo: zip ColorEdit.zip (21,5 KB, 3 visitas)
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
Impedir edición en un componente derivado de TCustomComboBox MON___ OOP 2 21-11-2007 17:38:48
Enlazar un control derivado de TEdit a una grilla PabloV OOP 2 27-05-2007 10:47:57
Construir un componente derivado de DBLookupCombo JulioGO OOP 0 11-10-2004 17:28:30
Problema con Componente derivado de TPanel y Botones Critter Varios 4 05-09-2004 11:08:55
Componente derivado de DBEdit que active un hint con un dato específico HombreSigma OOP 4 15-07-2003 11:42:07


La franja horaria es GMT +2. Ahora son las 21:18:16.


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