在扫雷时在数字上同时按下鼠标左右键,周围的按钮会呈现被按下的效果!放开鼠标后又会起来!问? 该用什么样的按钮,怎么实现的!回答经试验通过既给全分!! upupup

解决方案 »

  1.   

    用快速按钮 speedbutton 或是工具栏。
      

  2.   

    能说具体点吗!  
    比如:怎样实现在lable1上同时按下鼠标左右键时将button1和button2呈现被按下的效果,放开鼠标后又会起来!
      

  3.   

    好的!  谢了!
    [email protected]
      

  4.   

    收到了!谢谢 不过你的很复杂哦! 你的button都是自己画的啊!
    现在我的扫雷的基本功能都实现了,就差这个了(呈现被按下的效果)请告诉我一个简单方法!
    比如:怎样实现在lable1上同时按下鼠标左右键时将 按钮1 和 按钮2 呈现被按下的效果,放开鼠标后又会起来!
      

  5.   

    可以使用TDRAWGRID来做这样的效果,在用户同时使用鼠标左右键同时按下时,同时绘制当前单元格和当前单元格周边单元格。
      

  6.   

    用快速按钮 speedbutton 或是工具栏要占用相当的内存。
      

  7.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, Buttons, TFlatSpeedButtonUnit;type
      TForm1 = class(TForm)
        procedure FormCreate(Sender: TObject);
        procedure MyClick(Sender: TObject);
        procedure FormDestroy(Sender: TObject);
        procedure FormPaint(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;
      MyButton: TSpeedButton;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
    var
      i, j: Integer;
    begin
      for i:=0 to 9 do
      begin
        for j:= 0 to 9 do
        begin
          MyButton:= TSpeedButton.Create(self);
          MyButton.Parent:= Form1;
          MyButton.Name:= 'Button'+IntToStr(i)+IntToStr(j);
          MyButton.Height:= 20;
          MyButton.Width:= 20;
          MyButton.Left:= i * 20;
          MyButton.Top:= j * 20;
          MyButton.GroupIndex:= 0;//i*10+j+1;
          MyButton.OnClick:= MyClick;
        end;
      end;
    end;procedure TForm1.MyClick(Sender: TObject);
    begin
      if not TSpeedButton(Sender).Down then
      begin
        //TSpeedButton(Sender).Down:= true;
        TSpeedButton(Sender).Flat:=true;
      end;
    end;procedure TForm1.FormDestroy(Sender: TObject);
    begin
      MyButton.Free;
    end;procedure TForm1.FormPaint(Sender: TObject);
    var
      i: integer;
    begin
      for i:= 0 to 10 do
      begin
        Canvas.Pen.Color:= $008396A0;
        Canvas.MoveTo( i*Mybutton.Width , 0);
        Canvas.LineTo( i*Mybutton.Width , 10*Mybutton.Height);
        Canvas.MoveTo( 0 , i*Mybutton.Width);
        Canvas.LineTo( 10*Mybutton.Height , i*Mybutton.Width);
      end;
    end;end.
      

  8.   

    问题差不多解决! 即刻就揭帖! 再次感谢大家!特别是 pankun(剑神一笑 ^_^) , joky1981()
      

  9.   

    还有点问题! 按钮按下之后speedbutton相当于消失了!后面的雷就被看到了! 呵呵! 怎么解决啊!
      

  10.   

    我的button都是自己画的吗?
    呵呵我不记得了!