在Delphi中,如何用程序实现:一次复制、粘贴多个控件?(100分)

  • 主题发起人 主题发起人 caiqing75
  • 开始时间 开始时间
C

caiqing75

Unregistered / Unconfirmed
GUEST, unregistred user!
使用Delphi中TClipboard对象的GetComponent和SetComponent方法,可以实现复制、
粘贴一个控件,但是对多个控件却无能为力。
Windows的剪贴板循环应该可以解决这个问题,但不知如何使用?

我曾经尝试使用自定义剪贴板格式来解决问题,对于定长的简单类型,可以轻松搞定,
但对于TStringList等变长的复杂类型,由于需要计算其在剪贴板中的大小,而用SizeOf函
数获得的是其指针的长度。但Move函数又必须指定记录大小,不知如何解决这个问题?

请高手指教! 100分双手奉上!!!
 
首先我觉得自定义剪贴板的思路是对的。不过具体的细节问题
还要想一想^_^
下午有时间写写代码看一下。
 
已经解决了!
就用Delphi中TClipboard对象的GetComponent和SetComponent方法,不过增加一个临时的
WinControl(任意的,如TPanel对象),用于保存剪贴的Component。
copy时,使用一个循环将这些component拷贝到该WinControl上,
paste时,再使用一个循环将这些component拷到我想要的地方!!!
简单有效!!!
[:)]
 
我用了,用Delphi中TClipboard对象的GetComponent和SetComponent方法可行。




 
接受答案了.
 
后退
顶部