是这样的,我设置了两个按钮,button1和button2,现在我想让button2实现的功能是能撤销button1的功能,举个例子说点击button1后某图放大居中了,再点击button2能使某图缩小并恢复到原来的位置,那么button2的代码该怎样写呢?谢谢大家了!

解决方案 »

  1.   

    继续你的例子说,
    button1方法图片的时候,用一个全局变量之类的东西记录下当前的位置和大小,button2根据这个信息再缩放回去就完了。
      

  2.   

    不能用cancel之类的函数把button1给撤销回去吗?相当于咱平时用的ctrl+z的功能呀
      

  3.   

    ctrl+z也就是一个热键,对应了一些代码cancel在具体的对象中有具体的实现。
      

  4.   

    ctrl+z 用多了,不要看表面现象,要看实质。
      

  5.   

    按照wudi的方法,我写的代码如下:
    var
      Form1: TForm1;
      wid,hei,lef,top: integer;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
    begin
      if FCurrentChart <> nil then
      wid := FCurrentChart.Width;
      hei := FCurrentChart.Height;
      lef := FCurrentChart.Left;
      top := FCurrentChart.Top;
      FCurrentChart.BringToFront;
      FCurrentChart.Width := 400;
      FCurrentChart.Height := 350;
      FCurrentChart.Left := 180;
      FCurrentChart.Top := 90;
    end;procedure TForm1.ChartClick(Sender: TObject);
    begin
      if Sender is TChart then
        FCurrentChart := Sender as TChart;
    end;procedure TForm1.FormCreate(Sender: TObject);
    var
      Idx: Integer;
      a,b:integer;
    begin
      for Idx := 0 to Pred(ComponentCount) do
        if Components[Idx] is TChart then
          (Components[Idx] as TChart).OnClick := ChartClick;
    end;procedure TForm1.Button2Click(Sender: TObject);
    begin
      if FCurrentChart <> nil then
      FCurrentChart.Width := wid;
      FCurrentChart.Height := hei;
      FCurrentChart.Left := lef;
      FCurrentChart.Top := top;
    end;
    结果运行的时候,一点击button1不光是chart移动,窗体也跟着往下移动,如果chart在窗体的下面的话,点击button1后,窗体居然也跟着跑到电脑屏幕的下半截去了,这是怎么回事呀?请帮忙看看改改,谢谢!
      

  6.   

    语法上有些毛病,先改了再调
    if FCurrentChart <> nil then
    begin
      wid := FCurrentChart.Width;
      hei := FCurrentChart.Height;
      lef := FCurrentChart.Left;
      top := FCurrentChart.Top;
      FCurrentChart.BringToFront;
      FCurrentChart.Width := 400;
      FCurrentChart.Height := 350;
      FCurrentChart.Left := 180;
      FCurrentChart.Top := 90;
    end。procedure TForm1.Button2Click(Sender: TObject);
    begin
      if FCurrentChart <> nil then
      begin
        FCurrentChart.Width := wid;
        FCurrentChart.Height := hei;
        FCurrentChart.Left := lef;
        FCurrentChart.Top := top;
      end
    end;
      

  7.   

    加了begin end后还是老样子,窗体跟着动,而且如果点击button1后,再点某幅图,再点button2时,有时图还原的位置还不在原来的老位置,奇怪了,大家看看我的代码究竟哪里出问题了?急~~~
      

  8.   

    你的变量top和Form1.top 相同,导致这个问题。