AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Zugriff auf Pointervariablen

Ein Thema von Alfonso · begonnen am 28. Jul 2006 · letzter Beitrag vom 28. Jul 2006
Antwort Antwort
Alfonso

Registriert seit: 10. Jan 2006
250 Beiträge
 
Delphi 11 Alexandria
 
#1

Zugriff auf Pointervariablen

  Alt 28. Jul 2006, 09:00
Hallo,

ich verwende den Virtual Treeview. Dort werden Pointerrecords verwendet, z.B.
Delphi-Quellcode:
type
  TTreeData = record
    FCaption: String;
    FColumn1: String;
  end;

var
  Data: ^TTreeData;
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.

In der Anleitung vom Treeview stehen die Beispiele ohne ^. In dem Tutorial im dsdt.info steht es mit ^.

Was ist nun richtig? Oder ist es gleichwertig?

Gruß
Alfonso
Alfonso
Seit Turbo Pascal 3.0 dabei!
Ewiger Pascal Fan!
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#2

Re: Zugriff auf Pointervariablen

  Alt 28. Jul 2006, 09:04
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.
  Mit Zitat antworten Zitat
Benutzerbild von Ralf Kaiser
Ralf Kaiser

Registriert seit: 21. Mär 2005
Ort: Wuppertal
932 Beiträge
 
Delphi 10.3 Rio
 
#3

Re: Zugriff auf Pointervariablen

  Alt 28. Jul 2006, 09:09
Zitat von Alfonso:
In der Anleitung vom Treeview stehen die Beispiele ohne ^. In dem Tutorial im dsdt.info steht es mit ^.

Was ist nun richtig? Oder ist es gleichwertig?
Halli Hallo,

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
Ralf Kaiser
  Mit Zitat antworten Zitat
Alfonso

Registriert seit: 10. Jan 2006
250 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Zugriff auf Pointervariablen

  Alt 28. Jul 2006, 09:13
Vielen Dank.

Ich habe Pointers zum letzten mal mit Turbo Pascal benutzt und dort musst man immer ^ eingeben.

Gruß

Alfonso
Alfonso
Seit Turbo Pascal 3.0 dabei!
Ewiger Pascal Fan!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:04 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz