Forum: Object-Pascal / Delphi-Language
Delphi
by DeddyH,
24. Apr 2017
Nur noch mal zum Abschluss: dieses MapRules (klingt mir sehr nach FireDAC, ich schau aber trotzdem jetzt nicht nach) dürfte sehr wohl eine Liste sein, nur eben keine StringListe, sondern eine Liste von Objekten (oder auch Records oder Interfaces), die mindestens die Eigenschaften PrecMax, PrecMin, SourceDataType und TargetDataType aufweisen. Durch das "with" spart man sich die Deklaration einer...
Forum: Object-Pascal / Delphi-Language
Delphi
by DeddyH,
24. Apr 2017
Jetzt wirfst Du aber alles durcheinander. Im gesamten Thread war nie von TStringList die Rede, bis Du damit angefangen hast. Die eingangs gezeigten MapRules jedenfalls sind definitiv keine TStrings oder Nachkommen davon.
Forum: Object-Pascal / Delphi-Language
Delphi
by DeddyH,
24. Apr 2017
Wer sagt denn, dass die TAddressList von TStringList abstammt?
Forum: Object-Pascal / Delphi-Language
Delphi
by DeddyH,
24. Apr 2017
Das hat doch nichts mit Liste oder Collection zu tun, sondern rein damit, wie der Rückgabewert (im Bezug auf den Datentyp) der Add-Methode deklariert ist. TKlasse1 und TKlasse2 können ja beide eine Add-Methode besitzen, die aber völlig unabhängig voneinander sind und auch unterschiedliche Typen besitzen können. Anhand des Codes aus dem Ausgangsbeitrag kann es aber IMO nur so sein, dass ein...
Forum: Object-Pascal / Delphi-Language
Delphi
by DeddyH,
24. Apr 2017
type
TMyItem = class
...
end;
TMyItemList = class
...
function Add: TMyItem;
end;
So oder so ähnlich dürfte die Konstellation aussehen. Der Aufruf von Add führt dazu, dass TMyItemList eine neue Instanz von TMyItem erzeugt, diese in seiner internen Liste ablegt und zurückgibt. Das bedeutet, dass mit jedem Aufruf von Add eine neue Instanz erzeugt und zurückgegeben...
Forum: Object-Pascal / Delphi-Language
Delphi
by DeddyH,
24. Apr 2017
Hat sich das kompilieren lassen? Damit hätte ich jetzt nicht gerechnet.
Forum: Object-Pascal / Delphi-Language
Delphi
by DeddyH,
24. Apr 2017
Add ist keine Klasse! Das ist eine Methode (Funktion) der Klasse, von der MapRules ist (TMapRules vermutlich). Diese Funktion gibt Dir eine Instanz zurück, und dieser Instanz weist Du nun die Werte zu.
Forum: Object-Pascal / Delphi-Language
Delphi
by DeddyH,
24. Apr 2017
Ja, aber darum ging es ja nicht. Ich finde es lobenswert, das with zu eliminieren, wo man darauf trifft, aber man muss es dann auch syntaktisch korrekt machen.
Forum: Object-Pascal / Delphi-Language
Delphi
by DeddyH,
24. Apr 2017
MapRules.Add wird wohl eine neue Instanz von irgendwas (bin gerade zu faul zum Nachsehen) zurückgeben. Von daher ist Deine Syntax schlicht falsch. Richtig müsste es dann so lauten:
var
Dings: TWasAuchImmer;
begin
Dings := MapRules.Add;
Dings.PrecMax := 19;
Dings.PrecMin := 4;
Dings.SourceDataType := dtFmtBCD;
Dings.TargetDataType := dtCurrency;