Ver Mensaje Individual
  #7  
Antiguo 22-04-2019
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.

A ver si lo que buscas es algo así...


Form de la grilla:
Código Delphi [-]
...
const
  WM_AFTER_CREATE = WM_USER + 300;
type
  TForm1 = class(TForm)
    DBGrid1: TDBGrid;
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
    procedure WmAfterCreate(var Msg: TMessage); message WM_AFTER_CREATE;
    procedure WMMoving(var Msg: TMessage); message WM_MOVING;
    procedure LocateForm2;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation  {$R *.dfm}

uses Unit2, Unit3{datos};

procedure TForm1.FormCreate(Sender: TObject);
begin
  Form2 := TForm2.Create(Self);
  Form2.BorderStyle := bsToolWindow;
  Form2.BorderIcons := [];
  Form2.FormStyle   := fsStayOnTop;
  PostMessage(Self.Handle, WM_AFTER_CREATE, 0, 0);
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Form2.Close;
end;

//------------------------------------------------------------------------------
procedure TForm1.WmAfterCreate(var Msg: TMessage);
begin
  Form2.Show;
  LocateForm2;
end;

// Form1 se ha movido, reposicionar Form2.
procedure TForm1.WMMoving(var Msg: TMessage);
begin
  LocateForm2;
end;

// Posicionar Form2
procedure TForm1.LocateForm2;
begin
  Form2.Left := Self.Left + Self.Width;
  Form2.Top  := Self.Top + Self.Height - Form2.Height;
end;
end.

Form de la imágen:
Código Delphi [-]
...
type
  TForm2 = class(TForm)
    DBImage1: TDBImage;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
    procedure WMSysCommand(var Msg: TWMSysCommand); message WM_SYSCOMMAND;
  public
    { Public declarations }
  end;

var
  Form2: TForm2;

implementation  {$R *.dfm}

uses Unit3 {datos};

//...

procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action := caFree;
end;

//------------------------------------------------------------------------------
// Form2 no se mueve
procedure TForm2.WMSysCommand(var Msg: TWMSysCommand);
begin
  if Msg.CmdType and $FFF0 = SC_MOVE then
    Msg.Result := 0
  else 
    inherited;
end;
end.

Saludos
__________________
Daniel Didriksen

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