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 06-01-2006
Avatar de federiconqn21
federiconqn21 federiconqn21 is offline
Miembro
 
Registrado: dic 2005
Posts: 95
Poder: 19
federiconqn21 Va por buen camino
Pequeña inquietud sobre los popup menues

Hola a Todos:quisiera manifestar una inquietud,a ver quien me la podria responder.
estoy trabajando con una listbox y un popup menu.la idea es que con el popup menu,al hacer click derecho sobre un elemento de la lista,se despliegue mostrandome distintas operaciones a realizar como por ejemplo eliminar un elemento,renombrarlo,etc.
hasta aca todo bien,el tema es que para que haga click derecho sobre un elemento de la lista,primero deberia estar seleccionado ese elemento(con click izquierdo),porque con el click derecho no se selecciona(solo abre el popup menu) y si no hay elemento alguno de la lista seleccionado,me aparecera un error que me dice que el indice esta fuera de rango,o algo asi.Quisiera saber como hacer para que en el mismo click derecho,se desplieque el popup menu y se seleccione el item de mi lista.Gracias a quien me pueda ayudar
Salu2
Responder Con Cita
  #2  
Antiguo 06-01-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Lo que puedes hacer es aprovechar el evento "OnPopup" del menú. Ese evento se dispara justo antes de mostrarse el menú, con lo cual puedes verificar que existe algún elemento seleccionado en la lista, por ejemplo, de tal manera que actualizes los items del menú que sean menester: habilitándolos o no según se precise.

También podrías hacer uso del componente "TActionList". Puedes asociar items del menú a diferentes "TActions", con la particularidad de que estas acciones cuentan con un evento "OnUpdate" e incluso con una propiedad "Enabled": habilitando una acción estarás habilitando el item del menú correspondiente, y viceversa.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 06-01-2006
Avatar de federiconqn21
federiconqn21 federiconqn21 is offline
Miembro
 
Registrado: dic 2005
Posts: 95
Poder: 19
federiconqn21 Va por buen camino
hola,lei atentamente tu respuesta,
quisiera saber como verifico que un elemento este seleccionado cuando se dispara el evento onpopup.La idea es que si dispono de una lista de n elementos,cualquier elemento en el que hago click derecho se debe seleccionar y mostrar el popup menu.
Responder Con Cita
  #4  
Antiguo 06-01-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Creo que esto te puede funcionar. En el evento OnMouseDown del ListBox pones:

Código Delphi [-]
var
  Pt: TPoint;
  Index: Integer;

begin
  // Determinar si es el botón derecho
  if Button = mbRight then
  begin
    // Buscar el índice del elemento bajo el cursor del ratón
    Pt := Point(X, Y);
    Index := ListBox1.ItemAtPos(Pt, true);

    // Si hay elemento bajo el cursor...
    if Index <> -1 then
    begin
      // Seleccionarlo
      ListBox1.ItemIndex := Index;

      // y mostrar el menú
      Pt := ListBox1.ClientToScreen(Pt);
      PopupMenu1.Popup(Pt.X, Pt.Y);
    end;
  end;
end;

// Saludos
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


La franja horaria es GMT +2. Ahora son las 17:45:09.


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