Moin!
Maaaaart hat folgendes geschrieben : |
| Deshalb überhäufe ich dich nun mit Fragen. (Sorry, aber das muss sein ^^) |
Kein Problem, dafür sind wir ja da.
Maaaaart hat folgendes geschrieben : |
| 1. Was sind Properties? |
Zu deutsch "Eigenschaften" einer Klasse. Du hast den Zugriff auf die privaten Variablen der Klasse nur über Methoden erlaubt, was immer einen Funktionsaufruf notwendig macht. Wenn man allerdings eine Eigenschaft deklariert, kann man diese im Zuweisungskontext verwenden, was sich häufig viel besser lesen lässt. Und nebenbei muss man auch noch nicht mal auf Setter-/Getter-Methoden verzichten, diese kann man nämlich bei der Deklaration statt dem direkten Zugriff auf die Feldvariablen (s.u.) angeben, dann hat man das sogar auch mit drin. So kann man z.B. virtuelle Werte abbilden, also Werte, die nirgendwo in der Klasse gespeichert sind, sondern dynamisch bei jeder Abfrage berechnet werden.
Da deine Setter-/Getter-Methoden aber primitiv waren (haben nur den Zugriff auf die privaten Variablen ermöglicht), machen sie keinen wirklichen Sinn, sondern nur überflüssigen Quelltext. Deshalb habe ich das auf Eigenschaften umgestellt, da ist das schon eingebaut.
Maaaaart hat folgendes geschrieben : |
| 2. Was bedeutet das "F" vor allen Variablen? |
Hat den ganz praktischen Grund, dass du sonst eine private Variable und eine Eigenschaft des gleichen Namens hättest, was nicht erlaubt ist. Also stellt man den privaten Variablen der Klasse ein "F" voran (für Feldvariable), um sie von den Eigenschaften unterscheiden zu können.
Maaaaart hat folgendes geschrieben : |
3. Was meinst du mit den letzten Zeilen Quelltext?
Delphi-Quelltext 1: 2: 3: 4: 5:
| initialization Rechnung := TRechnung.Create
finalization Rechnung.Free; | |
Ja, genau die meine ich, zusammen mit der Variablendeklaration von
Rechnung: TRechnung; weiter oben. Hier wird (fast) das gleiche gemacht, wie in den Formular-Units, da gibt´s ja auch eine globale Variable für das Formular-Objekt. Genau das machst du jetzt einfach auch in der Rechnungs-Unit, du legst hier das Objekt an und verwendest den
initialization-Abschnitt dazu, das Objekt im Speicher anzulegen und bei Programmende wird der Code aus dem
finalization-Abschnitt ausgeführt, der das Objekt wieder frei gibt. So hast du das Problem umgangen, dass du dein TRechnung-Objekt in der Formular-Unit anlegen und auch wieder freigeben musst. Denn eigentlich hat das nix zu suchen (Trennung von GUI und Datenhaltung).
Maaaaart hat folgendes geschrieben : |
falls ich alles verstehen sollte, dann überlege ich mir ob ich deine Variante nehme, andernfalls würde ich eher die Variante nehmen, die mir mein Lehrer auch zutraut.  |
Alles, was du erklären kannst, wird dir dein Lehrer auch abnehmen, gibt ja keinen Grund, das zu verweigern, wenn du verstanden hast, was du da machst. Eine gute Quelle für "wo hast du das den her" ist natürlich die Delphi-Online-Hilfe, die bis einschließlich D7 wirklich gut ist (OK, danach ist das herausragende Merkmal eher, sie ist
vorhanden...

).
Wenn du noch Fragen hast, immer her damit.
cu
Narses
There are 10 types of people - those who understand binary and those who don´t.