我被要求对另一个开发人员几年前在Delphi7中做的一个项目做一些修改,这是一个专有代码,所以我将非常具体。
“容器”是一个TScrollBox,里面的面板是TSpkRollPanel的--一个可折叠或可扩展的TPanel导数。
我希望下面的图片能解释一切。真的很简单。我应该让TSpkRollPanel元素垂直地拖放,这样它们才能按照所需的顺序排列。我花了几个小时在德尔菲上学习(我在10+几年没见过)。
如果有人能给我指明正确的方向,我会很感激的。我是特尔斐识字的,只是生疏了。

发布于 2017-04-30 07:18:21
对于标准的TPanel面板,下面的功能很好,很可能也适用于您的面板。这些步骤如下:
Align属性设置为AlTopDragMode属性设置为dmAutomatic切换到Object Inspector中的事件视图
OnDragDrop的entry字段以创建事件处理程序OnDragOver的entry字段以创建事件处理程序如果两个创建的事件处理程序的名称包括特定面板的标识符,则可能要重命名事件处理程序,以反映它们对于所有面板都是通用的。
6.最后,向事件处理程序添加代码。
procedure TForm1.PanelDragDrop(Sender, Source: TObject; X, Y: Integer);
begin
TPanel(Source).Top := TPanel(Sender).Top - 5;
end;
procedure TForm1.PanelDragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
begin
Accept := True;
end;该解决方案的工作原理是,当一个面板(A)被丢弃在另一个(B)上时,它(A)将该面板(B)按排列顺序排列,推倒(B)和其他面板。
https://stackoverflow.com/questions/43701231
复制相似问题