String oder Variable in Listbox ausgeben

StonedMind

Mitglied
Hi@all,

möchte zunächst anmerken, dass ich schon seit Ewigkeiten mit C++ nicht mehr gearbeitet habe und somit im Prinzip ein totaler Greenhorn auf diesem Gebiet bin.

Zu meinem Problem:
Ich programmiere mit Visual C++ 2008 Express eine grafische Oberfläche. In meine Hauptform habe ich eine simple Textbox eingefügt.
Im Quellcode habe ich einen String deklariert und nun würde ich diesen String gerne in der Listbox ausgeben, nachdem das Programm gestartet wird.
Wie geht das? Ist das ein größerer Aufwand oder geht das mit einem einzigen Befehl?
Habe mich schon durchgegoogelt und bin auf verschiedene Varianten gestoßen, hat aber alles nicht richtig funktioniert.

Vielen Dank schon mal im Voraus für Eure Bemühungen

MfG
Andy
 
Hi@all,

möchte zunächst anmerken, dass ich schon seit Ewigkeiten mit C++ nicht mehr gearbeitet habe und somit im Prinzip ein totaler Greenhorn auf diesem Gebiet bin.

Zu meinem Problem:
Ich programmiere mit Visual C++ 2008 Express eine grafische Oberfläche. In meine Hauptform habe ich eine simple Textbox eingefügt.
Im Quellcode habe ich einen String deklariert und nun würde ich diesen String gerne in der Listbox ausgeben, nachdem das Programm gestartet wird.

Textbox oder Listbox? Es ist entweder das eine oder das andere, ein Problem ist es bei keinem der Elemte aber es währe nicht schlecht zu wissen was du meinst.

Dieser Thread gehört dann (wenn du mit Windows Forms, Visual C++ arbeitest) ins .NET ->Windows Forms -Forum.

Wie geht das? Ist das ein größerer Aufwand oder geht das mit einem einzigen Befehl?

Das geht mit einer einzigen Anweisung

z. B. so:

C++:
String ^txt = "Das ist meine StringVariable";
textBox1->Text = txt; //Zuweisung der Variable an die TextBox <<--
//bei ListBox würde es so aussehen
listBox1->Items->Add(txt);  //<<--

Einer der Beiden Anweisung (mit <<-- markiert) ist die eine Anweisung.

Habe mich schon durchgegoogelt und bin auf verschiedene Varianten gestoßen, hat aber alles nicht richtig funktioniert.

Hier währe es hilfreich zu wissen welche Varianten du probiert hast und was da nicht funktioniert hat bzw. die Fehlermeldungen davon. Denn wir können hier nicht wissen was du probiert hast bzw. was nicht etc.

Gruß
Rudolf Grauberger
 
Zuletzt bearbeitet:
Sorry,
hast recht. Ich meinte eine Listbox.
wenn ich aber deine Variante so eintippe bringt er mir folgende Fehlermeldungen:

error C2227: left of '->Items' must point to class/struct/union/generic type
error C2227: left of '->Add' must point to class/struct/union/generic type

Das gleiche passiert auch wenn ich anstatt des Pfeils einen Punkt verwende.
Ich glaube ich mache etwas grundsätzliches falsch....?

MfG
Andy
 
Sorry,
hast recht. Ich meinte eine Listbox.
wenn ich aber deine Variante so eintippe bringt er mir folgende Fehlermeldungen:


error C2227: left of '->Items' must point to class/struct/union/generic type
error C2227: left of '->Add' must point to class/struct/union/generic type

Du muss natürlich den Namen deiner Listbox nehmen, denn diese Fehlermeldungen bekomme ich wenn ich einen falschen Namen der Listbox nehme (bzw. vertippe).

Klick dazu auf dein Listbox und guck unter Eigenschaften->Name was da drin steht.

Diesen Namen schreibst du dann anstatt "listBox1", der Rest bleibt natürlich so.

Wenns nicht klappt bitte Quelltext und den Namen der Listbox reinstellen.
 
Zuletzt bearbeitet:
Hi,
meine Listbox hat den Namen listBox1.

Code:
Listbox1->Items->Add("test");


Allerdings führe ich das in meiner "Haupt.cpp" Datei aus und die Listbox wird in der "Form1.h" deklariert.
Den o.g. Code kann ich in der "Form1.h" problemlos ausführen, aber ich will das in meiner "Haupt.cpp" tun.
Wie kann ich in meiner "Haupt.cpp" aus auf die Listbox zugreifen, die in der "Form1.h" deklariert ist?

Hab es auch schon so probiert, da kam aber die gleiche Fehlermeldung:

Code:
Form1::Listbox1->Items->Add("test");

Da kommt die gleiche Fehlermeldung wie oben.

MfG
Andy
 
Hi,

ich versuche mit C++ auf eine MySQL-Datenbank zuzugreifen.
Das klappt auch soweit...
ich erstelle eine SQL-Abfrage, sende diese an die Datenbank und möchte nun das Ergebnis in einen String oder Char-Array schreiben und diesen in meiner Listbox ausgeben.

Ich habe meine ganze Programmierung in meiner "Haupt.cpp" getätigt und man hat mir davon abgeraten große Programmabläufe in der Form1.h vorzunehmen, warum auch immer.

Gibt es eine Möglichkeiten von "Haupt.cpp" auf die Klassen und Methoden von "Form1.h" zuzugreifen? Ist es ein großer Aufwand? Wäre es empfehlenswert meinen Hauptteil der Programmierung doch in der "Form1.h" zu tätigen?

MfG
Andy
 
Hi,

ich versuche mit C++ auf eine MySQL-Datenbank zuzugreifen.
Das klappt auch soweit...
ich erstelle eine SQL-Abfrage, sende diese an die Datenbank und möchte nun das Ergebnis in einen String oder Char-Array schreiben und diesen in meiner Listbox ausgeben.

Gut soweit komme ich mit.

Ich habe meine ganze Programmierung in meiner "Haupt.cpp" getätigt und man hat mir davon abgeraten große Programmabläufe in der Form1.h vorzunehmen, warum auch immer.

Ich bin ja auch ein Anfänger habe aber soetwas noch nicht gehört. Bei Consolen-Programmen war immer die Rede davon aber bei Windows-Forms Anwendungen wo die Methoden der Klassen in der der Klassenvereinbarung stehen, programmiere -zumindest- ich in den .h-Dateien.


Gibt es eine Möglichkeiten von "Haupt.cpp" auf die Klassen und Methoden von "Form1.h" zuzugreifen? Ist es ein großer Aufwand? Wäre es empfehlenswert meinen Hauptteil der Programmierung doch in der "Form1.h" zu tätigen?

Ja es gibt möglichkeiten. Damit musst du dir aber immer mind. die doppelte Arbeit machen.

Du musst dann Öffentliche Methoden schreiben die dann auf die (Form1)-Eigene Methoden und Attribute zugreifen und die als Rückgabewert "rausgeben" um genau zu sein für jedes Attribut und für jede Methode die private: oder protected: ist eine. Selbst bei einer sehr kleinen Anwendung ist das unzumutbar. (meine Meinung)

Denn das Prinzip der Objekt Orientierter Programmierung ist das, das man an die Daten des Objekts nur durch das Objekt kommt und von außen soll/muss es unmöglich sein. Die Öffentliche Methoden die die Attribute etc. als Rückgabewert liefern sollen/müssen sogar öffentlich sein.

SCHLECHT:

Vom VC++ wird auch unterstützt wenn du den guten Programmier-Stil und die Regel brichst. Das heißt du kannst alle Methoden, Attribute etc einfach mal als Öffentlich (private einstellen und dann kannst du auch aus dem "Haupt.cpp" auf die zum Teil Geschützen Methoden etc. zugreifen. Wie gesagt ich das ein sehr schlechter Stil und daher rate ich von diesem Vorgehen ab.


Gruß
Rudolf Grauberger

PS: Ich bin ein Frischling in Sachen Klassen (OOP) und lasse mich gerne besseres Belehren. :)
 
Hi,

hast Recht. Ist alles viel einfacher, wenn ich es von dort aus mache.
Bedanke mich recht herzlich für Deine Bemühungen und Deine Hilfe.

Frohes Fest und nen guten Rutsch dann noch!!

MfG
Andy
 
Zurück