AGB  ·  Datenschutz  ·  Impressum  







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

Wirkliche Unterschiede??

Ein Thema von Delbor · begonnen am 24. Apr 2017 · letzter Beitrag vom 24. Apr 2017
 
Hobbycoder

Registriert seit: 22. Feb 2017
1.017 Beiträge
 
#17

AW: Wirkliche Unterschiede??

  Alt 24. Apr 2017, 12:37
Delphi-Quellcode:
var Adresslist: TStringlist;

Adresslist.Add(xxxx);
Adresslist.Add(xxxx);
Adresslist.Add(xxxx);
Adresslist.Add(xxxx);
Ist klar, es werden 4 Instanzen von irgendwas unter AddressList

Das ist definitiv immer die gleiche Instanz und auch immer die gleiche Add-Methode.
In einem With-Konstrukt würde ich das allerdings so schhreiben:
Delphi-Quellcode:
with Adresslist do begin
Add(xxxx);
Add(xxxx);
Add(xxxx);
Add(xxxx);
end;
Entspricht dem gleichen wie in Beispiel 1.


Nach dem Angetroffenen Konstrukt ginge dies offenbar aber auch so:
Delphi-Quellcode:
with Adresslist.Add do begin
y:=xxxx;
y:=xxxx;
fy:=xxxx;
dy:=xxxx;
end;
Ist aber eben nur 1 Instanz von Irgendwas, wo jetzt werte für die Eigenschaften y, y, fy und dy zugewiesen werden

Die Frage ist also, was liefert die Methode Add überhaupt zurück?

Denn ich könnte ja folgendes im Sourcecode von TAddresslist schreiben:
Delphi-Quellcode:
function TAdressList.Add(Name: string): integer;
var
  Adress: TAdress;
begin
  Adress: TAdress.create;
  Adress.Name:=Name;
  self.Add(Adress);
  Result:=self.Count-1;
end;
Jetzt kannst du als AdressList.Add('Willi') ausführen,
aber
With AddressList.Add do
Name:='Willi'

hagelt es eine Exception.

Würde da aber stehen:
Delphi-Quellcode:
function TAdressList.Add(Name: string): TAdress;
var
  Adress: TAdress;
begin
  Adress: TAdress.create;
  Adress.Name:=Name;
  self.Add(Adress);
  Result:=Adress;
end;
dann könnte man so oder so arbeiten.

Entscheidet ist aber immer noch dass jedes Add eine neue Instanz erzeugt.
Delphi-Quellcode:
AdressList.Add('Willi');
AdressList.Add('Willi');
AdressList.Add('Willi');
AdressList.Add('Willi');
Erzeugt 4 Adresseinträge die alle Willi heißen

Aber
Delphi-Quellcode:
with AdressList.Add do
begin
  Name:='Willi';
  Name:='Willi';
  Name:='Willi';
  Name:='Willi';
end;
Erzeugt 1 Adresseinttrag der Willi heißt.

Es ist also entscheidend die Methode Add aussieht.

Möglicherweise habe ich auch die Frage falsch verstanden.
Gruß Hobbycoder
Alle sagten: "Das geht nicht.". Dann kam einer, der wusste das nicht, und hat's einfach gemacht.
  Mit Zitat antworten Zitat
 


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 16:21 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