außerhalb von Form klasse auf richTextBox zugreifen....



  • Hallo, liebes c++ forum.

    Ich bin ziemlich neu bei c++ und auch bei vc++.

    Bei meiner Programmierung versuche ich gerade von der Hauptprojektdatei aus auf das Attribut richTextBox1 von der Klasse Forms1 zuzugreifen und dieses zu ändern.

    Die Klasse form1 wird ja von vc++ in der header-datei form1.h definiert..

    Aber wenn ich nun versuche aus der cpp datei auf das Attribut zuzugreifen:

    Form1::richTextBox1->Text("Beispiel, hallo Welt");
    

    (bzw. ist das ein Attribut?..)

    Dann meint mein Compiler:

    .\sockets.cpp(35) : error C2227: Links von "->Text" muss sich ein Zeiger auf Klassen-/Struktur-/Union-/generischen Typ befinden.

    Wie mache ich das richtig?



  • offenbar ist richtextBox kein Zeiger.
    Was es ist weiß ich nicht, Form1 gehört zumindest nicht zum C++ Standard.
    Ist das vielleicht WinAPI oder .net/CLI?



  • Du benötigst erstens ein Objekt der Klasse 'Form1' und zweitens müßte die 'richTextBox1' auch noch 'public' sein...

    Generell ist es aber ein Design-Fehler von externen Klassen direkt auf die Komponenten einer Form zuzugreifen (auch wenn es vllt. für einen Anfänger nicht einsichtig erscheint)!

    Du solltest also Änderungen nur innerhalb der Form vornehmen, d.h. entweder dafür Eigenschaften (Properties) oder Methoden definieren. Und diese dann von außen aufzurufen.

    Als Anfänger solltest du aber erstmal keine Änderungen an der Hauptprojektdatei vornehmen, sondern alles innerhalb von deiner Form-Klasse vornehmen.

    Ich hoffe, du verwendest ein entsprechendes Buch oder Tutorial für den Einstieg in die C++ GUI Programmierung...


Log in to reply