Objektorientierte Programmierung am Beispiel einiger Delphi-Objekte
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. |
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:='#' |
Eigenschaft | Beschreibung | Beispiel |
---|---|---|
Caption | Der Text des Buttons | Caption:='Klick mich'; |
default | Legt fest, ob der Button der Standardbutton ist. Wenn er eingeschaltet ist, wird der Button geklickt wenn die Enter-Taste gedrückt wird. | default:=true; |
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; |
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:
- 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.
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; |
Weitere, in Delphi häufig verwendete Objekte:
procedure TMainForm.FormLoad(Sender: TObject); begin cbBeispielCheckBox.Caption := 'Check me'; cbBeispielCheckBox.Checked := false; // Setzt den Anfangszustand der Checkbox end; |
procedure TMainForm.FormLoad(Sender: TObject); begin rbBeispielRadioButton.Caption := 'Option 1'; rbBeispielRadioButton.Checked := true; // Setzt diese RadioButton als die ausgewählte Option end; |
procedure TMainForm.FormLoad(Sender: TObject); begin cbBeispielComboBox.Items.Add('Option 1'); cbBeispielComboBox.Items.Add('Option 2'); cbBeispielComboBox.Items.Add('Option 3'); cbBeispielComboBox.ItemIndex := 0; // Setzt die erste Option als die ausgewählte Option end; |
procedure TMainForm.FormLoad(Sender: TObject); begin mBeispielMemo.Lines.Add('Dies ist eine Zeile.'); mBeispielMemo.Lines.Add('Dies ist noch eine Zeile.'); mBeispielMemo.ReadOnly := true; // Setzt das Memo auf Nur-Lesen end; |
Die Beispiel-Quelltexte, die ich vorher gegeben habe, dienen lediglich dazu, die Verwendung und Manipulation dieser spezifischen Komponenten in der Delphi-Programmiersprache zu demonstrieren. Es ist wichtig zu betonen, dass diese Beispiele nur zu Lernzwecken dienen und nicht unbedingt die beste oder effizienteste Methode repräsentieren, diese Komponenten in einer tatsächlichen Anwendung zu verwenden.
In der objektorientierten Programmierung, und insbesondere in GUI-basierten Anwendungen, ist es oft sinnvoll, die Initialisierung und Konfiguration der Benutzeroberflächenkomponenten im Objektinspektor durchzuführen. Hier sind einige Gründe dafür:
- Unterscheidung von Entwurf und Logik: Die Verwendung des Objektinspektors ermöglicht es Ihnen, das Design und Layout der Benutzeroberfläche getrennt von der Programmlogik zu behandeln. Dies erleichtert die Verwaltung und Wartung beider Aspekte Ihrer Anwendung.
- Performance: Die Initialisierung der Komponenteneigenschaften im Objektinspektor kann bei der Ausführung der Anwendung effizienter sein, da es nicht notwendig ist, zusätzlichen Code in der Laufzeit auszuführen.
- Übersichtlichkeit: Es ist einfacher, alle Eigenschafteneinstellungen an einem Ort (Objektinspektor) zu sehen und zu ändern, anstatt sie über den Code verteilt zu haben.
- Vermeidung von Fehlern: Wenn Werte im Code initialisiert werden, besteht auch ein größeres Risiko für Programmierfehler.
Zur Verdeutlichung dieser Punkte, beachten Sie bitte, dass die Anpassung der Komponenteneigenschaften in der `FormLoad`-Methode bedeutet, dass untrennbar mit der Ausführungslogik der Anwendung verknüpft ist. Anstatt eine klare Trennung zwischen Design und Logik zu haben, mischen Sie beide, was zu einem Code führen kann, der schwerer zu pflegen und zu debuggen ist.
Also, obwohl es Situationen geben kann, in denen es sinnvoll ist, die Eigenschaften der Komponenten programmatisch zu modifizieren (zum Beispiel, wenn diese auf Benutzereingaben oder andere Dynamiken in Ihrer Anwendung reagieren müssen), ist es in der Regel eher ratsam, die Initialwerte und Konfigurationen statischer Elemente im Objektinspektor zu setzen.