Skip to main content
All docs
V25.1

TcxCustomTreeList.StoreToStream(TStream,string,TcxTreeListStorageOptions) Method

Saves specified Tree List structure and user interaction information to a stream.

Declaration

procedure StoreToStream(AStream: TStream; const ASaveTreeListName: string = ''; AOptions: TcxTreeListStorageOptions = []);

Parameters

Name Type Description
AStream TStream

The target stream.

ASaveTreeListName string

Optional. Specifies the saved Tree List name.

Use this parameter if you need to apply a saved state to a different Tree List control.

AOptions TcxTreeListStorageOptions

Optional. Specifies a set of individual user interaction states saved to the target stream (AStream).

If this parameter is omitted, the procedure saves only Tree List structure information.

Remarks

Call the StoreToStream procedure to save the current data layout and specified user interaction states to a stream. A subsequent RestoreFromStream call restores the saved Tree List state from the stream.

Stored Information

Tree List Structure | Data Layout

Tree List structure information includes the following:

  • Tree List name.
  • All Tree List element settings available to end users for customization: position, dimensions, visibility, sort order, captions, etc.

Important

After each StoreToStream procedure call, make sure that the Tree List control maps to the same underlying dataset fields before the corresponding RestoreFromStream call. Otherwise, errors may occur.

Tree List User Interaction States (Optional)

In addition to the base Tree List Structure/Data Layout, the AOptions parameter available for StoreToStream and RestoreFromStream procedures allows you to store a number of user interaction states (selection, focus, scroll position, node expanded status, etc.).

Pass a set of all required flags as the AOptions parameter to store/restore corresponding Tree List user interaction states:

tsoUseDataViewState

The main flag required for all other user interaction flags listed below. These flags have no effect without tsoUseDataViewState.

Tip

Alternatively, you can use only the cxTreeListStoreAllDataViewStates constant if you need to store all user interaction states for the Tree List as demonstrated in the code example below.

tsoFocusedItem | tsoFocusedRecord
Store the focus position.
tsoSelected
Stores selection.
tsoTopRecord
Stores the Tree List scroll position (the record at the top control border).
tsoExpanded
Stores the expanded status for all nodes.

Code Example: Store Tree List State Between Sessions

The code example in this section demonstrates form OnDestroy and OnCreate event handlers. These handlers call StoreToStream and RestoreFromStream procedures to save and restore user interaction states (selection, focus, scroll position, etc.) in addition to the Tree List structure/data layout.

uses
  System.SysUtils,  // Declares the FileExists function
  cxTL,  // Declares TcxTreeList, TcxCustomTreeList, and related types
// ...

procedure TMyForm.FormCreate(Sender: TObject);
var
  AFileStream: TFileStream;
begin
  if FileExists('TreeListConfig.dat') then
  begin
    AFileStream := TFileStream.Create('TreeListConfig.dat', fmOpenReadWrite);
    try
      cxTreeList1.RestoreFromStream(AFileStream, True, False, '', cxTreeListStoreAllDataViewStates);
    finally
      AFileStream.Free;
    end;
  end;
end;

procedure TMyForm.FormDestroy(Sender: TObject);
var
  AFileStream: TFileStream;
begin
  AFileStream := TFileStream.Create('TreeListConfig.dat', fmCreate or fmOpenReadWrite);
  try
    cxTreeList1.StoreToStream(AFileStream, '', cxTreeListStoreAllDataViewStates);
  finally
    AFileStream.Free;
  end;
end;

Other Tree List Store/Restore Methods

Alternatively, you can store Tree List data layout and user interaction states in an INI file or the system registry. The TcxCustomTreeList class implements the following Store~/Restore~ method pairs in addition to StoreToStream and RestoreFromStream:

StoreToIniFile | RestoreFromIniFile
Allow you to store the Tree List state (both data layout and user interaction states) in an INI file.
StoreToRegistry | RestoreFromRegistry
Allow you to store the Tree List state (both data layout and user interaction states) in the system registry.
StoreDataViewState | RestoreDataViewState
Allow you to store user interaction states in memory during the same session.
StoreDataViewStateToStream | RestoreDataViewStateFromStream
Allow you to store only user interaction states in a separate stream.
See Also