Von Konsole in Forms
-
Hallo Leute,
hoffe ich bin hier richtig...
Wir sind in der Schule grad bei Funktionen...
Der Lehrer hat uns eine Konsolen - Funktion gegeben und wir sollen das nun
in Windows Forms umsetzen...Hier das Konsolenprogramm
#include <iostream> using namespace std; float umrechne(float); // Funktionsprototyp int main() { float Fahrenheit; //Definition der Variable Fahrenheit float Celsius; //Definition der Variable Celsius // Eingabe cout << " Bitte Temperatur in Celsius angeben: "; cin >> Celsius; // Verarbeitung Fahrenheit = umrechne (Celsius); // Ausgabe cout << "\nDie Temperatur in Fahrenheit ist: " << Fahrenheit << endl; return 0; } // Aufruf der Funktion float umrechne (float TemperaturC) { float TemperaturF; TemperaturF = (( TemperaturC * 9.0 ) / 5.0 ) + 32; return TemperaturF; }
und hier was ich schon gemacht habe...Der Compiler sagt: lokale Funktionsdefinition nicht erlaubt...was muss ich bei Funktionen in Forms beachten??
Hier die Windows Form
#pragma once namespace UmrechnungCelsius_Fahrenheit { using namespace System; using namespace System::ComponentModel; using namespace System::Collections; using namespace System::Windows::Forms; using namespace System::Data; using namespace System::Drawing; /// <summary> /// Zusammenfassung für Form1 /// /// Achtung: Wenn Sie den Namen dieser Klasse ändern, müssen Sie die Eigenschaft /// 'Ressourcendateiname' für das Compilertool für verwaltete Ressourcen ändern, /// das allen .resx-Dateien zugewiesen ist, von denen diese Klasse abhängt. /// Anderenfalls können die Designer nicht korrekt mit den lokalisierten Ressourcen /// arbeiten, die diesem Formular zugewiesen sind. /// </summary> public __gc class Form1 : public System::Windows::Forms::Form { public: Form1(void) { InitializeComponent(); } protected: void Dispose(Boolean disposing) { if (disposing && components) { components->Dispose(); } __super::Dispose(disposing); } private: System::Windows::Forms::Label * lbAusgabe; private: System::Windows::Forms::TextBox * tbEinheit; private: System::Windows::Forms::Button * btFahrenheit; private: System::Windows::Forms::Button * btCelsius; private: /// <summary> /// Erforderliche Designervariable. /// </summary> System::ComponentModel::Container * components; /// <summary> /// Erforderliche Methode für die Designerunterstützung. /// Der Inhalt der Methode darf nicht mit dem Code-Editor geändert werden. /// </summary> void InitializeComponent(void) { this->lbAusgabe = new System::Windows::Forms::Label(); this->tbEinheit = new System::Windows::Forms::TextBox(); this->btFahrenheit = new System::Windows::Forms::Button(); this->btCelsius = new System::Windows::Forms::Button(); this->SuspendLayout(); // // lbAusgabe // this->lbAusgabe->Location = System::Drawing::Point(104, 104); this->lbAusgabe->Name = S"lbAusgabe"; this->lbAusgabe->Size = System::Drawing::Size(200, 32); this->lbAusgabe->TabIndex = 0; // // tbEinheit // this->tbEinheit->Location = System::Drawing::Point(152, 40); this->tbEinheit->Name = S"tbEinheit"; this->tbEinheit->Size = System::Drawing::Size(88, 20); this->tbEinheit->TabIndex = 1; this->tbEinheit->Text = S""; // // btFahrenheit // this->btFahrenheit->Location = System::Drawing::Point(56, 200); this->btFahrenheit->Name = S"btFahrenheit"; this->btFahrenheit->Size = System::Drawing::Size(112, 32); this->btFahrenheit->TabIndex = 2; this->btFahrenheit->Text = S"Berechne Fahrenheit"; this->btFahrenheit->Click += new System::EventHandler(this, btFahrenheit_Click); // // btCelsius // this->btCelsius->Location = System::Drawing::Point(240, 200); this->btCelsius->Name = S"btCelsius"; this->btCelsius->Size = System::Drawing::Size(104, 32); this->btCelsius->TabIndex = 3; this->btCelsius->Text = S"Berechne Grad Celsius"; // // Form1 // this->AutoScaleBaseSize = System::Drawing::Size(5, 13); this->ClientSize = System::Drawing::Size(432, 266); this->Controls->Add(this->btCelsius); this->Controls->Add(this->btFahrenheit); this->Controls->Add(this->tbEinheit); this->Controls->Add(this->lbAusgabe); this->Name = S"Form1"; this->Text = S"Form1"; this->ResumeLayout(false); } private: System::Void btFahrenheit_Click(System::Object * sender, System::EventArgs * e) { double CtoF(double TemperaturC) { double TemperaturF; TemperaturF = (( TemperaturC * 9 ) / 5 ) + 32; return TemperaturF; } void AusgabeF(void) { double TemperaturC, TemperaturF; TemperaturC = Convert::ToDouble(tbEinheit->Text); TemperaturF = CtoF(TemperaturC); lbAusgabe->Text = Convert::ToString(TemperaturF); return void; } } }; }
VIelen Dank
-
Du definierst "double CtoF(double TemperaturC)" innerhalb einer anderen Funktion. Das geht natürlich nicht. Mach es ausserhalb der Funktion "btFahrenheit_Click"...
-
Soll ich das einfach vor die Funktion Schreiben? Muss ich da nix deklarieren 0der so??? Kannst du das Programm kopieren und mir zeigen wie dus meinst???
Danke
-
private: System::Void btFahrenheit_Click(System::Object * sender, System::EventArgs * e) { AusgabeF(); } double CtoF(double TemperaturC) { double TemperaturF; TemperaturF = (( TemperaturC * 9 ) / 5 ) + 32; return TemperaturF; } void AusgabeF(void) { double TemperaturC, TemperaturF; TemperaturC = Convert::ToDouble(tbEinheit->Text); TemperaturF = CtoF(TemperaturC); lbAusgabe->Text = Convert::ToString(TemperaturF); return void; }
-
VIelen Dank für deine Hilfe!
Es klappt....