TVirtualStringTree
いくつかの異なる SQL テーブルからデータを動的にロードして表示したいと考えています。これは、各列のヘッダーとコンテンツに、毎回異なるタイプのデータが含まれることを意味します。
私の問題は、メモリ使用量、レコードの定義、およびこの場合のポインターに関して最適化する方法です。
私の考えは、次のようにすることでした:
type
TDataType = (dtUnknown, dtString, dtInteger, dtText, dtFloat, dtDateTime, dtDate, dtTime, dtBoolean);
TData = record
DataType: TDataType;
AsString: String;
AsInteger: Integer;
AsText: TStrings;
AsWord: Word;
AsDateTime: TDateTime;
AsDate: TDate;
AsTime: TTime;
AsBoolean: Boolean;
end;
TTreeData = array of TData;
PTreeData= ^TTreeData;
実際には、レコードの 2 つのフィールドのみにデータが含まれます: DataType
(常に) および 2 番目のフィールドは、DataType
定義によって異なります (例: AsString
) AsInteger
。ノードが初期化されるときにメモリとして割り当てられる他のフィールドもですか? DataType
また、各ノードに割り当てられているという事実も好きではありません。このレコードを最適化する簡単な方法が必要です。
いくつかの提案をしてください。