gpt4 book ai didi

delphi - 拖放以在 ScrollBox 内垂直排列

转载 作者:行者123 更新时间:2023-12-03 15:47:40 25 4
gpt4 key购买 nike

我被要求对另一个开发人员 10 多年前在 Delphi 7 中完成的项目进行一些更改。这是一段专有代码,所以我会非常具体。

“容器”是一个 TScrollBox,里面的面板是 TspkRollPanel 的——一个可折叠或可展开的 TPanel 衍生品。

我希望下面的图片能够解释一切。这真的很简单。我应该使 TspkRollPanel 元素仅垂直拖/放,以便它们可以按所需的顺序排列。我花了几个小时来熟悉 Delphi(我已经 10 多年没见过了)

如果有人能指出我正确的方向,我将不胜感激。我懂 Delphi,只是生疏。

See Example GUI Here

最佳答案

使用标准 TPanel 面板,以下内容可以正常工作,并且很可能也适用于您的面板。步骤如下:

  1. 选择所有面板
  2. 将所有面板的Align属性设置为AlTop
  3. 将所有面板的 DragMode 属性设置为 dmAutomatic

对象检查器中切换到事件 View

  • 双击OnDragDrop的输入字段以创建事件处理程序
  • 双击OnDragOver的输入字段以创建事件处理程序
  • 如果两个创建的事件处理程序的名称包含特定面板的标识符,您可能需要重命名事件处理程序以反射(reflect)它们对于所有面板都是通用的。

    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) 和其他面板向下推。

    关于delphi - 拖放以在 ScrollBox 内垂直排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43701231/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com