Autor Beitrag
Erivium
Hält's aus hier
Beiträge: 14



BeitragVerfasst: Di 20.10.09 15:24 
Hallo miteinander, :wave:

ich versuche mir momentan mehr oder weniger erfolgreich die Klassenimplementation unter Delphi beizubringen, und bräuchte da ein wenig Hilfe von euch.
Kennt ihr eventuell Tipps, Hilfethreads oder Tutorials, die dort den Einstieg erleichtern? Mir fällt es nämlich seitdem ich bisher ohne derlei Vereinfachungen gearbeitet habe ziemlich schwer da Fuß zu fassen...
Konkretere Fragen die sich mir momentan noch stellen sind auch beispielsweise:
Die korrekte Implementierung in eine neue Unit. Wie gehe ich da am besten vor? Was kommt beispielsweise unter den Public oder Private Bereich?
Wie verwende ich Set und Get-Methoden in der Hinsicht richtig?

Ich hoffe ihr könnt mir da etwas auf die Sprünge helfen. :oops:
Vielen Dank schon mal,
liebe Grüße
thepaine91
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 763
Erhaltene Danke: 27

Win XP, Windows 7, (Linux)
D6, D2010, C#, PHP, Java(Android), HTML/Js
BeitragVerfasst: Di 20.10.09 16:06 
Das könnte Helfen www.delphi-treff.de/tutorials/ oder das Buch Delphi for Kids
HelgeLange
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 735
Erhaltene Danke: 6

Windows 7
Delphi7 - Delphi XE
BeitragVerfasst: Di 20.10.09 16:08 
ein paar Sachen kann ich Dir schnell beantworten :

private Bereich : alle die Mitgleider der Klasse, die für ein vererbtes Objekt nicht mehr sichtbar sein sollen. Heisst, was Du dort deklarierst, ist unsichtbar für jede davon abgeleitete Klasse. Ausnahme ist, wenn sie sich in der gleichen physikalischen Datei befinden.

protected Bereich : Sichtbar für abgeleitete Klassen, aber nicht von aussen. Heisst, derjenige, der das Objekt erzeugt, kann den protected Bereich nicht sehen.

public Bereich : Sichtbar innen und aussen.

published Bereich : erscheint im Objekt-Inspektor.


Und die Frage zu Get und Set Methoden : Die Pi-mal-Daumen-Regel ist, dass Du sie nur dann brauchst, wenn Du auf das Ändern der Variable etwas machen willst (Set) oder wenn Du die Variable berechnen/holen musst (Get). Ansonsten reicht der Variablenname in der Deklaration aus :

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
type TMyClass = class(TComponent)
     private
       FsMyString : String;
     published
       property MyString : String read FsMyString write FsMyString;
     end;


In dem Fall müssen alle abgeleiteten Klassen über die property MyString zugreifen, da die variable selbst private ist.

_________________
"Ich bin bekannt für meine Ironie. Aber auf den Gedanken, im Hafen von New York eine Freiheitsstatue zu errichten, wäre selbst ich nicht gekommen." - George Bernhard Shaw
Erivium Threadstarter
Hält's aus hier
Beiträge: 14



BeitragVerfasst: Mi 21.10.09 09:37 
Danke euch schon mal für die Antworten. Ich habe mir nun auch ein Buch nochmal zur Vertiefung des gelernten bestellt.
Eine zusätzliche Frage noch: Kann ich beispielsweise in der Klasse eine Variable die im Public Bereich steht auf den Private Bereich zugreifen lassen?
Habe ich das dann richtig verstanden, dass das eigentliche Programm dann allerdings nur auf die Public Variablen zugreifen kann?

Set&Get Methoden werden also in der Regel dazu gebraucht um mit den Variablen zu arbeiten? Wie füge ich denn dann die Implementierten Set&Get Methoden ins Hauptprogramm ein, oder müssen die nur in der Klasse deklariert werden?
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8554
Erhaltene Danke: 481

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Mi 21.10.09 11:19 
Die Setter und Getter sind in aller Regel private Methoden der Klasse. Sie müssen dann auch in der Klasse implementiert werden.

Einfaches Beispiel:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
type
TMyClass = class
  private
    fMyVar: Integer;
    procedure fSetMyVar(value: Integer);
    function fGetMyVar: Integer;
  public
    property MyVar read fGetMyVar write fSetMyVar;

end;

implementation

procedure TMyClass.fSetMyVar(value: Integer);
begin
  fMyVar := Value;
  // evtl. noch mehr, z.B. ein Array auf diese Größe verändern, Log-Eintrag schreiben, Kuchen backen, ...
end;

function TMyClass.fGetMyVar: Integer;
begin
  // evtl.: berechne irgendwas ..
  result := fMyVar;
end;

Außeralb der Klasse (bzw. der Unit) ist dann nur MyVar sichtbar. In dem Setter kann man dann z.B. ungültige Eingaben abfangen, korrigieren und/oder eine Fehlermeldung ausgeben.

_________________
We are, we were and will not be.
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 21.10.09 11:45 
delphitutorials.michael-puff.de

@Gausi: Was soll das komische "f" vor den Methodennamen?
Erivium Threadstarter
Hält's aus hier
Beiträge: 14



BeitragVerfasst: Fr 23.10.09 13:52 
Danke für eure Hilfe. Mir ist schon einiges klarer.

Eine kleine Frage noch. Ich habe mir jetzt das Buch Delphi for Kids mal angeschaut. Okay ein Kid bin ich nun nicht mehr so ganz, aber es geht mir ja nur um den lernerfolg. Wie groß ist denn die abgedeckte Grundlage nachdem man das Buch durchgearbeitet hat. Kann man dann von sich behaupten gut mit dem Programm umzugehen, oder sind da nur einige Grundzüge erklärt.
Ich weiß, das lässt sich pauschal nicht leicht beantworten, aber vielleicht mag sich ja jemand von euch dazu äußern.
Dankeschön.
thepaine91
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 763
Erhaltene Danke: 27

Win XP, Windows 7, (Linux)
D6, D2010, C#, PHP, Java(Android), HTML/Js
BeitragVerfasst: Fr 23.10.09 17:00 
Werden viele grundlegende Dinge erklärt mir hat es sehr gut geholfen beim Einstieg und kann es nur weiter empfehlen.