streaming of properties

Rund um die LCL und andere Komponenten
Antworten
arturx
Beiträge: 140
Registriert: Fr 21. Nov 2008, 11:29
OS, Lazarus, FPC: Winux (L 1.0.6.xy FPC 2.6.z)
CPU-Target: 32/64Bit

streaming of properties

Beitrag von arturx »

Wie speichert man
1.ein beliebiges (nicht published deklariertes) event (z.B. notifyevent) o.ä.
2.eine komplette Subcomponente

in die *.lfm datei der zugehörigen Form ?

Code: Alles auswählen

Beispiel:
type tmyobject = class(tcomponent)
      private
          vsubcomp : tcomponent;
          vxyzstring : string;
     protected
         procedure  DefineProperties(Filer: TFiler); override; //ins Streaming einlinken
         procedure  ReadXYZstring(Reader: TReader);
         procedure  writeXYZString(writer : twriter);
     public   
    //....
   end;
 
procedure tmyobject.DefineProperties(Filer: TFiler);//ins Streaming einlinken per override
    begin inherited DefineProperties(Filer);
             Filer.DefineProperty('XYZ'{this name ist used in *.lfm},  @ReadXYZstring,@WriteXYZstring,true);
     end;
procedure tmyobj.ReadXYZstring(Reader: TReader);
    begin vxyz := reader.readstring; end;
procedure tmyobj.writeXYZString(writer : twriter);
    begin vxyz := reader.readstring; end;
Soweit funktioniert es natürlich mit einem einfachen String.
Aber (s.o.) :
1. wie speichert man z.B. die properties einer (warum auch immer) nicht veröffentlichten Subkomponente ?
2. wie speichert man z.B. einzelne events der Subcomponente ?

Bitte schreibt mir nicht, dass alles in http://wiki.freepascal.org/Streaming_components/de" onclick="window.open(this.href);return false; stünde.
Der Artikel ist zwar hilfreich, reicht aber nicht aus, um meine Gehirnblockade zu durchbrechen.....
Vielleicht gibt es ja irgendwo ausführliche Info / tutorial über das interne Komponenten streaming

Antworten