动态生成一个memo,怎样定义它的onMouseUp等事件?

解决方案 »

  1.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, Grids,  DB, DBTables, DBGrids, StdCtrls, Mask;type
      TForm1 = class(TForm)
        Button1: TButton;
        procedure Button1Click(Sender: TObject);    procedure MouseUp(Sender: TObject; Button: TMouseButton;
          Shift: TShiftState; X, Y: Integer);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
    var
      Memo:Tmemo;
    begin
    try
      memo:=Tmemo.Create(self);
      memo.Top:=10;
      memo.Left:=10;
      memo.Parent:=form1;
      memo.OnMouseUp:= mouseup;
      memo.Show;
    except
      memo.Free;
    end;
    end;procedure TForm1.MouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    begin
      showmessage('mouse up');
    end;end.
      

  2.   

    对不起,我没把题目说完整,我想实现的是当点击MEMO时,Memo.enabled := False;
    当MemoUp时,Memo.Enabled := True;谢谢
      

  3.   

    我用下面的为什么不行?
    procedure TFrmQueue.MemoMouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    begin
        if Sender is TMemo then
        (sender as TMemo).Enabled := False;
    end;
      

  4.   

    我用下面的为什么不行?
    procedure TFrmQueue.MemoMouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    begin
        if Sender is TMemo then
        (sender as TMemo).Enabled := False;
    end;
    ---------------------------------------------
    我试过了没问题!
    是不是你其他地方有错啊?
      

  5.   

    看来是窗口调用的问题,我的MEMO是在FORM1中生成的,事件也是在FORM1中定义的,但在FORM2中调用FORM1中的一个过程打印出MEMO后,事件就不起作用了,怎么办?
      

  6.   

    那你在FORM2中定义好了
    有问题请发信息到我的E-mail:[email protected]