Ich habe lange gebraucht, um
das rauszuriegen, -
kurz:
nur die main kann mit komplexen Klassen richtig umgehen, was ja die eigentl.
Fähigkeit von cpp ist. ...
Ich habe jetzt eine zuverlässige Methode gefunden, um dann Werte an die graf. Form1 zu übergeben.
Das Beispiel ist simpel, allerdings
weiterentwickelbar.
Hier folgt der Code aus main und Form1:
Main:
// GetSetForm1UebungMgg.cpp: Hauptprojektdatei.
#include "stdafx.h"
#include "Form1.h"
#include "iostream"
using namespace GetSetForm1UebungMgg;
using namespace std;
public ref class Foo1 //das zauberwort war ref !
{
property String^ Text
{
String^ get(void) {return txt1; };
void set(String^ value) {txt1 = value; };
}
public: static String ^txt1;
};
[STAThreadAttribute]
int main(array<System:
tring ^> ^args)
{
Foo1::txt1 = "asdfjkljksdf";
Console::WriteLine(Foo1::txt1);
//Form1::richTextBox1()::Text = "";
Form1::Foo::txt = "hallo aus main !(und int, klar ...)";
// Aktivieren visueller Effekte von Windows XP, bevor Steuerelemente erstellt werden
Application::EnableVisualStyles();
Application:
etCompatibleTextRenderingDefault(false);
// Hauptfenster erstellen und ausführen
Application::Run(gcnew Form1());
return 0;
}
und nun von Form1:
#pragma once
namespace GetSetForm1UebungMgg {
using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System:
ata;
using namespace System:
rawing;
/// <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;
}
}
private: System::Windows::Forms::Button^ button1;
protected:
public: System::Windows::Forms::RichTextBox^ richTextBox1;
private:
/// <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->button1 = (gcnew System::Windows::Forms::Button());
this->richTextBox1 = (gcnew System::Windows::Forms::RichTextBox());
this->SuspendLayout();
//
// button1
//
this->button1->Location = System:
rawing:
oint(20, 25);
this->button1->Name = L"button1";
this->button1->Size = System:
rawing:
ize(70, 58);
this->button1->TabIndex = 0;
this->button1->Text = L"button1";
this->button1->UseVisualStyleBackColor = true;
this->button1->Click += gcnew System::EventHandler(this, &Form1::button1_Click);
//
// richTextBox1
//
this->richTextBox1->Location = System:
rawing:
oint(86, 151);
this->richTextBox1->Name = L"richTextBox1";
this->richTextBox1->Size = System:
rawing:
ize(133, 60);
this->richTextBox1->TabIndex = 1;
this->richTextBox1->Text = L"";
//
// Form1
//
this->AutoScaleDimensions = System:
rawing:
izeF(6, 13);
this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
this->ClientSize = System:
rawing:
ize(292, 266);
this->Controls->Add(this->richTextBox1);
this->Controls->Add(this->button1);
this->Name = L"Form1";
this->Text = L"Form1";
this->ResumeLayout(false);
}
#pragma endregion
private: System::Void button1_Click(System:
bject^ sender, System::EventArgs^ e)
{
//Foo::txt = "abs";
richTextBox1->Text = Foo::txt;
//Form1::Text = GetSetForm1UebungMgg()::Foo1::txt1;
//Foo1::txt;
//GetSetForm1UebungMgg()::Foo1::txt1;//bekannt
}
public: ref class Foo //das zauberwort war ref !
{
property String^ Text
{
String^ get(void) {return txt; };
void set(String^ value) {txt = value; };
}
public: static String ^txt;
};
};
}
viel Spass damit, falls es Verwendung findet.
mfg
Gonschior