在按按钮时你把TextOut中的'中国'换成'地球'/'宇宙'不完了吗?

解决方案 »

  1.   

    这只是举一个例子,实际情况很复杂,不能采用这种办法。另外,怎样清除CANVAS上去的东西呢?神啊,你在哪里??
      

  2.   

    你用画刷覆盖一遍:
    dg.Brush.Color:= clBlack;
    dg.Brush.Style:= BsSolid;
    dg.Canvas.FillRect(0, 0, dg.ClientWidth, dg.ClientHeight);
      

  3.   

    不知道你有没有用过个叫“全局变量”的东西
    弄个 全局的 var  title:string;button1 click时: title:=‘中国’
    button2 click时: title:=‘地球’

    procedure TForm1.dgDrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
    var
      i,j,integer;
    begin
      for i:=0 to 4 do
        for j:=0 to 19 do
          dg.Canvas.TextOut(i*64+5,4+j*18, TITLE );
    end;
    清除CANVAS上的东西:  用cell的底色fillrect就可以了