Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   ¿Se puede añadir a un TPanel OnMouseLeave? (https://www.clubdelphi.com/foros/showthread.php?t=22547)

Tonio 18-06-2005 17:45:20

¿Se puede añadir a un TPanel OnMouseLeave?
 
He econtrado un ejemplo, en unos componentes de un curso, pero el TPanel en el que lo tiene implementado, no me funciona.
La pregunta, como pongo en el enunciado, ¿Se puede?, si es afirmativo, necesitaría un empujoncito inicial.
Gracias.
Tonio

roman 18-06-2005 20:44:46

Sí se puede pero creando una nueva componente derivada de TPanel. En ella creas un manejador para el mensaje CM_MOUSELEAVE (no estoy 100% seguro de la exactitud del nombre pero es algo así).

A tu componente le agregas un evento declarando una variable privada

FOnMouseLeave: TNotifyEvent y una propiedad publicada:

property: OnMouseLeave: TNotifyEvent
read FOnMouseLeave write FOnMouseLeave;

En el manejador del mensaje CM_MOUSELEAVE lanzas el evento:


Código Delphi [-]
if Assigned(FOnMouseLeave) then
  FOnMouseLeave(Self);

// Saludos

Tonio 20-06-2005 21:46:51

Gracias por tu rápida respuesta, yo tardo algo más.
He estado haciendo pruebas, éste es el código que he empleado:

Código Delphi [-]
unit PanelM;

interface

uses
  Windows, Messages, SysUtils, Classes, Controls, ExtCtrls;

type
  TPanelM = class(TPanel)
  private
  FOnMouseLeave: TNotifyEvent;
    { Private declarations }
  protected
    { Protected declarations }
  public
   property OnMouseLeave: TNotifyEvent read FOnMouseLeave write FOnMouseLeave;
    { Public declarations }
  published
     { Published declarations }
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('MiPanel', [TPanelM]);
end;

end.

¿Que hago mal?, no sale el evento en el inspector de objetos.

Gracias.
Un saludo.

Antonio.

roman 20-06-2005 21:50:55

Simplemente baja la declaración de la propiedad a la sección published.

Esta es la diferencia entre pública (public) y publicada (published). Ambas son secciones públicas pero la segunda es para publicar las propiedades en el inspector de objetos.

// Saludos

Tonio 20-06-2005 23:14:37

Gracias, funcionó.

Sabía que era yo el que lo hacía mal.
Son varias las respuestas que he recibido de Román, creo que a todas las preguntas que he hecho al foro y siempre correctas.

Saludos.
Antonio.


La franja horaria es GMT +2. Ahora son las 13:14:08.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi