问题标签 [tscrollbox]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++builder - C++Builder TMouseWheelEvent 编译器错误
无论我如何尝试使用它,我都无法动态创建 aTScrollBox
并为其分配OnMouseWheelEvent
处理程序。我收到以下编译器错误:
E2034 无法将 'void (_fastcall * (_closure )(TObject *,TShiftState,int,TPoint &,bool &))(TObject *,TShiftState,int,TPoint &,bool &)' 转换为 'TMouseWheelEvent'
我对OnMouseWheelEvent
处理程序的声明是正确的(据我所知):
delphi - Delphi 和 Lazarus 中 TScrollBox 种群的不同结果
ScrollBox
我以类似的方式填充:
当代码在 Delphi 下运行时,我得到以下结果:
项目的顺序是正确的。但是当我在 Lazarus 下调用相同的代码时,我得到:
项目的顺序是相反的。我可以通过反向创建ScrollBox
孩子和/或添加来解决这个问题,{IFDEF ...}
但我怀疑这不可靠。添加编译器开关将使代码量增加一倍,使其体积庞大且难以阅读。
有没有办法为此目的做统一可靠的 Delphi-Lazarus 代码?
追加
对@TomBrunberg 评论的解释
如果我以相反的顺序创建孩子(例如for i := 3 downto 1
),我会得到相反的结果:Delphi 产生反向和 Lazarus - 直接顺序。这就是我说代码加倍的原因。
附加 2
关于汤姆·布伦伯格
当从 Button onClick 事件处理程序调用相同的代码时,代码行为变得相反(在 Lazarus 和 Delphi 中再次不同)。
附加 3
我可以相信for i := 1 to 3
……Top := 1000 + i;
因为它给出了预期的结果吗?
delphi - 如何使用“Form2”中存在的 PaintBox 的坐标在“Form3”中绘制矩形/孔?
我有一个“ Form2 ”,它有一个ScrollBox
和一个PaintBox
.
还存在另一个名为“ Form3 ”(也有PaintBox
内部)的表单,它的父ScrollBox
级为“Form2” 。然后我需要根据坐标在“Form3”上绘制一个矩形=>孔。Form2.PaintBox
这个有可能?
提前感谢任何建议/帮助。
表格1:
表格2:
表格 3:
表格2 .DFM :
表格3 .DFM :
版:
这个问题基本上是我上一个问题的延续
c++builder - 如何在 ThorzScrollBox 中滚动 TListview?
我正在尝试将 TListView 放在 THorzScrollBox 中(在 c++ builder fmx 项目中)。问题是当我这样做时,我失去了在 TListView 上向下滚动的能力。有没有办法解决这个问题?
delphi - MDIChild 表单总是在 ScrollBox 后面
基于我的工作代码,现在我需要一个ScrollBox
组件和一个Image
组件。例如:
现在的问题是ScrollBox
. MDIChild 表单总是留在后面,您可以测试、更改ScrollBox
Align ( None / Client ) 属性。
那么需要把 MDIChild Form 放在上面ScrollBox
吗?
delphi - Firemonkey ListView 滚动条可见性
在 FiremonkeyTListview
中滚动条的可见性取决于系统是否有触摸屏。当列表视图上没有足够空间显示所有列表项时,如何覆盖此行为并始终显示垂直滚动?
我在里面看到TListViewBase.Create
滚动可见性再次取决于函数结果,HasTouchTracking
这取决于是否TScrollingBehaviour.TouchTracking
设置在SystemInformationService.GetScrollingBehaviour
.
有没有人有胶水我可以如何覆盖这种行为?
delphi - 组件(TDBCtrlGrid,TScrollBox)的Delphi VCL水平容器(类似画廊)?
我正在使用 Delphi 2009,并且我已经设置了(可变长度的)数据记录,<image, label, file path>
我想在类似画廊的结构中呈现这些记录,并带有整个列表的水平滚动,并且可能没有垂直滚动。
TDBCtrlGrid 似乎是精确的解决方案(我可以在 TClientDataSet 中保存记录,并且有很多自动化),但它是仅垂直的集合(至少对于 Delphi 2009),它具有Orientation
属性但(至少在设计时)它仅控制滚动条(将其放在底部)。那么 - 也许仍然可以将 TDBCtrlGrid 调整为水平使用?
TScrollBox(带有 TFrame 子元素)是另一个有前途的解决方案,但到目前为止,我可以实现所有框架都垂直堆叠,我不知道如何要求它们水平并排。那么 - 有没有办法将 TScrollBox 用于水平、类似画廊的结构?
我保留了使用 TcxDBVerticalGrid 的选项,但我正在尽一切努力避免它 - 我不确定复杂网格是否能够使用自己的图像内部组件呈现图像,我更喜欢使用 TImage 或 TDBImage 组件(似乎要健壮)在一些控件容器内(例如在 TFrame 上并将这些帧放在 TScrollBox 中)。
panel - 在运行时分配 TScrollBox 事件 - 不兼容的类型
使用 RAD Studio 10.4.2:
我TScrollBox
在运行时创建:
我想给它分配OnMouseWheel
事件:
鼠标滚轮事件就是我把它放在窗体上双击生成上述事件代码时得到的。
错误是:
[bcc32c Error] assigning to 'Vcl::Controls::TMouseWheelEvent' (aka 'void ((__closure *))(System::TObject *, System::Classes::TShiftState, int, const System::Types::TPoint &, bool &) __attribute__((fastcall))') from incompatible type 'void (__closure *)(System::TObject *, System::Classes::TShiftState, int, System::Types::TPoint &, bool &) __attribute__((fastcall))'
那么我该如何分配事件,我是否需要以某种方式投射它?