Objektorientierte Programmierung am Beispiel einiger Delphi-Objekte
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.