当滚动框滚动firemonkey时,避免onclick事件

时间:2018-02-09 01:20:39

标签: c++ firemonkey c++builder

我有一点麻烦,我希望你们都可以帮助我或定位我,我有一个 TVertScrollBox ,它控制着很多 TRectangle 组件,每个都有协助执行某些逻辑的 OnClickEvent ,但是,当滚动滚动并且用户在 TRectangle 上停止它时,会触发 OnClick 事件,我想避免它,但我无法解决这个问题。

我已经创建了一个简单的代码示例来向您展示问题。

1 - 创建新的多设备应用程序(C ++)
从工具调色板中将2-Drop放在TVertScrollBox的形式上 3 - 将客户端与TVertScrollBox对齐。

用户声明中的

添加

        string input = "18-79-aa";
        string[] numbers = input.Split('-');
        int fixednumber = Convert.ToInt32(numbers[1]);
        string value = fixednumber.ToString("D5");
        string output = numbers[0] + "-" + value + "-" + numbers[2];
FormCreate中的

__fastcall ~TForm1(); // destructor
void __fastcall RectLogicClick(TObject *Sender); // event for OnClickEvent in the TRectangles
TRectangle* rects[20]; // array of rectangles for delete at the end.
析构函数中的

void __fastcall TForm1::FormCreate(TObject *Sender)
{
  for(int i=0; i<20; ++i)
  {
    TRectangle * rect = new TRectangle(VertScrollBox1);
    rect->Parent = VertScrollBox1;
    rect->OnClick = RectLogicClick;
    rect->Width = 100;
    rect->Height = 50;
    rect->Position->X = 10;
    rect->Position->Y = 20 + i*50;
    rects[i] = rect;
  }
}

在RectLogicClick中

__fastcall TForm1::~TForm1()
{
  for(int i=0; i<20; ++i)
  {
    rects[i]->Parent = nullptr; 
    delete rects[i];
  }
}

如果您在Android设备中运行此设置并滚动并停在任何矩形上,则会触发 OnClick 事件。

当滚动滚动时,是否可以锁定事件 onClick

这个项目面向移动设备,使用firemonkey(C ++)框架和Rad Studio 10.2.1 tokyo

0 个答案:

没有答案