我有一点麻烦,我希望你们都可以帮助我或定位我,我有一个 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