AGB  ·  Datenschutz  ·  Impressum  







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

Fragen zu TList

Ein Thema von Jacki O · begonnen am 11. Mai 2004 · letzter Beitrag vom 12. Mai 2004
Antwort Antwort
Jacki O

Registriert seit: 18. Okt 2003
73 Beiträge
 
#1

Fragen zu TList

  Alt 11. Mai 2004, 17:15
Hallo,

ich habe in meinem Prog eine Liste vom Typ TList.
In der Speicher ich Zeiger auf Strukturen:
Code:
PMyElem = ^TPMyElem;
TPMyElem = record
 Nr  : Integer;
 Name : String[40];
end;

...
var MyElem : PMyElem;
    aList : TList;
...
Mit
Code:
New(MyElem);
Reserviere ich Speicher für ein neues Element. Die Daten kommen durch
Code:
MyElem.Nr := eineNummer;
MyElem.Name := 'Hans';

aList.Add(MyElem);
in die Liste. In einem Buch habe ich nun gelesen, das beim Einfügen der Daten dieses 'Pointer Dach' mit dabei ist:
Code:
MyElem^.Nr := eineNummer;
MyElem^.Name := 'Hans';

aList.Add(MyElem);
Das habe ich in meinem Prog nicht und bisher auch keine Probleme, aber nun die Frage, wozu wird das so gemacht, bzw werde ich Probleme bekommen ??


Gruß Jacki
  Mit Zitat antworten Zitat
Benutzerbild von maximov
maximov

Registriert seit: 2. Okt 2003
Ort: Hamburg
548 Beiträge
 
Delphi 2005 Professional
 
#2

Re: Fragen zu TList

  Alt 11. Mai 2004, 17:21
Nein du wirst keine probleme bekommen, da delphi aus dem kontext schliessen kann, das du hier dereferenzieren möchtest und macht es dann automatisch! Ist allerdings ne stil-frage ob du deinen code nicht lieber eindeutig formulieren willst
mâxîmôv.

{KDT}
  Mit Zitat antworten Zitat
Jacki O

Registriert seit: 18. Okt 2003
73 Beiträge
 
#3

Re: Fragen zu TList

  Alt 11. Mai 2004, 17:24
Hallo,

danke für die schnelle Antwort
Gruß Jacki
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#4

Re: Fragen zu TList

  Alt 11. Mai 2004, 17:38
Zitat von maximov:
Nein du wirst keine probleme bekommen, da delphi aus dem kontext schliessen kann, das du hier dereferenzieren möchtest und macht es dann automatisch! Ist allerdings ne stil-frage ob du deinen code nicht lieber eindeutig formulieren willst
Da ich Turbo-Pascal ab der Version 3.0 kenne bin ich noch nicht auf die Idee gekommen in solch einem Fall die ^ wegzulassen. Vielleicht halte ich es auch deshalb für einen äußert unsauberen Stil. Wenn man nicht gerade die Deklaration vor Augen hat könnte man auch darauf kommen, dass es sich um ein Object o. normalen Record handelt.
Bin ich alleine mit der Meinung?
I come from outer space to save the human race
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#5

Re: Fragen zu TList

  Alt 12. Mai 2004, 02:12
Zitat von Jens Schumann:
Bin ich alleine mit der Meinung?
Nein ! Ich frage mich eher, wieso das egal sein soll, oder wie das gehen soll ? Wäre es egal, so wäre die Pascal-Syntax nicht mehr eindeutig. Schreibe ich 1+1=3 so könnte man vielleicht mit einer gewissen KI darauf schließen, daß es falsch ist, aber ist die 1 verkehrt oder die 3 ? ist also 2+2=4 gemeint, oder 1+1=2 ?? Wie soll der Compiler das entscheiden ? Also, wie immer, besser Fehlermeldung und nix mit EXE.

Jede Programmiersprache hat eine eindeutige Grammatik, die sich mathematisch beweisen läßt. Und das Bsp. hier mit dem ^ (Ptr-Dach)wiederspricht allem. Ein Compiler ist nun mal kein Telefon-Nummern Verzeichnis. Der kann sich nicht mit "trefferquoten" zufrieden geben.
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Fragen zu TList

  Alt 12. Mai 2004, 02:53
Fällt wohl unter den Begriff Compiler-Magic.

Btw, wenn ihr mit Objekten arbeitet, dereferenziert ihr ja auch nicht explizit und das, obwohl Objekte eigentlich auch nur Zeiger auf einen Speicheradresse sind. Wenn ihr nicht wollt, dass Delphi für euch die Arbeit mit den Pointern abnimmt, dann müsst ihr C++ benutzen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Jacki O

Registriert seit: 18. Okt 2003
73 Beiträge
 
#7

Re: Fragen zu TList

  Alt 12. Mai 2004, 07:10
Hallo,

erstmal vielen Dank für die Antworten.
Ich sehe das nun so :

Wenn der Compiler einem die Möglichkeiten gibt Dinge zu vereinfachen, dann kann es nicht verkert sein, diese Vereinfachung anzunehmen. Da es sich anscheinend nur um eine Stil Frage handelt.
Ausserdem denke ich, das die Vereinfachung dazu führt, das Andere, die nicht so viel mit Delphi und entsprechend mit Pascal zu tun haben, den Quellcode einfacher lesen und verstehen können.

Gruß Jacki
  Mit Zitat antworten Zitat
Benutzerbild von maximov
maximov

Registriert seit: 2. Okt 2003
Ort: Hamburg
548 Beiträge
 
Delphi 2005 Professional
 
#8

Re: Fragen zu TList

  Alt 12. Mai 2004, 09:32
Zitat von Jacki O:
....
Ausserdem denke ich, das die Vereinfachung dazu führt, das Andere, die nicht so viel mit Delphi und entsprechend mit Pascal zu tun haben, den Quellcode einfacher lesen und verstehen können.
Sie können ihn vielleicht einfacher lesen, weil sie nicht mit dem ^ zeichen belästigt werden, aber werden damit auch in die irre geführt, da sie denken hier wird ganz normal qualifiziert und nicht dereferenziert + qualifiziert

Also bin auch dafür es explizit hinzuschreiben!
mâxîmôv.

{KDT}
  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 09:06 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