![]() |
Zugriff auf Pointervariablen
Hallo,
ich verwende den Virtual Treeview. Dort werden Pointerrecords verwendet, z.B.
Delphi-Quellcode:
Meine Frage bezieht sich auf den Zugriff auf Data. Der Compiler erlaubt mir der Zugriff mit Data^.FCaption sowie Data.FCaption. Wenn ich With Data verwende, muss ich Data^ verwenden; ohne ^ gibt der Compiler einen Fehler.
type
TTreeData = record FCaption: String; FColumn1: String; end; var Data: ^TTreeData; In der Anleitung vom Treeview stehen die Beispiele ohne ^. In dem Tutorial im ![]() Was ist nun richtig? Oder ist es gleichwertig? Gruß Alfonso |
Re: Zugriff auf Pointervariablen
Es ist bei Delphi gleichwertig, da man das ^ weglassen kann. Der With Block kann dies aber nicht, da er sonst nicht weiss, wass er dir innerhalb des With/Do Blockes zur verfügung stellen soll: dereferenziert oder die Zeiger auf dei Inhalte.
Ich für meinen Teil würde die ^ trotzdem immer schreiben, damit fällt es einem beim lesen eines Quelltextes auch sofort auf womit man es zu tun hat. |
Re: Zugriff auf Pointervariablen
Zitat:
es ist gleichwertig. Das "Dach" (^) dereferenziert ja den angegebenen Pointer. Wenn auf Daten "hinter" dem Pointer zugegriffen wird dann dereferenziert Delphi automatisch, ohne daß man das ^-Zeichen angeben muss. Viele Leute schreiben es aber trotzdem um im Source deutlich zu machen, daß es sich um einen Pointer handelt. Ich glaube in früheren Delphi-Versionen wurde nicht automatisch dereferenziert (bin mir aber nicht sicher wann dieses Feature in Delphi eingeführt wurde) und da musste man das ^-Zeichen noch schreiben. Ciao, Ralf |
Re: Zugriff auf Pointervariablen
Vielen Dank.
Ich habe Pointers zum letzten mal mit Turbo Pascal benutzt und dort musst man immer ^ eingeben. Gruß Alfonso |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:44 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz