Ergebnis 1 bis 19 von 19

Thema: Probleme mit Visual C++/CLI.Net(Windows Application Form mit Visual 2005)

  1. #1

    Standard Probleme mit Visual C++/CLI.Net(Windows Application Form mit Visual 2005)

    6d478e6ba2d09e2cb50f688a2 - Probleme mit Visual C++/CLI.Net(Windows Application Form mit Visual 2005)

    Erstellen Sie eine Vokabeltrainer-Anwendung (siehe Bild), die dem Nutzer erleichtert Begriffe in deutscher und englischer Sprache zu lernen. In Abhängigkeit davon, welche Sprache mittels Kontrollkästchen (CheckBox) festgelegt wurde, erscheinen in der Auflistung (ListBox) entsprechend deutsche oder englische Begriffe. Nachdem der Nutzer einen Begriff aus der Liste gewählt hat, soll er die Übersetzung dazu in der anderen Sprache in einem Textfeld (TextBox) eingeben. Beim Klicken auf der „Prüfen“ Schaltfläche wird die Richtigkeit der Antwort überprüft und mittels eines Labels angezeigt. Die Farbe der Anzeige ist bei der korrekten Übersetzung grün, bei der falschen rot.

    Könnten Sie mir helfen??

  2. #2
    Master Gunnery Sergeant Avatar von Duke
    Registriert seit
    04.04.2005
    Ort
    Überall und hier.
    Beiträge
    2.792

    Standard

    Hast du überhaupt keine Ahnung von der angegebenen Sprache oder wo liegt das Problem

    Ist von der Programmierung nicht schwer so nen klassischer klicke Bunti. Mit der Umwecklungsumgebung schnell die Buttons usw. positinieren und dann noch relativ wenig Code.... jedenfalls in Delphi oder Java

  3. #3
    Major General Avatar von DonKnilch
    Registriert seit
    21.02.2005
    Ort
    Berlin
    Beiträge
    19.626

    Standard

    Das ist auch in C++ nicht anders. Aber ein wenig mehr Anhaltspunkte braucht man schon.


  4. #4
    Major General Avatar von SethOS
    Registriert seit
    17.02.2006
    Beiträge
    18.577

    Standard

    Vor allem wo man denn helfen soll. Muss ja irgendwo hängen...
    "Prophet!" said I, "thing of evil - prophet still, if bird or devil!
    By that Heaven that bends above us - by that God we both adore -
    Tell this soul with sorrow laden if, within the distant Aidenn,
    It shall clasp a sainted maiden whom the angels name Lenore -
    Clasp a rare and radiant maiden whom the angels name Lenore."
    Quoth the Raven, "Nevermore."

    From "The Raven" by Edgar Allan Poe

  5. #5
    Private
    Themenstarter

    Registriert seit
    17.01.2008
    Beiträge
    49

    Standard

    Die Sprache kein Problem. Probleme liegt dran, ich weiss nicht, wie man lösen kann. Wenn Si können, helfen Sie mir

  6. #6
    Major General Avatar von DonKnilch
    Registriert seit
    21.02.2005
    Ort
    Berlin
    Beiträge
    19.626

    Standard

    Ohne Ansatzpunkt wird das aber schwer. Es kann nicht Sinn der Sache sein, dass wir jetzt mal eben das komplette Programm schreiben. Das wäre zwar kein großer Akt, aber das bringt dich auch nicht weiter.

    Sag uns einfach mal, wie weit du bist und wo genau das Problem liegt.


  7. #7
    Private
    Themenstarter

    Registriert seit
    17.01.2008
    Beiträge
    49

    Standard

    Mein Problem war: Beim Klicken auf der „Prüfen“ Schaltfläche wird die Richtigkeit der Antwort überprüft und mittels eines Labels angezeigt. Die Farbe der Anzeige ist bei der korrekten Übersetzung grün, bei der falschen rot.
    Wie kann man Wort im ListBox und Wort im TextBox vergleichen??

  8. #8

    Registriert seit
    03.11.2007
    Ort
    Kornwestheim
    Beiträge
    282

    Standard

    Du musst nur das selektierte Element der Liste mit dem Text in dem Eingabefeld vergleichen. In Java könnte ich dir das exakt sagen, aber weiß jetzt nicht wie es in C++ ist. Aber auf jeden Fall musst du ein Textvergleich (in Java equals) machen und nicht ein Objektvergleich.

  9. #9
    Major General Avatar von DonKnilch
    Registriert seit
    21.02.2005
    Ort
    Berlin
    Beiträge
    19.626

    Standard

    Ich denke, das ist soweit klar, er weiss bestimmt nicht, wie er das machen soll.

    Also bei der System.Windows.Forms.ListBox gibt es die Methoden GetSelected(int index) und GetItemText(Object item). Mit den beiden Methoden kannst du dir den Wert rausholen, indem du die Listbox durchgehst und überprüfst, ob das aktuelle Element markiert ist. Wenn dem so ist, dann kannst du das Element mit der Methode GetItemText holst du dir dann den String raus.


  10. #10
    Master Gunnery Sergeant Avatar von masterchief
    Registriert seit
    15.04.2007
    Ort
    Dresden
    Beiträge
    2.851

    Standard

    hier mal ein klein wenig code, wie er im turbo-c++ von codegear aussieht:

    das element in der lisbox erfasst man folgendermaßen: ListBox1->Items->Strings[ListBox1->ItemIndex]

    das Element des Editfeldes erfasst man auf diese art: Edit1->Text

    anschließend würde ich wie folgt vorgehen: zwei arrays anlegen, eins englisch und ein deutsch. den englischen eintrag im ersten array suchen und schauen, ob das eingegebene wort mit dem im im zweiten array übereinstimmt. sowohl das englische als auch das deutsche wort sollten ja den selben index im array haben.


    ist vielleicht nicht die schönste variante, aber meiner meinung nach eine einfache und machbare in diesem fall!
    Massenmörder = nichtdeterministscher Killerautomat

    http://www.master-chief.de

  11. #11
    Private
    Themenstarter

    Registriert seit
    17.01.2008
    Beiträge
    49

    Standard

    Ich habe programmiert, aber nicht fertig, noch ein bisschen falsch. Könnten Sie mir helfen??

    Code:
    #pragma once
    
    
    namespace Kl1 {
    
    	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>
    	/// Summary for Form1
    	///
    	/// WARNING: If you change the name of this class, you will need to change the
    	///          'Resource File Name' property for the managed resource compiler tool
    	///          associated with all .resx files this class depends on.  Otherwise,
    	///          the designers will not be able to interact properly with localized
    	///          resources associated with this form.
    	/// </summary>
    	public ref class Form1 : public System::Windows::Forms::Form
    	{
    	public:
    		Form1(void)
    		{
    			InitializeComponent();
    			InitListBox();
    			//
    			//TODO: Add the constructor code here
    			//
    		}
    
    	protected:
    		/// <summary>
    		/// Clean up any resources being used.
    		/// </summary>
    		~Form1()
    		{
    			if (components)
    			{
    				delete components;
    			}
    		}
    	private: System::Windows::Forms::CheckBox^  checkBox1;
    	protected: 
    	private: System::Windows::Forms::Label^  label1;
    	private: System::Windows::Forms::ListBox^  listBox1;
    	private: System::Windows::Forms::Label^  label2;
    	private: System::Windows::Forms::TextBox^  textBox1;
    	private: System::Windows::Forms::Button^  button1;
    	private: System::Windows::Forms::Label^  label3;
    	private: System::Windows::Forms::Label^  label4;
    	private: System::Windows::Forms::CheckBox^  checkBox2;
    
    
    
    
    
    
    	private:
    		/// <summary>
    		/// Required designer variable.
    		/// </summary>
    		System::ComponentModel::Container ^components;
    
    #pragma region Windows Form Designer generated code
    		/// <summary>
    		/// Required method for Designer support - do not modify
    		/// the contents of this method with the code editor.
    		/// </summary>
    		void InitializeComponent(void)
    		{
    			this->checkBox1 = (gcnew System::Windows::Forms::CheckBox());
    			this->label1 = (gcnew System::Windows::Forms::Label());
    			this->listBox1 = (gcnew System::Windows::Forms::ListBox());
    			this->label2 = (gcnew System::Windows::Forms::Label());
    			this->textBox1 = (gcnew System::Windows::Forms::TextBox());
    			this->button1 = (gcnew System::Windows::Forms::Button());
    			this->label3 = (gcnew System::Windows::Forms::Label());
    			this->label4 = (gcnew System::Windows::Forms::Label());
    			this->checkBox2 = (gcnew System::Windows::Forms::CheckBox());
    			this->SuspendLayout();
    			// 
    			// checkBox1
    			// 
    			this->checkBox1->AutoSize = true;
    			this->checkBox1->Location = System::Drawing::Point(49, 38);
    			this->checkBox1->Name = L"checkBox1";
    			this->checkBox1->Size = System::Drawing::Size(103, 17);
    			this->checkBox1->TabIndex = 0;
    			this->checkBox1->Text = L"English-Deutsch";
    			this->checkBox1->UseVisualStyleBackColor = true;
    			this->checkBox1->CheckedChanged += gcnew System::EventHandler(this, &Form1::checkBox1_CheckedChanged);
    			// 
    			// label1
    			// 
    			this->label1->AutoSize = true;
    			this->label1->Location = System::Drawing::Point(36, 84);
    			this->label1->Name = L"label1";
    			this->label1->Size = System::Drawing::Size(97, 13);
    			this->label1->TabIndex = 1;
    			this->label1->Text = L"Begriffe auswählen";
    			// 
    			// listBox1
    			// 
    			this->listBox1->FormattingEnabled = true;
    			this->listBox1->Location = System::Drawing::Point(39, 133);
    			this->listBox1->Name = L"listBox1";
    			this->listBox1->Size = System::Drawing::Size(120, 95);
    			this->listBox1->TabIndex = 2;
    			// 
    			// label2
    			// 
    			this->label2->AutoSize = true;
    			this->label2->Location = System::Drawing::Point(193, 145);
    			this->label2->Name = L"label2";
    			this->label2->Size = System::Drawing::Size(194, 13);
    			this->label2->TabIndex = 3;
    			this->label2->Text = L"Begriffe in deutsche Sprache eingeben:";
    			// 
    			// textBox1
    			// 
    			this->textBox1->Location = System::Drawing::Point(223, 182);
    			this->textBox1->Name = L"textBox1";
    			this->textBox1->Size = System::Drawing::Size(146, 20);
    			this->textBox1->TabIndex = 4;
    			// 
    			// button1
    			// 
    			this->button1->Location = System::Drawing::Point(77, 268);
    			this->button1->Name = L"button1";
    			this->button1->Size = System::Drawing::Size(75, 23);
    			this->button1->TabIndex = 5;
    			this->button1->Text = L"Prüfen";
    			this->button1->UseVisualStyleBackColor = true;
    			this->button1->Click += gcnew System::EventHandler(this, &Form1::button1_Click);
    			// 
    			// label3
    			// 
    			this->label3->AutoSize = true;
    			this->label3->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 12, System::Drawing::FontStyle::Bold, System::Drawing::GraphicsUnit::Point, 
    				static_cast<System::Byte>(0)));
    			this->label3->ForeColor = System::Drawing::Color::FromArgb(static_cast<System::Int32>(static_cast<System::Byte>(0)), static_cast<System::Int32>(static_cast<System::Byte>(192)), 
    				static_cast<System::Int32>(static_cast<System::Byte>(0)));
    			this->label3->Location = System::Drawing::Point(237, 277);
    			this->label3->Name = L"label3";
    			this->label3->Size = System::Drawing::Size(65, 20);
    			this->label3->TabIndex = 6;
    			this->label3->Text = L"Richtig";
    			this->label3->Visible = false;
    			// 
    			// label4
    			// 
    			this->label4->AutoSize = true;
    			this->label4->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 12, System::Drawing::FontStyle::Bold, System::Drawing::GraphicsUnit::Point, 
    				static_cast<System::Byte>(0)));
    			this->label4->ForeColor = System::Drawing::Color::Red;
    			this->label4->Location = System::Drawing::Point(294, 277);
    			this->label4->Name = L"label4";
    			this->label4->Size = System::Drawing::Size(62, 20);
    			this->label4->TabIndex = 7;
    			this->label4->Text = L"Falsch";
    			this->label4->Visible = false;
    			// 
    			// checkBox2
    			// 
    			this->checkBox2->AutoSize = true;
    			this->checkBox2->Location = System::Drawing::Point(49, 13);
    			this->checkBox2->Name = L"checkBox2";
    			this->checkBox2->Size = System::Drawing::Size(103, 17);
    			this->checkBox2->TabIndex = 8;
    			this->checkBox2->Text = L"Deutsch-English";
    			this->checkBox2->UseVisualStyleBackColor = true;
    			this->checkBox2->CheckedChanged += gcnew System::EventHandler(this, &Form1::checkBox2_CheckedChanged);
    			// 
    			// Form1
    			// 
    			this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
    			this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
    			this->ClientSize = System::Drawing::Size(422, 349);
    			this->Controls->Add(this->checkBox2);
    			this->Controls->Add(this->label4);
    			this->Controls->Add(this->label3);
    			this->Controls->Add(this->button1);
    			this->Controls->Add(this->textBox1);
    			this->Controls->Add(this->label2);
    			this->Controls->Add(this->listBox1);
    			this->Controls->Add(this->label1);
    			this->Controls->Add(this->checkBox1);
    			this->Name = L"Form1";
    			this->Text = L"Form1";
    			this->ResumeLayout(false);
    			this->PerformLayout();
    
    		}
    		void InitListBox(void)
    		{
    			
    		}
    #pragma endregion
    	private: System::Void checkBox1_CheckedChanged(System::Object^  sender, System::EventArgs^  e) {
    
    		    if(checkBox1->Checked)
    			{
    			this->listBox1->Items->AddRange(gcnew cli::array<System::Object^>(4){L"to study","book","room","test"});
    			this->checkBox2->Checked=false;
    			}
    			 }
    private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
    			 if(listBox1->SelectedItem==textBox1->Text)
    			 {
    				 this->label3->Visible=true;
    			 }
    		 }
    private: System::Void checkBox2_CheckedChanged(System::Object^  sender, System::EventArgs^  e) {
    			 if(checkBox2->Checked)
    			 {
    				 this->listBox1->Items->AddRange(gcnew cli::array<System::Object^>(4){L"studieren","Buch","Raum","Klausur"});
    				 this->checkBox1->Checked=false;
    			 }
    		 }
    };
    }

  12. #12
    Major General Avatar von DonKnilch
    Registriert seit
    21.02.2005
    Ort
    Berlin
    Beiträge
    19.626

    Standard

    Was heisst denn jetzt genau "ein bisschen falsch"? Fehlermeldung oder funktioniert es nur nicht so, wie es soll?


  13. #13
    Private
    Themenstarter

    Registriert seit
    17.01.2008
    Beiträge
    49

    Standard

    Alle funktionieren. Aber Meine Probleme:Beim Klicken auf der „Prüfen“ Schaltfläche wird die Richtigkeit der Antwort überprüft und mittels eines Labels angezeigt. Die Farbe der Anzeige ist bei der korrekten Übersetzung grün, bei der falschen rot.

    Ich weiss nicht, wie ich lösen muss?

  14. #14
    Major General Avatar von DonKnilch
    Registriert seit
    21.02.2005
    Ort
    Berlin
    Beiträge
    19.626

    Standard

    Warum sagst du nicht direkt, dass es nur um die Farbe geht?

    Also ein Label hat die Eigenschaft "ForeColor", damit kannst du das ändern.


  15. #15
    Private
    Themenstarter

    Registriert seit
    17.01.2008
    Beiträge
    49

    Standard

    Ja,die Farbe ist Ok.
    Beim Klicken auf der „Prüfen“ Schaltfläche wird die Richtigkeit der Antwort überprüft und mittels eines Labels angezeigt-->Ich weiss nicht zu lösen

  16. #16
    Major General Avatar von DonKnilch
    Registriert seit
    21.02.2005
    Ort
    Berlin
    Beiträge
    19.626

    Standard

    Das kann auch nicht funktionieren. Du hast in der betroffenen Methode folgendes stehen:

    Code:
    if(listBox1->SelectedItem==textBox1->Text)
    {
          this->label3->Visible=true;
    }
    Du überprüfst also, ob das Item in der Listbox (hier fehlt übrigens noch ein ToString() oder etwas ähnliches) mit der Eingabe in der Editbox übereinstimmt. Dies wird ja nie der Fall sein, da du schließlich das englische Wort dafür haben möchtest. Du musst also irgendwo abspeichern, auf welches Wort er prüfen soll. Geeignet wäre dafür entweder ein Array, sofern die Anzahl festgelegt ist, oder ein Vektor.


  17. #17
    Private
    Themenstarter

    Registriert seit
    17.01.2008
    Beiträge
    49

    Standard

    Ich habe 2 arrayeutsch_array und English_array. Wie kann ich prüfen, um deutsche Wort und english Wort richtig oder falsche zu sein? Ich habe viele gedacht. Aber ich finde noch nicht zu dieser Lösung.

    Diese Methode geht nicht
    Code:
    if(listBox1->SelectedItem==textBox1->Text)
    {
          this->label3->Visible=true;
    }

  18. #18
    Major General Avatar von DonKnilch
    Registriert seit
    21.02.2005
    Ort
    Berlin
    Beiträge
    19.626

    Standard

    Sage ich doch, die Methode ist schließlich von dir.

    Also mit den Arrays funktioniert das folgendermaßen: Du musst die Wörter da in der selben Reihenfolge, die du auch in den jeweiligen Listboxen drin hast, einsortieren. Dann greifst du auf das selektierte Element zu und lässt dir den ItemIndex geben. An genau dieser Stelle greifst du dann auf das entsprechende Array zu und holst dir den Eintrag zum Vergleichen raus. Das könnte ungefähr wie folgt aussehen:

    Code:
    int index = 0;
    
    for (int i=0; i<ListBox1->Items->Count; i++) 
    {
         if (ListBox1->GetSelected(i))
        {
             index = i;
        }
    }
    
    if (deutsch_array[index]->Equals(Edit1->Text)
    {
         //Hier müsste jetzt rein, was dann passieren soll, wenn es übereinstimmt
    }
    


    So oder so ähnlich musst du das machen, ich habe es jetzt nicht getestet.


  19. #19
    Gunnery Sergeant
    Registriert seit
    07.01.2005
    Beiträge
    304

    Standard

    Ist zwar was älter der Thread aber ich habe Lust C++ zu lernen

    Und wenn man son Codestückchen lesen kann und den Zusammenhang von Problem und der Lösung sieht, kann das Ganze besser Verstehen.
    Der AirDuct allseits bekannt als Hässlicher Kasten Kühlt meine Graka von 79,5°C auf 75°C um 4,5°C inGame runter finde das ist ein gutes Ergebniss

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Ähnliche Themen

  1. Probleme mit RAM
    Von boersianer im Forum Reklamation
    Antworten: 14
    Letzter Beitrag: 07.12.2007, 17:35
  2. Photons Fragethread
    Von Photon im Forum Linux & Mac OS
    Antworten: 91
    Letzter Beitrag: 12.09.2007, 18:29
  3. Probleme mit Xpertvision Radeon X1950GT
    Von frabo im Forum Reklamation
    Antworten: 1
    Letzter Beitrag: 30.08.2007, 16:26
  4. Probleme mit OCZ GOLD DDR2 800 2gb Dual Kit
    Von toobadbear im Forum Arbeitsspeicher (RAM)
    Antworten: 5
    Letzter Beitrag: 01.11.2006, 15:56
  5. Probleme mit Komponenten, keine Antwort auf Mail.
    Von IrieDread im Forum Allgemeines
    Antworten: 15
    Letzter Beitrag: 17.03.2005, 01:50

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •