我想点击一个按钮,调用image的onmousedown,不点击的话就不调用,即只有再次点击按钮时才调用这一事件。请问咋办?

解决方案 »

  1.   

    直接在按钮的OnClick事件中
      Image1MouseDown(参数)
      

  2.   

    不知道你是怎么写的?我写了一个,可以用的:procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    begin
      showmessage('mouse down');end;procedure TForm1.Button1Click(Sender: TObject);
    begin
      Image1MouseDown(Self,mbLeft,[ssShift] ,0,0);
    end;
      

  3.   

    还是不行嘛。我想是线的功能是:点击按钮,再点击image产生一个memo,在上面输入文字后点击‘确定’,memo消失。但我在点击image时,memo又出现了。我是想点一下按钮,memo出现,不点击就没有。以下是源代码:
    type
      TForm1 = class(TForm)
        Button1: TButton;
        Button5: TButton;
        Panel1: TFlatPanel;
        Image1: TImage;
        Button2: TButton;
        Button6: TButton;
        procedure Button1Click(Sender: TObject);
        procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;
          Shift: TShiftState; X, Y: Integer);
        procedure Button5Click(Sender: TObject);
        procedure Button2Click(Sender: TObject);
        procedure Button6Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;
      memo:tmemo;
      button3:tbutton;
      button4:tbutton;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
    begin
     memo:=tmemo.Create(self);
     memo.Parent:=panel1;
     memo.height:=100;
     memo.Width :=152;
     memo.top:=200;
     memo.Left :=100;
     button3:=tbutton.Create(self);
     button3.Parent :=memo;
     button3.Height :=30;
     button3.Width :=75;
     button3.Top :=70;
     button3.Left :=0;
     button4:=tbutton.Create(self);
     button4.Parent :=memo;
     button4.Height :=30;
     button4.Width :=75;
     button4.Top :=70;
     button4.Left :=76;
     button3.Caption :='确定';
     button4.Caption :='取消';
     image1mousedown (self,mbleft,[ssshift],0,0);
     memo.Visible :=false;
     button3.Visible :=false;
     button4.Visible :=false;
    end;procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    begin
     memo.left :=x;
     memo.Top :=y;
     memo.Visible :=true;
     button3.Visible :=true;
     button4.Visible :=true;
     button3.OnClick :=button5.OnClick ;
     button4.OnClick :=button6.OnClick;
    end;procedure TForm1.Button5Click(Sender: TObject);
    var
     s:array[0..10]of string;
     i:integer;
    begin
       image1.Picture.bitmap.PixelFormat :=pf24bit;
       image1.canvas.Font.Height :=30;
       image1.Canvas.Brush.Style :=bsclear;
       i:=0;
       while (memo.Lines [i]<>'')do
       begin
        s[i]:=memo.Lines[i];
        image1.Canvas.TextOut(memo.left,memo.Top+i*20 ,s[i]+#13);
        i:=i+1;
       end;
       memo.Visible :=false;
    end;procedure TForm1.Button2Click(Sender: TObject);
    begin
     memo.Visible :=false;
     button3.Visible :=false;
     button4.Visible :=false;
    end;procedure TForm1.Button6Click(Sender: TObject);
    begin
     memo.Visible :=false;
     button3.Visible :=false;
     button4.Visible:=false;
    end;