Announcement

Collapse
No announcement yet.

CPP soll Form1.h label1 füllen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • CPP soll Form1.h label1 füllen

    Hallo an alle,

    ja ich bins schonwieder. Habe mich mal wieder dumm und dämlich gesucht und bin doch nicht fündig geworden bzw. schlau daraus geworden.

    Überblick: Ich habe eine Hauptdatei (die supi.cpp). In ihr steckt ein kleines Mysql Programm. Das funktioniert auch alles (also alle .libs eingebunden und Header Dateien). Ich besitze eine weitere Datei namens Form1.h.

    Problem: Nun will ich das die supi.cpp ein Label mit (das sich in der Form1.h befindet) mit Text füllt.

    Da ich noch Anfänger bin dachte ich das dies einfach wäre und habe wild drauf losprobiert. Doch Form1::label1->Text="Der Text"; brachte mich nicht zum Erfolg wie auch zahlereiche andere varianten. Dann habe ich es noch mit einer Funktion versucht die in Form1.h steht und in der supi.cpp ausgeführt wird, doch auch dies funktionierte nicht.

    Kann mir da jemand weiterhelfen oder geht das einfach nicht ?

    Anbei noch meine Quelltexte:


    Hier die supi.cpp :


    Code:
    // supi.cpp: Hauptprojektdatei.
    
    #include "stdafx.h"
    #include "Form1.h"
    #if defined __WIN32__ || _MSC_VER
        #include <windows.h>
    #endif
    #include <stdio.h>
    #include <stdlib.h>
    
    // Für VC++:
    #include "c:\Include\mysql.h"
    using namespace supi;
    
    [STAThreadAttribute]
    int main(array<System::String ^> ^args)
    {
    	// Aktivieren visueller Effekte von Windows XP, bevor Steuerelemente erstellt werden
    	Application::EnableVisualStyles();
    	Application::SetCompatibleTextRenderingDefault(false); 
    
    	// Hauptfenster erstellen und ausführen
    	Application::Run(gcnew Form1());
     	
       
       MYSQL  *my;
       /* Handle initialisieren */
       my = mysql_init(NULL);
       if(my == NULL) {
          fprintf(stderr, " Initialisierung fehlgeschlagen\n");
          return EXIT_SUCCESS;
       }
       /* Mit dem Server verbinden */
       if( mysql_real_connect (
            my,   /* Zeiger auf MYSQL-Handler */
            NULL, /* Host-Name */
            NULL, /* User-Name */
            NULL, /* Passwort für user_name */
            NULL,  /* Name der Datenbank */
            0,     /* Port (default=0) */
            NULL,  /* Socket (default=NULL) */
            0      /* keine Flags */  )  == NULL) {
          fprintf (stderr, "Fehler mysql_real_connect():"
            "%u (%s)\n",mysql_errno (my), mysql_error (my));
       }
       else
          printf("Erfolgreich mit dem MySQL-Server verbunden\n");
       /* Hier befindet sich der Code für die Arbeit mit MySQL */
       /* Verbindung trennen */
       mysql_close (my);
       return EXIT_SUCCESS;
    
    
    
    
    
    
       return 0;
    }
    Hier die Form1.h:


    Code:
    #pragma once
    
    
    namespace supi {
    
    
    	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
    	///
    	/// Warnung: Wenn Sie den Namen dieser Klasse ändern, müssen Sie auch
    	///          die Ressourcendateiname-Eigenschaft für das Tool zur Kompilierung verwalteter 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 ref class Form1 : public System::Windows::Forms::Form
    	{
    	public:
    		Form1(void)
    		{
    			InitializeComponent();
    			//
    			//TODO: Konstruktorcode hier hinzufügen.
    			//
    
    		}
    
    	protected:
    		/// <summary>
    		/// Verwendete Ressourcen bereinigen.
    		/// </summary>
    		~Form1()
    		{
    			if (components)
    			{
    				delete components;
    			}
    		}
    	public: System::Windows::Forms::Label^  label1;
    
    
    	public: 
    	protected: 
    
    	public:
    		/// <summary>
    		/// Erforderliche Designervariable.
    		/// </summary>
    		System::ComponentModel::Container ^components;
    
    #pragma region Windows Form Designer generated code
    		/// <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->label1 = (gcnew System::Windows::Forms::Label());
    			this->SuspendLayout();
    			// 
    			// label1
    			// 
    			this->label1->AutoSize = true;
    			this->label1->Location = System::Drawing::Point(81, 128);
    			this->label1->Name = L"label1";
    			this->label1->Size = System::Drawing::Size(35, 13);
    			this->label1->TabIndex = 0;
    			this->label1->Text = L"label1";
    			// 
    			// Form1
    			// 
    			this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
    			this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
    			this->ClientSize = System::Drawing::Size(292, 266);
    			this->Controls->Add(this->label1);
    			this->Name = L"Form1";
    			this->Text = L"Form1";
    			this->Load += gcnew System::EventHandler(this, &Form1::Form1_Load);
    			this->ResumeLayout(false);
    			this->PerformLayout();
    
    		}
    
    #pragma endregion
    	
    
    	public: System::Void Form1_Load(System::Object^  sender, System::EventArgs^  e) {
    	
    			
    		
    
    
    
    			}                                                                                        
    	};
    
       }

  • #2
    Habe es jetzt noch mal als Konsolenanwendung probiert und es geht. Das Problem ist also nur das Label in Form1.h zu füllen !

    EDIT: Postet ruhig auch wenn ihr nicht 100% wisst wie es geht. Vielleicht fehlt mir nur ein Gedankenstoß... Bin für alles offen !

    Gruß _Sascha_
    Zuletzt editiert von _Sascha_; 14.06.2008, 20:00.

    Comment


    • #3
      Hat keiner eine Ahnung ? Habe gerade wieder die halbe Nacht damit verbacht das Problem zu lösen... Wenn jemand weis das es nicht möglich ist bitte schnell posten, nicht das ich mir umsonst die Mühe mache !

      _Gruß Sascha_

      Comment


      • #4
        Nun habe den VC Compiler nicht....aber offenbar wird hier

        Application::Run(gcnew Form1());

        irgendwie die Form angelegt. Damit wird auch wohl irgendwo eine Instanz der Klasse (Form1) erzeugt. An diese müsstest du rankommmen, um dort das Label zu setzen.
        Christian

        Comment


        • #5
          Habs jetzt mal versucht... aber irgendwas habe ich wohl falsch gemacht könntest du mir ein kleiens Beispiel posten bitte, das wäre nett !

          Comment


          • #6
            ?????

            Nun habe den VC Compiler nicht....aber offenbar wird hier
            hmmmm, wie sollte ich das tun?
            Christian

            Comment


            • #7
              Asso hmm ich dachte das ist so ähnlich C und C++. Bin halt noch ein Anfänger

              Comment


              • #8
                Asso hmm ich dachte das ist so ähnlich C und C++.
                Das hat nichts mit C/C++ zu tun.

                Du programmierst in C++ mit dem Framework MFC von MS
                Andere nutzen C++ mit dem Framework VCL von Borland
                Andere nutzen C++ mit dem Framework QT von Trolltech
                ....
                Andere programmieren nur in reinem C++ ohne weitere Frameworks
                Christian

                Comment


                • #9
                  Axo ^^ ! Okay danke jetzt weis ich das auch mal !

                  Comment


                  • #10
                    Habe mich jetzt dazu entschieden doch alles in die Form1.h zu schreiben, da es ja unmöglich scheint (zumindest für mich ^^) es in der supi.cpp zu machen. Falls einer Weiß wie das unter MS V 2008 Express Edition geht kann er mir dies gern mitteilen !

                    Gruß _Sascha_

                    EDIT: Versteht mich nicht falsch ich hätte schon gerne das das so geht aber nach sooooo langer Suche hat man einfach keine Lust mehr...

                    Comment

                    Working...
                    X