Fórum Click direito do mouse e abra um menu popup #262536

17/12/2004

0

galera tenho um popup em uma Image1

como faço pro popup aparecer no cilque esquerdo normal, nao no direito

Valew, tem alguma coisa a evr com akele WMI?!


Abraços...


Tremonti

Tremonti

Responder

Posts

18/12/2004

Sanses

já a algum tempo vi um post aqui mesmo no fórum onde havia uma função que testava qual botão do mouse havia sido pressionado. Da uma procurada ai que vc encontra, ai é só modificar para que faça o que vc deseja


Responder

Gostei + 0

18/12/2004

Sanses

olha, pode ser que vc encontre uma forma mais fácil e melhor de se fazer isso, mas se quiser, fiz um exemplo aqui de como vc pode trocar os botões do mouse e depois destrocar, tambem pode testar se estão trocados ou não - as funções foram retiradas do dtdelphi 2.5. Com estas funções basta vc fazer com que quando o mouse estiver emcima do seu image ele troque os botões, ai com o popup ligado ao image, basta adicionar os procdimentos que devem ocorrer. Dá uma olhada na unit:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
function MouseSwapButtons(const Swap: boolean): boolean;
begin
  Result := Windows.SwapMouseButton(LongBool(Swap));
end;

function MouseSwappedButtons: boolean;
begin
  Result := GetSystemMetrics(SM_SWAPBUTTON) <> 0;
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
 if MouseSwappedButtons then
   showmessage(´trocado´)
   else
   showmessage(´correto´)
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
   MouseSwapButtons(true);
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
   MouseSwapButtons(false);
end;

end.


Espero que lhe seja útil.


Responder

Gostei + 0

04/10/2005

Hebrao

E ai amigons? Beleza?

Se for só aparecer o seu popup com o clique normal, faça o seguinte...

No evento OnClick da figura, coloque o seguinte codigo:

[b:2e2d9baa58]PopupMenu.Popup(x, y);[/b:2e2d9baa58] // Onde x e y são as pos. que o menu aparece.
Ex:

PopupMenu.Popup(100, 150);

Espero ter ajudado. :D

Falow.


Responder

Gostei + 0

04/10/2005

Massuda

como faço pro popup aparecer no cilque esquerdo normal, nao no direito
Para que seu popup apareça quando der um clique no Image1, faça algo assim (não testei)...
type
  TSeuForm = class(...
  ...
  private
    FUltimoX, FUltimoY: Integer;
...
// no evento OnMouseDown do seu TImage
procedure TSeuForm.Image1MouseDown(...
begin
  FUltimoX := X;
  FUltimoY := Y;
  ...
end;

// no evento OnClick do seu TImage...
procedure TSeuForm.Image1Click(...
begin
  SeuPopup.Popup(FUltimoX, FUltimoY);
end;



Responder

Gostei + 0

04/10/2005

Marcio.theis

Em uma aplicação minha eu fiz desta forma:

Coloquei no evento OnClick do componente Image o seguinte código:

var
  Pt: TPoint;
begin
GetCursorPos(Pt);
PopupMenu.Popup(Pt.x, Pt.y);



Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar