Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
Delphi 2007 Professional
|
Re: [Records] Codeoptimierung bei Übergabetypen
22. Sep 2004, 15:55
Hi Igotcha,
dein Verständnisproblem ist einfach zu erklären.
Du denkst immer noch, dass deine Funktion PData-Typen mit spezifischen Werten gleichsetzt. das ist aber nicht so.
Ich geb dir mal ein einfaches Beispiel:
Du willst drei Autos mit unterschiedlichen Fahrern haben, wobei die Autos alle vom gleichen Typ sind.
Alles gleich, Farbe, Motor ... usw.
Dieser Autotyp heißt jetzt nicht BMW oder so, sondern PData.
Du vergibst drei Stück davon mit drei unterschiedlichen Kennzeichen.
Jetzt sagst du einem Freund er soll alle Autos vom Typ PData (BMW) anhalten und fragen wie die Fahrer heißen.
Somit hast du ihm nicht gesagt er soll das Auto mit dem Kennzeichen x anhalten und das Auto mit dem Kennzeichen y usw. sondern eben Typbezogen. Da er weiß wo die Fahrer sitzen kann er gar nichts falsch machen, da die Typen ja identisch sind. Nur die Inhalte an der richtigen Stelle sind unterschiedlich. Und nur darum geht es dir.
Somit sind deine 3 Autos zwar dreimal da, aber alle vom gleichen Typ.
Somit kannst du deine Funktion "abstrahieren" (wenn ich mal so sagen darf). Welcher Record übergeben wird ist wurst, hauptsache der Typ stimmt und somit der Zugriff auf die richtige Stelle.
Die Deklaration:
procedure BildSumme(atree: TVirtualStringTree; var adata: PData)
ist somit ausreichend. Hier kannst alle Variablen vom Typ PData übergeben und es kommt immer das richtige zurück.
Gruß oki
|