Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Generischer Setter mit Basistypen möglich (https://www.delphipraxis.net/158787-generischer-setter-mit-basistypen-moeglich.html)

ConstantGardener 2. Mär 2011 23:49

Delphi-Version: 2010

Generischer Setter mit Basistypen möglich
 
Hallo zusammen,

ich spiele gerade mit Generics rum und wundere mich, daß so etwas nicht funktioniert.

Delphi-Quellcode:

procedure GenericSetter<T> (var APropValue : T; const AValue : T);
begin
 if APropValue<>AValue then   // nicht möglich
  begin
   APropValue:=AValue;
   FChanged:=True;            // Datenbankrecord geändert ?
  end;
end;
Für komplexe Typen verstehe ich das ja noch. Hier muss ich einen TComparer definieren, aber für Basistypen?

//Edit : Fehler in Deklaration beseitigt

alzaimar 3. Mär 2011 08:32

AW: Generischer Setter mit Basistypen möglich
 
Daran, das 'APropValue' eigentlich 'APropertyValue' heißen müsste (oder umgekehrt) liegt es jetzt aber nicht, oder?

PS: Und an deiner Delphiversion (5!) auch nicht, oder? ;-) Ändere mal dein Profil...

ConstantGardener 3. Mär 2011 10:11

AW: Generischer Setter mit Basistypen möglich
 
Hallo Alzaimar,

nein am PropValue liegts nicht, ich hatte das hier nur so runtergeschrieben. Konkret sieht das noch etwas anders aus. Das Problem ist aber, das die Typen nicht zuweisungskompatibel bzw. vergleichbar sind, obwohl sie vom gleichen Typ sind. Wenn ich jetzt extra Comparer für jeden Basistyp schreiben muss, hat sich der Vorteil der Generics hier ja erledigt. Oder?

Btw. Mein Profil passt. Ich sehe hier bei mir D2010. Du nicht ?

alzaimar 3. Mär 2011 19:38

AW: Generischer Setter mit Basistypen möglich
 
Entweder war ich heute morgen zu blind, oder ich war heute morgen zu blöd.

Da stand ne 5, großes Ehrenwort.:stupid:

ConstantGardener 3. Mär 2011 19:46

AW: Generischer Setter mit Basistypen möglich
 
@alzaimar

hatte ich zwar mal aber ich bin schon einige Zeit bei D2006 bzw. D2010 Prof.

Hat sonst keiner sachdienliche Hinweise? Ich meine es kann ja eigentlich nicht funktionieren da ich im Setter eigentlich ja nur einen Wert übergeben kann. Es wäre jedoch schick wenn man solche Sachen mit Generics deckeln könnte. Da würde man einige Zeilen Code sparen.

cu cg

Sir Rufo 3. Mär 2011 19:48

AW: Generischer Setter mit Basistypen möglich
 
Zitat:

Zitat von alzaimar (Beitrag 1085686)
Entweder war ich heute morgen zu blind, oder ich war heute morgen zu blöd.

Da stand ne 5, großes Ehrenwort.:stupid:

Da steht ja auch immer noch eine 5

siehe erster Beitrag bei Delphi-Version

ConstantGardener 3. Mär 2011 21:26

AW: Generischer Setter mit Basistypen möglich
 
Wo?? Nein Scherz, Du hast natürlich Recht. Ich habe es korrigiert.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:14 Uhr.

Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf