自己开发控件,集合类型的属性的集合的子集如何随控件另一个属性的值改变?(100分)

  • 主题发起人 主题发起人 ibmdeskstar
  • 开始时间 开始时间
I

ibmdeskstar

Unregistered / Unconfirmed
GUEST, unregistred user!
---------------------- 以下程序 ------------------------
unit TMyComponent;

interface

uses
Windows, Messages, SysUtils, Classes, Controls, ComCtrls, QStdCtrls;

[red]type THeightCount = 0..20;
// 这里的20我是希望能否随着TMyMemo或者它的实例的Height值而改变,也就是说
// 如果Height为44,则 THeightCount = 0..44

THeightCountSet = set of THeightCount;[/red]

type
TMyMemo = class(TMemo)
private
FHeights : THeightCountSet;
public
constructor Create(AOwner:TComponent);override;
published
property Heights : THeightCountSet
read FHeights write FHeights default [];
end;

procedure Register;

implementation

procedure Register;
begin
RegisterComponents('Samples', [TMyComponent]);
end;

{ TMyComponent }

end.

请教大家有没有好的解决方法?
 
不行,
集合的可选元素必须是固定数目,不能改变,因为不同的集合元素数目导致不同的内存分配
此外,若Height超过255,就更不行了,集合最多256个元素
你只能用变通的方法来实现你的想法了
 
肯定不会超过255,
问题是如何解决,不过我觉得就算能做到也必须很费劲,算了,我还是不去想它了
 
后退
顶部