Ver Mensaje Individual
  #12  
Antiguo 14-05-2015
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 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 pacopepin.

Afinando un poco el lápiz podría quedar así:
Código Delphi [-]
unit uPanelHide;

interface

uses Messages, Classes, Controls, ExtCtrls;
type
  TPanel = class(ExtCtrls.TPanel)
  private
    FInPanel: Boolean;
    procedure MouseEnter(var Msg: TMessage); message CM_MOUSEENTER;
    procedure MouseLeave(var Msg: TMessage); message CM_MOUSELEAVE;
  public
    property InPanel: Boolean read FInPanel;
  end;

implementation

procedure TPanel.MouseEnter(var Msg: TMessage);
begin
  FInPanel := True;
end;

procedure TPanel.MouseLeave(var Msg: TMessage);
begin
  FInPanel := False;
end;

end.

Form donde se quiere usar:
Código Delphi [-]
unit Unit2;

interface

uses
  Windows, Messages, ..., ExtCtrls, uPanelHide;

type
  TForm2 = class(TForm)
    Panel1: TPanel;
...

form principal:
Código Delphi [-]
...
procedure TForm1.MouseEvent(var Msg: tagMsg; var Handled: Boolean);
begin
  if ( Msg.message = WM_LBUTTONDOWN ) or ( Msg.message = WM_RBUTTONDOWN ) then
  begin
    if Assigned(Form2) then
      with Form2.Panel1 do Visible := InPanel;
    //...
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Application.OnMessage := MouseEvent;
end;

Saludos
__________________
Daniel Didriksen

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

Última edición por ecfisa fecha: 14-05-2015 a las 22:00:47.
Responder Con Cita