Willemers Informatik-Ecke: C++-Builder

Programmieren mit dem C++-Builder

Willemers Informatik-Ecke

Formulare

Formulare entsprechen den Fenstern bei konventionell erstellten Anwendungen. In einem Punkt unterscheiden sie sich allerdings von ihnen. Während ein Fenster normalerweise erst dann erzeugt wird, wenn es gebraucht wird und nach Gebrauch sofort geschlossen wird, sind Formulare sofort nach Start der Applikation gestartet. Sie sind lediglich unsichtbar. Darum werden Formulare auch mit den Aufrufen Show und Hide gestartet und geschlossen.

Beenden einer Applikation

Wird über das Menü das Programm verlassen, den entsprechenden Eintrag anwählen, in den Events OnClick doppelklicken. In die sich öffnende Funktion eintragen:

	Application->Terminate();	

Ereignisfunktionen

Nachdem die Objekte auf dem Formular zusammengestellt sind, beginnt die klassische Programmierarbeit. Der Objektinspektor hat neben der Lasche "Eigenschaften" auch die Lasche "Ereignisse". Hier werden die Ereignisse aufgezählt, die die aktuell selektierte Komponente kennt.

Hinter jedem Ereignis kann eine Funktion benannt werden, die das Ereignis bearbeiten soll. Klickt man einfach doppelt auf das Ereignis, wählt der C++-Builder einen eigenen Funktionsnamen anhand des Ereignisses. In jedem Fall startet der Editor und der Rahmen einer Funktion wird erzeugt. Hier kann man programmieren, was bei Eintreffen des jeweiligen Ereignisses eintreffen soll.

Im Parameter Sender der Ereignisfunktion steht, welches Objekt das Ereignis ausgelöst hat. Dies ist wichtig, wenn die gleiche Ereignisfunktion mehrere Auslöser bedient.

Datentypen

Neben den üblichen C/C++ Datentypen gibt es im C++-Builder noch einige besondere Typen.

AnsiString

Die Klasse AnsiString vereinfacht in einigen Fällen den Umgang mit Zeichenketten erheblich. Der Umgang mit AnsiString ist aber schon deshalb wichtig, weil die Komponenten Texte immer als AnsiString erwarten.

Aneinanderhängen

Das Zuweisen und Aneinanderhängen von Zeichenketten wird wie zu alten BASIC-Zeiten einfach mit dem Gleichheitszeichen und dem Plus erreicht.

AnsiString str1, str2;
    str1 = "Wir hängen alle " + str2 + " zusammen.";

Umwandlungen

Um aus einem AnsiString in einen klassischen C-String umzuwandeln, gibt es die Methode c_str. Sie liefert einen Zeiger auf char zurück.

AnsiString Str;
char * cStr;

    cStr = Str.c_str();

Wie man einen AnsiString in eine Zeitvariable umwandeln kann, wird im Abschnitt Zeit/Datum erläutert.

Boolesche Abfragen

Ob eine Zeichenkette leer ist, bestimmt die Methode IsEmpty.

if (Str.IsEmpty()) {
    ...

Datum und Zeit (TDateTime)

TDateTime ist als eine Zahl definiert. Sie enthält die Tage seit dem 30.12.1899. Dies ist der Tag 0. Sylvester 1899 wäre damit 1 usw.. Stunden und Minuten errechnen sich als Bruchteile eines Tages.

String in Uhrzeit wandeln

Wenn ein String beispielsweise durch Eingabe Zeit oder Datumsinhalte hat, kann sie in eine Variable vom Typ TDateTime umgewandelt werden.

AnsiString strZeit;
TDateTime Zeit;

    Zeit = StrToTime(strZeit);

Bei einem Fehler im String wird eine Messagebox erzeugt. Diese ist per try-except abzufangen.


Homepage (C) Copyright 2003 Arnold Willemer