Fórum Opção do menu #229922
04/05/2004
0
Gostaria de saber se tem como eu ´capturar´ a opção clicada no menu, deixa eu explicar melhor:
O meu sistema cria em run time um PopUp Menu, só que eu preciso saber em que opção o usuário clçicou pois para cada opção é um evento diferente.
Grato
Angelo
Curtir tópico
+ 0Posts
04/05/2004
Tinorj
{...}
procedure PMRTClick(Sender: TObject);
{..}
procedure PMRTClick(Sender: TObject);
begin
if (Sender = miOp1) then
ShowMessage(´Opção 1´)
end;
procedure CriaPopupMenu;
begin
//Rotinas de criação do popupmenu
//Após a criação do seu TPopupMenu, informar a procedure para trabamento do evento On Click.
PopupMenuRunTime.OnClick := PMRT;
end;Espero ter ajudado.
Gostei + 0
04/05/2004
Angelo
Valeu
Gostei + 0
04/05/2004
Angelo
O seguinte, eu tenho uma tabela com usuários, que conforme a situação do sistema estão ´On-Line´, ou ´Off-Line´, bem, esse popup menu é criado a partir dos usuários que estâo on-line, ou seja, eu tenho uma query que armazena todos os usuários on-line e com um loop eu incremento no menu o nome deles. Bem até aí tudo legal, o problema surge quando clico no menu com o nome do determinado usuário, eu tenho que saber exatamente qual o susuário clicado, pois aí pelo nome do cidadão, eu faço uma consulta na tabela pedo o ip da máquina que ele está trabalhando e mando uma mensagem para ele.
Agradeceria muito se vc pudesse me ajudar nessa.
Valeu colega!
Gostei + 0
04/05/2004
Tinorj
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, DBCtrls, Grids, DBGrids, DB, DBClient, StdCtrls,
Buttons, Menus;
type
TForm1 = class(TForm)
ClientDataSet1: TClientDataSet;
ClientDataSet1Usuario: TStringField;
ClientDataSet1OnLine: TBooleanField;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
DBNavigator1: TDBNavigator;
BitBtn1: TBitBtn;
PopupMenu1: TPopupMenu;
procedure BitBtn1Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure PopupMenu1Popup(Sender: TObject);
procedure PopupMenu1PopupClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.BitBtn1Click(Sender: TObject);
var i: integer;
begin
with ClientDataSet1 do
for i := 1 to 10 do begin
append;
ClientDataSet1Usuario.AsString := ´usuario´ + inttostr(i);
ClientDataSet1OnLine.AsBoolean := ((i mod 3) = 0);
Post;
end;
end;
procedure TForm1.FormShow(Sender: TObject);
begin
ClientDataSet1.CreateDataSet;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
ClientDataSet1.EmptyDataSet;
end;
procedure TForm1.PopupMenu1Popup(Sender: TObject);
var
menuppp: tmenuitem;
begin
with PopupMenu1 do begin
Items.Clear;
if not ClientDataSet1.Active then
exit;
ClientDataSet1.First;
while not ClientDataSet1.eof do begin
if ClientDataSet1OnLine.AsBoolean then begin
menuppp := TMenuItem.Create(nil);
menuppp.Caption := ClientDataSet1Usuario.AsString;
menuppp.Name := ´mi´ + ClientDataSet1Usuario.AsString;
menuppp.OnClick := PopupMenu1PopupClick;
Items.Add(Menuppp);
menu.Free;
menu := nil;
end;
ClientDataSet1.Next;
end;
end;
end;
procedure TForm1.PopupMenu1PopupClick(Sender: TObject);
begin
MessageBeep(1);
ShowMessage((Sender AS TMenuItem).Name);
//Aqui você vai colocar sua pesquisa
end;
end.Espero ter ajudado
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)