gpt4 book ai didi

algorithm - Delphi - 编程算法找到下一个点来绘制组件

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:23:36 25 4
gpt4 key购买 nike

大家好,

我正在开发一个以“图形”方式类似于仓库的程序。表示非常基本,我正在使用:1. TGroupBox(作为父容器)2. TPanel(作为“仓库”中的货架,又名父容器。

我需要帮助的挑战。如果我有 2 个或更多 Groupboxes 动态绘制。如何确定下一个开始绘制的点。到目前为止,我的代码仅适用于 2 个 Groupboxes,但我需要一种智能算法或方法来计算 Canvas 上的下一个点以绘制仓库。

我确信我可以通过一个像素一个像素地扫描并检查另一个组件来做到这一点,但必须有一个更聪明的算法可以提供帮助:)

还要记住,Groupboxes 可以是矩形、正方形。 IOW:高度和宽度可以不同。

我该怎么做?

编辑 1:对不起,我的解释可能缺乏。我不是自己画的。只需在代码中创建它们并动态定位它们。不幸的是,由于声誉点太低,我无法发布图片。我会尽力解释得更好。假设我有 3 个仓库。仓库 1 包含 2 行和 3 列(货架)。仓库 2 包含 20 行和 5 列。我在代码中创建了 Warehouse 1(Groupbox 组件),将其定位在父控件的 0、0 点。仓库 2 现在可以创建在仓库 1 的右侧或底部。根据父级上可用的开放空间最有意义的(屏幕房地产)。然后对于 Warehouse 3,我如何在代码中确定将其放置在我的父容器中的位置?位置?显然,我不能总是假设将下一个仓库绘制到前一个仓库的底部。例如,之前的仓库可能只包含 1 行和 1 个货架,这将使其尺寸非常小,因此将下一个仓库绘制到它的右边是有意义的。但是,如果前一个仓库的宽度很大,那么将下一个仓库绘制到其底部是有意义的。

http://www.programmer.co.za/downloads/SOW.png http://www.programmer.co.za/downloads/SOW.png

最佳答案

如果您找不到任何好的答案,我认为您可以对“切割列表”算法进行一些研究。看看DelphiForFun site .

关于algorithm - Delphi - 编程算法找到下一个点来绘制组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23365242/

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