Ver Mensaje Individual
  #4  
Antiguo 23-08-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 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 mlara.

Me llama la atención que no funcione... debería. Por lo que hice una prueba simple y me funciona bién.

Aunque no lo aclaras, creo que no te dá un error sino que simplemente no se ejecuta el código...
Me parece que el problema lo tenés en la evaluación del Tag.

Probá esto:
.Un PopupMenu asignado a la propiedad PopupMenu del Form.
.En el PopupMenu,tres Menuitems 'nil', 'OnChange1', 'Onchange2' y en sus eventos OnClick asignado: itOnChangeClick
.Por último un Edit.
Código Delphi [-]
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Edit: TEdit;
    PopupMenu1: TPopupMenu;
    itNil: TMenuItem;
    itOnChange1: TMenuItem;
    itOnChange2: TMenuItem;
    procedure itOnChangeClick(Sender: TObject);
  private
    procedure EditChange1(Sender: TObject);
    procedure EditChange2(Sender: TObject);
  public
  end;

var
  Form1: TForm1;

implementation {$R *.dfm}

procedure TForm1.EditChange1(Sender: TObject);
begin
  ShowMessage('OnChange 1')
end;

procedure TForm1.EditChange2(Sender: TObject);
begin
  ShowMessage('OnChange 2');
end;

procedure TForm1.itOnChangeClick(Sender: TObject);
begin
  case TMenuItem(Sender).Tag of
    1: Edit.OnChange:= nil;
    2: Edit.OnChange:= EditChange1;
    3: Edit.OnChange:= EditChange2;
  end;
end;

end.

Tecleá en el edit seleccionando las opciones del PopupMenu...


Saludos.

Última edición por ecfisa fecha: 23-08-2010 a las 21:41:46.
Responder Con Cita