====== Konvertierungsfunktion (Umwandlung) ====== Die Edit-Komponente liefert eine Eingabe immer als **AnsiString**. Da man oft auch Werte eines anderen Datentyps (z.B. Zahlen) einlesen oder ausgeben will, benötigt man die Konvertierungsfunktion. Diese ermöglicht einen AnsiString in einen anderen Datentyp umzuwandeln und umgekehrt.\\ \\ Für die Umwandlung von **int-Werten** stehen die beiden globalen Funktionen **StrToInt und IntToStr** zur Verfügung, die in der Online-Hilfe etwa folgendermaßen beschrieben werden: \\ * int StrToInt(AnsiString S); Wenn der als Argument übergebenen String eine ganze Zahl darstellt, ist der Funktionswert diese Zahl als int-Wert. Stellt der String keine Zahl dar, erfolgt eine Fehlermeldung. * AnsiString IntToStr(int Value); Der Funktionswert ist ein String, der die als Argument übergebene Zahl darstellt. \\ \\ Das Schema, nach dem hier die Funktionen StrToInt und IntToStr beschrieben sind, wird in C++ üblicherweise zur Beschreibung von Funktionen verwendet. Es wird auch als Funktionsdeklaration, Funktions-Prototyp, Funktions-Header oder einfach Header bezeichnet. Die einzelnen Elemente bedeuten: * Der Bezeichner vor den Klammern ist der **Name der Funktion** (hier StrToInt und IntToStr). Mit diesem Namen wird die Funktion aufgerufen. * Der Datentyp vor dem Namen der Funktion ist der **Datentyp des Funktionswertes** oder der **Rückgabetyp** (hier int bzw. AnsiString). Ein Funktionsaufruf ist ein Ausdruck dieses Datentyps. Wenn der Rückgabetyp void ist, kann dieser Funktionswert nicht in einem Ausdruck, z.B. auf der rechten Seite einer Zuweisung, verwendet werden. Die Funktion kann dann nur aufgerufen werden. * Der Teil zwischen den Klammern nach dem Funktionsnamen ist die Parameterliste. Beim Aufruf einer Funktion muss normalerweise für jeden Parameter ein Argument des Datentyps aus der **Parameterliste** eingesetzt werden. Falls die Parameterliste leer ist oder nur aus void besteht, darf beim Aufruf der Funktion kein Argument angegeben werden. Der Unterschied zwischen den Begriffen **„Parameter“ und „Argument“** ist im C++-Standard folgendermaßen definiert: „Parameter“ wird bei einer Funktionsdeklaration verwendet und „Argument“ bei einem Funktionsaufruf. * Manche Funktionsbeschreibungen enthalten Angaben wie **__fastcall**, extern oder virtual. Diese Angaben haben keine Auswirkungen darauf, wie die Funktion aufgerufen werden kann und werden später erklärt.\\ \\ Deshalb kann man die Funktionen StrToInt und IntToStr folgendermaßen aufrufen: Nach dem Namen der Funktion StrToInt wird in Klammern der umzuwandelnde String angegeben. Dieser Ausdruck hat den Datentyp int. Entsprechend wird nach dem Namen IntToStr in Klammern ein int-Ausdruck angegeben, der in einen String umgewandelt werden soll. Dieser Ausdruck hat den Datentyp AnsiString. \\ //Beispiel: In einem Formular mit zwei Edit-Fenstern haben die beiden Ausdrücke// StrToInt(Edit1->Text) und StrToInt(Edit2->Text) //den Datentyp int. Mit ihnen man im Unterschied zu den Strings Edit1->Text und Edit2->Text auch rechnen:// StrToInt(Edit1->Text) + StrToInt(Edit2->Text) //ist die Summe der Zahlen in den beiden Edit-Fenstern. Diese Summe kann man nun in einem weiteren Edit-Fenster Edit3 ausgeben, wenn man sie in einen AnsiString umwandelt. Da man Funktionsaufrufe beliebig verschachteln kann, hat man mit// Edit3->Text=IntToStr(StrToInt(Edit1->Text) + StrToInt(Edit2->Text)); **!!Das funtioniert auch mit all den anderen Dateitypen (StrToFloat, StrTo Double, ...)!!**