Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Delphi Json Array of String: Wie Array-Items per Schleife auslesen (https://www.delphipraxis.net/213743-json-array-string-wie-array-items-per-schleife-auslesen.html)

juergen 19. Sep 2023 21:48

AW: Json Array of String: Wie Array-Items per Schleife auslesen
 
@mytbo,
Clonen des Repos.
Pfade in den Bibliothekspfaden hinzugefügt.
Ich hatte ja schon meine Unit mit 8 Klassen. Diese Unit mit deinen Vorschlägen für den Custom-Serializer ergänzt (erst einmal nur für 2 Klassen).
Was soll ich sagen. Es funktioniert! :thumb: Ich bin begeistert. Und das war jetzt auch schnell umgesetzt. Natürlich verstehe ich mORMot nicht, in der Kürze der Zeit. Aber ich habe erst mal ein Ergebnis und das motiviert ja für die Zukunft.

Was mir bei diesem Ansatz gefällt (ich sag's mal als Laie), dass ich eine Unit habe mit den Klassen und der Architektur.
In meiner Hauptunit verwende ich dann global jeweils für jede Klasse eine neue Klassen-Instanz.
Und in der Haupt-Unit gefällt mir nun die Handhabung sehr. Zumindest ist es für mich viel leichter anwendbar und lesbarer.

Vielen Dank also für deinen unermüdlichen Einsatz!!

@Uwe,
auch dir großen Dank für deinen unermüdlichen Einsatz. Ich hatte vor deinem Post schon das Konzept von mytbo angefangen.


Gute N8! :dp:

juergen 19. Sep 2023 22:28

AW: Json Array of String: Wie Array-Items per Schleife auslesen
 
Eine Frage noch:
Symbolisch sieht meine serialize-Klasse etwa so aus:
Delphi-Quellcode:
  TDBSettings = CLASS( TSynAutoCreateFields )
  PRIVATE
    FShorthandSymbol: ARRAY [1 .. 80] OF STRING;

    PROCEDURE SetShorthandSymbol( CONST AIdx: Integer; CONST Value: STRING );
    FUNCTION GetShorthandSymbol( CONST AIdx: Integer ): STRING;

  PUBLIC
    CONSTRUCTOR Create; // <=== hier erscheint Warnung: W1010 Methode 'Create' verbirgt virtuelle Methode vom Basistyp 'TSynAutoCreateFields'
    DESTRUCTOR Destroy; OVERRIDE;

    FUNCTION LoadFromFile( CONST pmcFileName: TFileName ): Boolean;
    PROCEDURE SaveToFile( CONST pmcFileName: TFileName );

    PROPERTY ShorthandSymbol[CONST AIdx: Integer]: STRING READ GetShorthandSymbol WRITE SetShorthandSymbol;
  END;
Bekomme ich hier die Warnmeldung noch weg?

DeddyH 20. Sep 2023 06:10

AW: Json Array of String: Wie Array-Items per Schleife auslesen
 
Entweder mit override oder, falls das nicht geht, mit reintroduce.

juergen 20. Sep 2023 07:33

AW: Json Array of String: Wie Array-Items per Schleife auslesen
 
@DeddyH,
vielen Dank. :thumb:
Ich habe jetzt reintroduce verwendet.
Dazu habe ich noch folgende hilfreiche Seite gefunden => Methoden

juergen 20. Sep 2023 11:16

AW: Json Array of String: Wie Array-Items per Schleife auslesen
 
Nächstes Problem:
Ich kann in einer anderen Unit nicht auf das Property "ShorthandSymbol" zugreifen, wohl weil die Klasse von "TSynAutoCreateFields" abgeleitet ist.
Delphi-Quellcode:
  TDBSettings = CLASS( TSynAutoCreateFields )
  PRIVATE
    FShorthandSymbol: ARRAY [1 .. 80] OF STRING;

    PROCEDURE SetShorthandSymbol( CONST AIdx: Integer; CONST Value: STRING );
    FUNCTION GetShorthandSymbol( CONST AIdx: Integer ): STRING;

  PUBLIC
    CONSTRUCTOR Create; REINTRODUCE;
    DESTRUCTOR Destroy; OVERRIDE;

    FUNCTION LoadFromFile( CONST pmcFileName: TFileName ): Boolean;
    PROCEDURE SaveToFile( CONST pmcFileName: TFileName );

    PROPERTY ShorthandSymbol[CONST AIdx: Integer]: STRING READ GetShorthandSymbol WRITE SetShorthandSymbol;
  END;
Wie bekommt man das denn noch hin?

Uwe Raabe 20. Sep 2023 11:29

AW: Json Array of String: Wie Array-Items per Schleife auslesen
 
Zitat:

Zitat von juergen (Beitrag 1527134)
Ich kann in einer anderen Unit nicht auf das Property "ShorthandSymbol" zugreifen, wohl weil die Klasse von "TSynAutoCreateFields" abgeleitet ist.

Wie äußert sich das denn genau?

juergen 20. Sep 2023 12:01

AW: Json Array of String: Wie Array-Items per Schleife auslesen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von Uwe Raabe (Beitrag 1527135)
Wie äußert sich das denn genau?

Also wenn ich in der Haupt-Unit hinter dem Namen der Klasse "TDBSettings" einen Punkt eingebe, um dann dort "ShorthandSymbol" auszuwählen, ist dies nicht auffindbar. Die Klassen-Unit ist in der Haupt-Unit unter uses eingebunden.
Die Editormeldung lautet demzufolge: E2233 Auf Eigenschaft 'ShorthandSymbol' kann hier nicht zugegriffen werden

jaenicke 20. Sep 2023 12:10

AW: Json Array of String: Wie Array-Items per Schleife auslesen
 
Zitat:

Zitat von juergen (Beitrag 1527137)
Also wenn ich in der Haupt-Unit hinter dem Namen der Klasse "TDBSettings" einen Punkt eingebe, um dann dort "ShorthandSymbol" auszuwählen, ist dies nicht auffindbar.

Das ist auch keine Klasseneigenschaft. Du brauchst erst einmal eine Variable vom Typ TDBSettings. Darin sollte die Property dann nutzbar sein.

juergen 20. Sep 2023 12:40

AW: Json Array of String: Wie Array-Items per Schleife auslesen
 
:oops::oops::wall::wall: Natürlich!
Danke, @jaenicke


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:55 Uhr.
Seite 2 von 2     12   

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