Step 08 - OOP Begriffsklärung

 

Objektorientierte Programmierung am Beispiel einiger Delphi-Objekte

Kommentar des Webmasters:

Dieses Tutorial hat Jan B. in Eigenregie vorbereitet, programmiert und damals in der AG vorgetragen. Vielen Dank an Jan B. für diesen Beitrag!
Bis auf einige kleine Anpassungen ist der Beitrag noch sehr original-getreu.
Ich wünsche euch viel Spaß ;)
Hier möchte ich euch in die objektorientierte Programmierung einführen. Dazu zeige ich einige Objekte und deren Eigenschaften als Beispiel.
Objektorientierte Programmierung macht einiges wesentlich einfacher. Ein Objekt verbindet mehrere Eigenschaften, Methoden und Ereignismethoden zu einem bestimmten Zweck, wo man auch von Kapselung spricht. Eigenschaften bestimmen ein Objekt genauer. Man spricht hier auch oft von Attributen, die ein Objekt hat. Im Objektinspektor ist z.b. die Eigenschaft "Name" für die Definition des Namens des Objekts zuständig, durch den auf das Objekt später im Quelltext zugegriffen werden kann. Methoden sind ebenso wichtig: Durch diese kann ein Objekt etwas tun oder auf etwas reagieren - hier beginnt der ganze Zauber in der Programmierung. Eine Methode kann z.B. bei einem Verschlüsselungsprogramm die Funktion "VerschluesseleText" sein. Von einer Ereignismethode spricht man, wenn diese direkt auf eine Aktion reagiert. Bei einem Button wird z.B. beim OnClick-Ereignis darauf reagiert, dass der Benutzer gerade auf den Button geklickt hat - was wir ja schon im Hallo-Welt Tutorial kennen gelernt haben. Methoden werden zudem Unterteilt in Prozeduren und Funktionen. Dies kann ganz einfach daran unterschieden werden, wenn wir überlegen, ob die Methode etwas berechnen und an den Absender zurückgeben soll, oder nur etwas ausführen soll. Prozeduren sind z.B. zum Anzeigen einer einfachen Nachricht hilfreich, da wir vom Benutzer hier keine Rückmeldung brauchen. Die Methode "VerschluesseleText" oben, ist eher eine Funktion, da hier als Parameter ein Text übergeben werden kann und als Resultat den verschlüsselten Text zurück gibt. Wir werden später nochmal genauer darauf eingehen.
Im folgenden werden einige VCL-Objekte und ihre Ereignisse vorgestellt.
TForm
Eigenschaft Beschreibung Beispiel
Caption ändert den Titel des Programms.  Caption:='Mein Programm';
BorderStyle Die Art des Fensterrahmens. (bsNone, bsSingle, bsSizeable, ...) = (Kein Rand, Normal und nicht veränderbar, Normal und veränderbar,...) BorderStyle:=bsSingle;
Position Kann bei Delphi auch rechst unten im Eck (bei Formularansicht) auf eine feste Position geschoben werden. Position:=poScreenCenter;
AutoSize Gibt an, ob das Formular seine größe automatisch anpassen soll oder nicht. AutoSize:=false;
FormStyle Hier kann man einstellen, dass das Formular immer oben sein soll. FormStyle:=fsStayOnTop;
WindowState Startet das Programm maximiert, minimiert oder wird es ganz normal angezeigt?. WindowState:=wsMaximized;
Color Farbe des Formulars. Farben (TColor) fangen meist mit cl an. Einfach mal Cl eingeben und Strg+Leertaste drücken ;)
Dieses Feld ist in fast jeder sichtbaren Komponente vorhanden.
Color:=clSkyblue;
Name ändert den Name des Formulars. Unter diesem Namen z.B. MainForm kann man auf die einzelnen Eigenschaften des Objektes zugreifen. Dieser Name muss wie eine Variable aufgebaut sein. Dieses Feld ist bei jedem Objekt vorhanden. Es kann nicht im Quelltext verändert werden.
 
TEdit
Eigenschaft Beschreibung Beispiel
Text  Inhalt des Edits (String) Text:='asd';
MaxLength Maximale Text-Länge im Eingabefeld MaxLength:=25;
PasswordChar  z.B. Rauten bei Eingabe (Char) PasswordChar:='#'
 
TButton
Eigenschaft Beschreibung Beispiel
Caption Schrift im Button (String) Caption:='asd';
Enabled true => Aktiviert; false => Deaktiviert Enabled:=false;
Visible Sichtbarkeit (Boolean) Visible:=true;
Width Breite in Pixeln (Integer) Wdth:=223;
Height Höhe in Pixeln (Integer) Height:=100;
 
TLabel
Eigenschaft Beschreibung Beispiel
Font Schriftart einstellen (TFont) Font.Name:='Comic Sans MS';
WordWrap Zeilenumbruch (Boolean) Wordwrap:=true;
Autosize Automatische Größenänderung (boolean) Autosize:=false;
 

Ein weiteres Beispiel:

Lasst uns noch einmal Delphi starten und ein neues Projekt öffnen. Hier fügen wir dann im Formular ein Edit, einen Button und ein Label von der Tool-Palette ein.
Führe nun folgende Schritte aus:
  • Speichere alles ab - Unit1 -> MainUnit, Projekt -> OOPBeispiel
  • Ändere den Namen der Elemente:
    • Button: BtnWechseln;
    • Edit: EdString1;
    • Label: LblString2
    • Form1: MainForm
  • Ändere die Beschriftung der einzelnen Elemente:
    • Button: "Wechsele!"
    • Edit: (leer lassen)
    • Label: "Eingabe:"
  • Ändere die Farbe des Edits in clSkyBlue (Eigenschaft Color),
  • Das Formular sollte immer zentriert starten (Position poScreenCenter),
  • Der Maximier-Button des Formulars soll deaktiviert sein (siehe Eigenschaft BorderIcons),
  • Beim Label: Ändere die Schriftart (Font.Name) in eine, die dir gut gefällt, und ändere ebenfalls die Schrift-Größe (Font.Size),
  • Erstelle die BtnWechselnClick-Prozedur, indem du doppelt auf den Button klickst,
  • Deklariere eine Variablen "stringTausch" vom Typ String,
  • Weise den Inhalt des Edits (Text) der Variable stringTausch zu,
  • Weise den Inhalt des Labels (Caption) dem Edit zu,
  • Zu guter Letzt musst du nur noch stringTausch dem Caption-Attribut des Labels zuweisen.
Und so sollte der Code-Ausschnitt nun aussehen:
procedure TMainForm.BtnWechselnClick(Sender: TObject);
var                                       // Variablen-Deklaration
  stringTausch : String;
begin
  stringTausch := EdString1.Text;        // Eingegebenen String zwischenspeichern
  EdString1.Text := LblString2.Caption;  // Label-Text in Edit-Text schreiben
  LblString2.Caption := stringTausch;    // den zwischengespeicherten String nun in Label schreiben
end;
Falls es nicht gleich funktioniert, schaue genau auf die richtige Schreibweise und versuche ein Schritt nach dem Anderen. OOP wird uns noch lange verfolgen und in Step 19, nachdem wir mehr Algorithmik verstehen, beschäftigen wir uns wieder genauer damit.

 

Externe Links zu SocialMedia-Seiten zu diesem Kapitel:

Diese Links sollen dazu dienen, Kommentare und Meinungen rund um dieses Kapitel wiedergeben zu können.
 
 
* Hinweis zu externen Links:
Bitte Haftungsausschluss beachten!
Ich übernehme weder Garantie, noch Gewährleistung, noch Haftung für Inhalte, die nach diesem Link folgen. Mit deinem Klick auf den Link verlässt du meine Website. Es öffnet sich in der Regel ein neuer Tab oder ein neues Fenster.