Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
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-05-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
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 Neeruu.

Una forma de hacer lo que buscas podría ser esta:

Form que invoca:
Código Delphi [-]
...
implementation
uses Unit2;

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
                 Shift: TShiftState; X, Y: Integer);
begin
 if Button = mbRight then  // Botón derecho
    TForm2.PopUp(ActiveControl.Left,ActiveControl.Top); // Mostrar ventana contextual
end;

procedure TForm1.FormClick(Sender: TObject);
begin
  if Assigned(Form2) then
    Form2.Close;  // Cerrar ventana contextual
end;

Form contextual:
Código Delphi [-]
...
implementation


class procedure TForm2.PopUp(ALeft,ATop: Integer);
begin
  if not Assigned(Form2) then
  begin
    Form2:= TForm2.Create(nil);
    with Form2 do
    begin
      FormStyle:= fsNormal;
      BorderIcons:=[];
      BorderStyle:= bsSingle;
    end;
    Form2.Left:= Form2.Left + ALeft;
    Form2.Top:= Form2.Top + ATop;
  end;
  Form2.Show;
end;

....

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

procedure TForm2.FormDestroy(Sender: TObject);
begin
   Form2:= nil;
end;
Pero no se comporta como un TPopupMenu ya que no se puede asignar a un control determinado y sólo responde a los eventos OnMouseDown y OnClick
del form invocante...

Tal vez te sirva de base para elaborar alguna otra idea...

Saludos.
__________________
Daniel Didriksen

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

Última edición por ecfisa fecha: 28-05-2011 a las 21:39:40.
Responder Con Cita
  #2  
Antiguo 28-05-2011
Neeruu Neeruu is offline
Miembro
 
Registrado: oct 2007
Posts: 513
Poder: 19
Neeruu Va por buen camino
Cool Popup Personalizado

Me sirve... Gracias....

Es así como lo pense... pero cuando me abre el popup (form2)
el form1 pierde el foco... quedando inactivo...

Y es eso justamente lo que no quiero.

Fijarse que cuando se desplega un popupmenu... la ventana no queda inactiva..


Saluda Atte Neeruu!!!

PD:/ Como se cuando los componentes de un panel no tienen el foco???
o como puedo saber cuando un panel no tiene ningun componente con foco???
__________________
Saluda Atte Neeruu!!! :)
Responder Con Cita
  #3  
Antiguo 29-05-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
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.

De esta forma creo que vas a evitar la pérdida del foco.
Código Delphi [-]
uses Unit2;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Panel1.Visible:= False;
end;

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
                 Shift: TShiftState; X, Y: Integer);
begin
  if Button = mbRight then
  begin
    Panel1.Visible:= True;
    with TForm2.Create(Self) do
    begin
      ManualDock(Panel1, nil, alClient);
      Align := alClient;
      Show;
    end;
  end;
end;

procedure TForm1.FormClick(Sender: TObject);
begin
  if Panel1.Visible then
  begin
    Form2.Free;
    Panel1.Visible:= False;
  end;
end;

El uso de ManualDock en lugar del tradicional 'Form2.Parent:= Panel1' para mí era una novedad hasta hace muy poco.
Es un dato que se lo debo al amigo Neftalí, quíen explica muy bién sus ventajas [ aquí ].

Saludos.
__________________
Daniel Didriksen

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

Última edición por ecfisa fecha: 29-05-2011 a las 01:47:55.
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
Mensaje personalizado sizne OOP 2 29-06-2010 23:40:05
Crear un TEdit personalizado mcsebas Varios 12 28-01-2010 08:46:55
ClientDataSet personalizado diegofhernando OOP 6 17-04-2009 19:38:35
Relleno personalizado MAXIUM Gráficos 2 07-02-2009 17:00:55
Problemas con un cursor personalizado Damisela OOP 2 21-01-2004 15:28:05


La franja horaria es GMT +2. Ahora son las 10:12:04.


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