AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Variablen in Array packen? (erledigt)

Ein Thema von DieDolly · begonnen am 2. Jan 2024 · letzter Beitrag vom 3. Jan 2024
Antwort Antwort
mytbo

Registriert seit: 8. Jan 2007
482 Beiträge
 
#1

AW: Variablen in Array packen? (erledigt)

  Alt 2. Jan 2024, 20:26
Aber grundsätzlich geht es darum: wie packt man Variablen in ein Array
Wenn ich richtig sehe, möchtest du die Eigenschaften der Columns eines VirtualTrees speichern/wiederherstellen. Einfach geht es mit einem mORMot DocVariant:
Delphi-Quellcode:
uses
  VirtualTrees, VirtualTrees.Types,
  mormot.core.base,
  mormot.core.json,
  mormot.core.variants;

type
  TViewManager = class(TObject)
  strict private
    const
      COLUMN_VALUENAME_INDEX = 'idx';
      COLUMN_VALUENAME_WIDTH = 'wth';
      COLUMN_VALUENAME_POSITION = 'pos';
      COLUMN_VALUENAME_VISIBLE = 'vis';
  public
    class function SaveListViewColumnsToJson(pmTreeList: TCustomVirtualStringTree): RawJson;
  end;


type
  TCustomVirtualStringTreeAccess = class(TCustomVirtualStringTree);

class function TViewManager.SaveListViewColumnsToJson(pmTreeList: TCustomVirtualStringTree): RawJson;
var
  header: TVTHeader;
  column: TVirtualTreeColumn;
  columnValues: TDocVariantData;
begin
  Assert(pmTreeList <> Nil);

  columnValues.InitFast(dvArray);
  header := TCustomVirtualStringTreeAccess(pmTreeList).Header;
  for var columnIdx: Integer := 0 to header.Columns.Count - 1 do
  begin
    column := header.Columns[columnIdx];
    if (coResizable in column.Options)
      and (column.Width > 0) then
    begin
      columnValues.AddObject([
        COLUMN_VALUENAME_INDEX, columnIdx,
        COLUMN_VALUENAME_WIDTH, column.Width,
        COLUMN_VALUENAME_POSITION, column.Position,
        COLUMN_VALUENAME_VISIBLE, (coVisible in column.Options)]);
    end;
  end;

  Result := columnValues.ToJson;
end;
Das Wiederherstellen lässt sich auf die gleiche Weise umsetzen.

Bis bald...
Thomas
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:18 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz