![]() |
Deklarationen? Logik?
Ich hoffe ich bin mit meinem Anliegen im richtigen Unterforum.
Ich verstehe nicht so recht die Logik, warum man mit Variablen unterschiedlich umgeht. Als Beispiel:
Delphi-Quellcode:
Die 3 Variablen kann ich dann einfach so nutzen.
var
s:String; i:Integer; P:TPoint; begin [..] Anders aber zum Beispiel bei einer TStringList:
Delphi-Quellcode:
Da verstehe ich irgendwie nicht, warum ein Unterschied gemacht wird und ich erst noch das Create brauche. Oder habe ich etwas falsch verstanden?
var
liste:TStringList; begin liste := TStringList.Create; [..] |
AW: Deklarationen? Logik?
Im ersten Beispiel handelt es sich um einfache Typen. Im 2. Codeschnipsel um eine Klasse. Bei der deklarierten Variable handelt es sich nur um eine Referenz (Zeiger), welche auf eine Instanz der Klasse weist. Ein Objekt ( Instanz) wird durch den Aufruf dessen konstruktors erzeugt.
|
AW: Deklarationen? Logik?
Mh... ist das auch der Grund weshalb ich mit
Delphi-Quellcode:
dann mehr "hilfe" habe, statt alles per Hand machen zu müssen, wie bei normalen Variablen?
liste.irgendwas
|
AW: Deklarationen? Logik?
Variablen einfacher Typen beinhalten "nur" daten. Klassen enthalten auch Logik ( Methoden). Ich vermute mal, dass meinst du.
|
AW: Deklarationen? Logik?
Ah ok, ich glaube so versteh ich es. Danke :).
Aber eine andere kleine Frage schwirrt mir im Kopf rum. Was ist der Unterschied zwischen
Delphi-Quellcode:
und
Button1.Click;
Delphi-Quellcode:
Der Effekt sieht für mich irgendwie gleich aus...
Button1Click(nil);
|
AW: Deklarationen? Logik?
Um das was mkinzler sagte etwas plumper auszudrücken, Pascal ist von Hause aus keine OOP Sprache. s und i sind normale variablen, eben String und Integer, also können sie einfach deklariert werden. Objekte wie liste sind dagegen ein kleines Problem. Entweder bleibt es Pascal oder man erfindet einen neue Sprache. So wie es ist, ist es eigentlich noch fast Pascal (wurde ich sagen). liste ist nur eine Adresse auf das Objekt, letztendlich ein Integer. Somit wird keine Regel verletzt. Und später in Code wird das Objekt erstellt.
Zugegeben, doppelt gemoppelt, aber als Pascal erfunden wurde, da hat man OOP vergessen. Das kam erst später dazu. Also hat man ein Kompromiss gefunden. |
AW: Deklarationen? Logik?
Zitat:
Zitat:
|
AW: Deklarationen? Logik?
Ich danke Euch beiden :).
Jetzt finde ich die Dinge logischer, die ich schon immer nutze, weil sie funktionieren auch wenn mir nicht klar war warum *g*. |
AW: Deklarationen? Logik?
Hier lohnt es sich vermutlich stark, sich mal ganz allgemein ein wenig mit dem Konzept der Klassen (bzw. OOP generell) literarisch auseinanderzusetzen. Das sind grundlegende Bausteine quasi aller relevanten Programmiertools von heute. (Ich weiss, nicht alle, aber wer Delphi, Java, C++ oder C# nutzt, hat das als täglich Brot. Scripten zähle ich hier mal nicht zu Programmieren ;))
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:14 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 by Thomas Breitkreuz