有没有人知道一个 Delphi 组件实现了类似于 jQuery sortable 的功能,但是适用于桌面应用程序?
也就是说,一个垂直控件包含多个面板,可以重新排序,还可以用作其他组件(特别是包含不同文本片段的 TMemos)的容器。
谢谢任何信息,
Breandan。
有没有人知道一个 Delphi 组件实现了类似于 jQuery sortable 的功能,但是适用于桌面应用程序?
也就是说,一个垂直控件包含多个面板,可以重新排序,还可以用作其他组件(特别是包含不同文本片段的 TMemos)的容器。
谢谢任何信息,
Breandan。
虽然我是在代码中实现,而不是设计时,但我会使用TScrollbox或TPanel包含一些框架或面板,它们都对齐顶部。如果我想要框架的折叠/展开功能,我只需在框架中放置一个按钮,允许您将框架折叠到最小高度(例如20像素),展开时则更高。
内部的框架可以是任何您想要的控件,甚至是包含几个其他控件的面板。顶级控件可以在父面板或滚动框中重新排序。
只需要运行一次,然后我就可以从正在运行的应用程序中移动和调整它们的大小。
这是 dfm:
object Form2: TForm2
Left = 0
Top = 0
Caption = 'Form2'
ClientHeight = 337
ClientWidth = 635
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 13
object clbr1: TCoolBar
Left = 0
Top = 0
Width = 635
Height = 313
Bands = <
item
Control = gb1
ImageIndex = -1
MinHeight = 123
Width = 629
end
item
Control = pnl1
ImageIndex = -1
MinHeight = 112
Width = 629
end>
object gb1: TGroupBox
Left = 11
Top = 0
Width = 620
Height = 123
Caption = 'gb1'
TabOrder = 0
object lbledt1: TLabeledEdit
Left = 112
Top = 40
Width = 121
Height = 21
EditLabel.Width = 32
EditLabel.Height = 13
EditLabel.Caption = 'lbledt1'
TabOrder = 0
end
end
object pnl1: TPanel
Left = 11
Top = 125
Width = 620
Height = 112
Caption = 'pnl1'
TabOrder = 1
object rg1: TRadioGroup
Left = 128
Top = 4
Width = 185
Height = 105
Caption = 'rg1'
Items.Strings = (
'dsfsdf'
'sdfsdfsd')
TabOrder = 0
end
end
end
end
TMS有TAdvPanelGroup,可以折叠/展开。请参见右下方的屏幕截图:http://www.tmssoftware.com/site/advpanel.asp
在Delphi 2007中,我没有找到一个标准控件能够满足您的需求,但我可以提供一个类似于Warren建议的自定义解决方案。主要区别是我会在TFrame内创建它,这样您就可以更轻松地维护允许您操作控件及其相互交互的代码。您还可以在框架内创建方法来添加新面板(带有备忘录和要显示的文本),移动它们等。
这需要一些工作,但也可以成为一个很好的学习经验。最好的部分是,一旦完成,您可以在任何表单或另一个框架中重复使用该框架。如果做得正确,它也将无需麻烦地工作。