Einzelnen Beitrag anzeigen

choose

Registriert seit: 2. Nov 2003
Ort: Bei Kiel, SH
729 Beiträge
 
Delphi 2006 Architect
 
#4

Re: Variablen Interpolation in Delphi

  Alt 9. Dez 2003, 22:23
Zitat von jbg:
Das einzige was dir der Compiler für die Variablen geben kann ist deren Adresse im Arbeitsspeicher.
Das ist mir bekannt. Obwohl man mithilfe der RTTI in der Lage wäre, zumindest die published Eigenschaften oder die Rückgabewerte von Methoden namentlich zu referenzieren, ist das in der Tat nicht praxistauglich. Aus diesem Grund muss diese Information vom Entwickler (zB beim Aufruf) hinzugefügt werden.


Zitat von sakura:
Ich muss mal so doof fragen, aber was ist an Format nicht gut?
Format ist leider "nur" in der Lage, die in einem Array übergebenen Variablen mithilfe deren jeweiliger Position zu referenzieren, also etwa in der Art
myString:= Format('A String: %2:s', [6, 9, '42']); Wie ich benötige ist aber etwas in der Art
Delphi-Quellcode:
myString:= AFunc('A String: %AString:s',
  [Value('Num1', 6), Value('Num2', 9), Value('AString', 42)]);

Aus dem Aufruf kann man schon entnehmen, dass ich mir ungefähr soetwas vorstelle:
Delphi-Quellcode:
type
  TMyValueTupel = record
    Ident: string;
    Value: Variant;
  end;

function AFunc(const AMessage: string;
  const AValues: array of TMyValueType): string;
Tatsächlich würde ich Value und AFunc wahrscheinlich als Klassenmethoden einer Klasse implementieren, die in der Lage ist, benannte Werte-Mengen (assoziatives Array) und neben einfachen Tupeln auch Arrays aus Werten zu speichernn, so dass eine erweiterte Format-Syntax der Art
Code:
'An array entry: $AnArray[2]:s'
oder gar
Code:
'An array entry: $AnArray[$Num1]:s'
denkbar ist.
Im Wesentlichen entspricht dies etwas der Collection TParams aus der Unit DB mit den zugehörigen Items TParam, allerdings ist mir das zu SQL-spezifisch, bietet nicht ausreichend Funktionalität (zB Default-Values) und ist zu kompliziert in der Handhabe...

Trotzdem möchte ich die Mühe ungern investieren, falls es eine entsprechende Lösung bereits gibt
gruß, choose
  Mit Zitat antworten Zitat