Strings hintereinander in Memo
-
Hallo!
Ist wahrscheinlich ne dumme Frage, habe aber leider nichts in den FAQ gefunden...
Ich will 5 Strings hintereinander in ein Memo reinschreiben, gibts da einen bestimmten Befehl für oder muss ich die Strings vorher zusammen matschen und dann den kompletten String ins Memo schreiben?
Danke vielmals!
Janni
-
Memo->Lines->Add(StringToAdd);Wie auch ein kurzer Blick in die Hilfe gezeigt hätte...
-
Vielen Dank! Aber so doof bin ich auch wieder nicht....
Wenn man
Memo1->Lines->Add("....");schreibt, wird jeder String in eine neue Zeile geschrieben. Ich möchte die fünf Strings aber "hintereinander"
String1 String2 String3 String4 String5
schreiben!
Aber trotzdem vielen Dank schonmal!!!!
-
Memo1->Lines->Add(String1 + String2 + String3 + String4 + String5);Funktioniert das so nicht??? oO
-
Vernochan.faul schrieb:
Funktioniert das so nicht??? oO

-
Hatte ich auch schon probiert, weil ich dachte, dass es so geht:
Einfaches Bsp:
Memo1->Lines->Add("Hallo" + "!");[C++ Fehler] Teiler_U.cpp(61): E2085 Unzulässige Zeigeraddition
Evtl muss man da einen überladenen Operator schreiben???
Edit: Oder eine ander Bibliothek einbinden???
-
Neinnein..
DU musst da AnsiStrings reinschreiben.Also quasi so:
Memo1->Lines->Add(AnsiString("Hallo") + AnsiString("!"));Die meisten String sachen in VCL Anwendungen sind AnsiStrings... mit denen kann man viel machen

-
Superspitzenklasse! Danke

Jetzt möchste ich, aber die Strings nicht sofort alle auf einmal schreiben, sondern nacheinander!
Nehmen wir an, der Benutzer gibt was in Edit1 ein, dieser Text soll ins Memo übernommen werden. Dann kommt die nächste Eingabe in Edit1 und dieser Text soll nun hinter dem ersten stehen!
Jetzt könnte ich mir ja die einzelnen String merken und dann alle zusammen ins Memo schreiben, aber geht das nicht auch einfacher?
Ziel ist, der Benutzer kann bis zu fünf Eingaben in eine Zeile schreiben, kann aber auch schon vorher aufhören, deswegen fände ich es geschickter, wenn man den jeweils eingegebenen String gleich ins Memo schriebt und dann auf die nächste Benutzer-Interaktion wartet!
-
Vernochan.faul schrieb:
...
Memo1->Lines->Add(AnsiString("Hallo") + AnsiString("!"));Warum einfach, wenn es kompliziert mehr Spaß macht:
Memo1->Lines->Add("Hallo!");Für AnsiString-Instanzen ist der +-Operator natürlich definiert und ein explizites casten auf String ist nicht nötig.
Jannika schrieb:
Jetzt möchste ich, aber die Strings nicht sofort alle auf einmal schreiben, sondern nacheinander!
Eine Art "AddText" gibt es imho nicht. So könnte es gehen:
Memo1->Lines->Strings[0] = Memo1->Lines->Strings[0] + Edit1->Text;
-
Hallo
bei neuer Eingabe Memo loeschen
MfG
Klaus
-
Am besten noch, damit es auch immer in der Letzten Zeile steht:
Memo1->Lines->Strings[Memo1->Lines->Count - 1]= Memo1->Lines->Strings[Memo1->Lines->Count - 1] + AnsiString("blah") ;Ach ja: Gemeinheit.. Da setz ich mich extra damit auseinander (hab nie mit memo's oder sonst viel mit sowas gearbeitet xD) und dann seid ihr schneller xD
Warum einfach, wenn es kompliziert mehr Spaß macht:
Nja... Aber es ging ja nicht drum "Hallo!" einzutragen, sondern "Hallo" und "!".. was einfach nur Platzhalter für andere Strings sind die bei ihm ja getrennt waren... Deswegen is das so schon gar net so umständlich gelöst, weil "hallo"+"!" ja nicht geht :p
-
Vielen Dank an alle!
Fazit ist trotzdem, dass es nicht einfacher geht als ich mir vorgestellt habe!

-
Kurzer Einwurf:
Wie wäre es, wenn man, BEVOR es ins Memo kommt, alles mit einem std::string verarbeitet (da funktioniert der +OP im übrigen blendend) und dann ins Memo schiebt?
std::string s("Hallo"); s = s + " Welt!"; Memo->Lines->Add(s.c_str());
-
Das was du da gemacht hast funktioniert auch problemlos mit AnsiString.
-
ist das hier keine 'gute' lösung?
Memo1->Text = Memo1->Text + Edit1->Text; //+= geht aus irgendeinem Grund nichtbzw. wenn man zwischen jedem text ein leerzeichen will:
Memo1->Text = Memo1->Text + " " + Edit1->Text; //+= geht aus irgendeinem Grund nichtund wenn man eine neue Zeile will einfach
Memo1->Lines->Add("");so klappts jedenfalls bei mir(BCB6)
-
+= geht hier nicht, weil die Eigenschaft Text eine Property und keine einfache Variable ist.
-
ok,der code funktioniert aber.. oder hat irgendjemand einwände wie : "Das könnte irgendwie irgendwo irgendwelche probleme geben" oder so? *g*