Ver Mensaje Individual
  #7  
Antiguo 13-12-2005
Avatar de Ohcan
[Ohcan] Ohcan is offline
Miembro Premium
 
Registrado: ago 2004
Ubicación: Madrid (España)
Posts: 119
Reputación: 22
Ohcan Va por buen camino
Wink

Bueno, pues ya está :
Código Delphi [-]
//OnClick del botón
procedure TwPrincipal.btPruebaClick(Sender: TObject); 
var
  Punto:TPoint;
begin
  if btPrueba.Down then
    begin
      GetCursorPos(Punto);
      pmPrueba.Popup(Punto.X,Punto.Y);
      Application.ProcessMessages; //Esto me faltaba
      btPrueba.Down := False; //Por si no selecciono nada del menu
    end;
end;

//Se lo asigno al OnClick de ambos Items:
procedure TwPrincipal.ItemA1Click(Sender: TObject); 
begin
  //Sólo para que hagan algo
  ShowMessage('Item: ' + TComponent(Sender).Name);
  //Aquí puede ponerse btPrueba.Down := False; 
  //para que no se levante ... o no hacerlo y así quedrá pulsado
  //mientras vemos el mensaje y se levantará al aceptarlo
end;
¿Porqué todo esto?
Tenía, como Román, un SpeedButton que me despliega un Popup y lo que quería: si no se seleccionaba nada en el menú, levantar el botón. Y si se seleccionaba algo que saliera un formulario pero que se viera que el botón seguía abajo...
Al principio, sin el ProcessMessages, puse un btPrueba.Down := False antes del ShowMessage del click del menu, pero eso causaba que se viera al botón levantarse y volverse a presionar... y no me gustaba.

Pues esa es la historia... espero que no haya aburrido a nadie

Saludos,
__________________
La violencia es el último recurso del incompetente. (Salvor Hardin)
Responder Con Cita