Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-05-2011
Neeruu Neeruu is offline
Miembro
 
Registrado: oct 2007
Posts: 485
Poder: 17
Neeruu Va por buen camino
Cool Popup Personalizado

Hola a Todos!!!

Necesito de si ayuda... Necesito hacer un Popup pero personalizado.

Que quiero decir??

Necesito crear ya se un panel o un formulario (con elementos adentro) y poder invocarlo como si fuera un popup y que se comporte como un popup...

Un Ejemplo muy tosco de lo que necesito...

Código Delphi [-]
 MyPopup := TPopupPersonalizado(Panel o Form o cualquier contenedor);
 MyPopup.popup(50,50)

Alguien me puede dar una ayuda...


Saluda Atte Neeruu

PD/: A que se comporte como un popup me refiero a que cuando se haga click en cualquier lugar del formulario, (que no sea el popup) este desaparesca.
__________________
Saluda Atte Neeruu!!! :)
Responder Con Cita
  #2  
Antiguo 28-05-2011
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
No entiendo bien el problema.
Me da la impresion de que lo que necesitas es simplemente crear el elemento en ejecucion.
Aunque tambien se puede hacer con un simple UNIT.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #3  
Antiguo 28-05-2011
Neeruu Neeruu is offline
Miembro
 
Registrado: oct 2007
Posts: 485
Poder: 17
Neeruu Va por buen camino
Cool Popup Personalizado

Hola...

No necesito crear un item...

lo que necesito es que el popup, al desplegarlo, contenga , un formulario por ejemplo, o una grilla, o un simple abm....

Puedo hacerlo con otro form....
Pero si hago esto ... la ventana donde se muestra el popup pierde el foco...

O sea desde un form1 llamo a un form2 (form2 simula un popup).
Pero el Form1 pierde el foco.... y quier conseguir que eso no sucesa....

Si desplegamos un popup el form no pierde el foco...

Si sigo sin explicarme avisame.... Volvere a interntarlo...

Saluda Atte Neeruu...
__________________
Saluda Atte Neeruu!!! :)
Responder Con Cita
  #4  
Antiguo 28-05-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 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 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
  #5  
Antiguo 28-05-2011
Neeruu Neeruu is offline
Miembro
 
Registrado: oct 2007
Posts: 485
Poder: 17
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
  #6  
Antiguo 29-05-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 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.

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



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 08:37:19.


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