AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Zuweisung von Feldwerten - Optimierung
Thema durchsuchen
Ansicht
Themen-Optionen

Zuweisung von Feldwerten - Optimierung

Ein Thema von lowmax_5 · begonnen am 20. Nov 2020 · letzter Beitrag vom 23. Nov 2020
Antwort Antwort
lowmax_5

Registriert seit: 9. Mai 2003
Ort: Münster, NRW
258 Beiträge
 
Delphi 11 Alexandria
 
#1

Zuweisung von Feldwerten - Optimierung

  Alt 20. Nov 2020, 16:46
Hallo,

ich habe mir eine Funktion gebaut, um Werte zuzuweisen

Code:
Verbinde(lArtikel.artikelbez,'artikelbez',(JA.Items[x] as TJsonObject),'');
in dem ich das Feld der Klasse lArtikel mit dem gleichnamigen Feld in einem TJsonobject anbinde.

Was mich stört ist die doppelte Angabe von 'artikelbez', da ja in der Regel immer der gleiche Name angebunden wird.
Kann auf die Angabe des zweiten Parameters verzichtet werden? Wie lässt sich das eleganter lösen?
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.355 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Zuweisung von Feldwerten - Optimierung

  Alt 23. Nov 2020, 07:27
... da ja in der Regel immer der gleiche Name angebunden wird.
In der Regel? Also doch nicht immer?
Dann würde ich es so lassen.
Ansonsten musst du vermutlich über die RTTI gehen. Es gibt da meines Wissens eine Funktion GetPropInfo. Es muss aber noch einige beachtet werden, damit es funktioniert. Keine Ahnung, ob sich der Aufwand lohnt.
Peter
  Mit Zitat antworten Zitat
mytbo

Registriert seit: 8. Jan 2007
472 Beiträge
 
#3

AW: Zuweisung von Feldwerten - Optimierung

  Alt 23. Nov 2020, 10:35
Für ältere Delphi Versionen kann ich klar NEIN sagen. Eine Funktion wie z.B. TArtikel.ArtikelBez.PropName gibt es dort nicht. Ich löse es wie folgt:
Delphi-Quellcode:
TArtikel = class(TPersistent)
strict private
  type
    TOPNRec = record
      const ArtikelBez = 'ArtikelBez';
     ...
   end;
public
  const OPN: TOPNRec = ();
...
end;
Dann kannst du folgendes schreiben:
Verbinde(lArtikel.ArtikelBez, TArtikel.OPN.ArtikelBez, (JA.Items[x] as TJsonObject), ''); Der klare Vorteil ist, du wirst von der IDE beim Schreiben unterstützt und der Compiler verhindert eventuelle Tippfehler weit verstreut im Sourcecode.

Bis bald...
Thomas

Geändert von mytbo (23. Nov 2020 um 10:42 Uhr)
  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 13:16 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz