Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-11-2013
Toni-2006 Toni-2006 is offline
Miembro
 
Registrado: ene 2007
Posts: 11
Poder: 0
Toni-2006 Va por buen camino
Smile Hacer que aparezca el PopUpMenu encima del elemento seleccionado

Hola a todos.

Tengo un PopUpMenu dentro de un FileListBox que se activa siempre y cuando haya seleccionado un elemento del FileListBox (sin MultiSelect). El problema es que no se hacer que aparezca el PopUpMenu encima del elemento seleccionado y no en la posición donde esté el cursor.

Muchas gracias y un saludo.
Responder Con Cita
  #2  
Antiguo 26-11-2013
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 Toni-2006.

Se me ocurre que podrías hacer:
Código Delphi [-]
// Desactivar selección múltiple y desasociar popupmenu
procedure TForm1.FormCreate(Sender: TObject);
begin
  with FileListBox1 do
  begin
    MultiSelect:= False;
    PopupMenu  := nil;
  end;
end;;

// Obtener el ítem seleccionado
function SelectedItemIndex(FLB: TFileListBox): Integer;
var
  i: Integer;
begin
  Result:= -1;
  for i:= 0 to FLB.Items.Count-1 do
   if FLB.Selected[i] then
   begin
     Result:= i;
     Exit;
   end;
end;

procedure TForm1.FileListBox1MouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
  P : TPoint;
  SI: Integer;
begin
  SI :=  SelectedItemIndex(FileListBox1);
  if (ssRight in Shift) and (SI <> -1) then
  begin
    P.X:= FileListBox1.Left + X;
    P.Y:= FileListBox1.Top + SI * FileListBox1.ItemHeight + FileListBox1.ItemHeight;
    P  := ClientToScreen(P);
    PopupMenu1.Popup(P.X, P.Y);
  end;
end;

Otra opción es usar el evento OnMouseMove para que el ítem quede seleccionado cuando el mouse pasa por encima:
Código Delphi [-]
procedure TForm1.FileListBox1MouseMove(Sender: TObject; Shift: TShiftState;
  X, Y: Integer);
begin
  with Sender as TFileListBox do
   ItemIndex := ItemAtPos(Point(x,y), True);
end;
Pero de este modo no se seleccióna el ítem mediante el clíck del mouse...

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 27-11-2013
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 23
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
Toni-2006,

Cita:
Empezado por Toni-2006
...no se hacer que aparezca el PopUpMenu encima del elemento seleccionado y no en la posición donde esté el cursor...
Esta es una variante del código sugerido en el Msg #2:
Código Delphi [-]
procedure TForm1.FileListBox1MouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
   P : TPoint;
   SI: Integer;
begin
   SI :=  SelectedItemIndex(FileListBox1);
   if (ssRight in Shift) and (SI <> -1) then
   begin
      P.X:= FileListBox1.Width - FileListBox1.Left + 40;
      // Popup Menu Sobre el Item Seleccionado
      P.Y:= FileListBox1.Top + SI * FileListBox1.ItemHeight - 50;
      P  := ClientToScreen(P);
      PopupMenu1.Popup(P.X, P.Y);
   end;
end;
El código anterior muestra un TPopupMenu sobre un Item seleccionado en un TFileListBox como se muestra en la siguiente imagen:



Espero sea útil

Nelson.
Responder Con Cita
  #4  
Antiguo 27-11-2013
Toni-2006 Toni-2006 is offline
Miembro
 
Registrado: ene 2007
Posts: 11
Poder: 0
Toni-2006 Va por buen camino
Mucha gracias, me quedo con la opción del OnMouseMove. Es la ideal para mi.
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
Elemento seleccionado de un ListBox Tecnic2 OOP 12 22-05-2007 11:39:18
Ültimo elemento seleccionado en un combobox verodelphi Lazarus, FreePascal, Kylix, etc. 3 27-11-2006 14:44:47
Saber el elemento seleccionado en un treeview Manuel Varios 3 23-10-2006 18:25:31
Elemento seleccionado en un ComboBox verodelphi Lazarus, FreePascal, Kylix, etc. 2 25-09-2006 14:53:04
Elemento seleccionado de un ListView Tecnic2 OOP 4 09-06-2005 16:09:29


La franja horaria es GMT +2. Ahora son las 23:53:06.


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