Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Memo-Problem

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
15.01.2005, 16:47 Uhr
ManniMammut



Hallo Leute,
erstmal ein großes Lob an dieses gut gepflegte Forum (und natürlich auch an die fleißigen Poster hier). Dieses Forum ist echt gut gemacht und ich habe auch schon einige nützliche Problemlösungen für mich (als noch ziemlicher Neuling in Sachen C - vorher habe ich sehr viel Delphi gemacht) gefunden .

Trotzdem habe ich jetzt ein Problem, für das ich bis jetzt keine Lösung gefunden habe (auch durch die Suchfunktion nicht ):

Wie kann man in einem Memo-feld einen Text an einen schon darinstehenden Text anhängen? So, dass beide Texte also in der selben Zeile stehen.

Mit

C++:
Memo1->Lines->Add(text);


kann man ja Text zur Memobox hinzufügen, der dann in der nächsten Zeile steht. Wie kann ich es aber anstellen, dass der Text in der schon bestehenden Zeile angefügt wird?

Wenn ihr mir helfen könntet, wäre das echt super,

Manni
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
17.01.2005, 17:24 Uhr
ManniMammut



Ist das zu einfach, oder ist die Frage wirklich so schwer, dass mir niemand antwortet?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
17.01.2005, 17:49 Uhr
Th



Du mußt dir erst den letzten Eintrag extrahieren, dann den Text anfügen und zuletzt den Eintrag wieder ändern.

C++:
int n = Memo1->Lines->ItemCount-1; // Letzter Eintrag
AnsiString s = Memo1->Lines->Items[n];
s += sText; // dein Text
Memo1->Lines->Items[n] = s;



Hoffe, es geht so...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
17.01.2005, 17:57 Uhr
ManniMammut



Danke, gleich mal ausprobieren...

//EDIT: Geht leider nicht, weil der Compiler meckert, dass ItemCount kein Mitglied der Klasse TString ist (ich habs auch mal ohne das "Lines" probiert, geht auch nich, weil ItemCount auch kein Mitglied von TMemo ist).

Dieser Post wurde am 17.01.2005 um 18:11 Uhr von ManniMammut editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
18.01.2005, 13:17 Uhr
Th



Sorry, dann heißt es wohl einfach "Memo1->Lines->Count", am besten einfach die BCB-Hilfe benutzen, in diesem Fall nach "TStrings" suchen und Eigenschaften anzeigen lassen...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
18.01.2005, 18:25 Uhr
ManniMammut



Irgendwie komme ich mit der BCB-Hilfe nicht so gut zu recht. Ich habe dort zumindest nichts weiter gefunden, was mir weiterhilft.

Auf jeden Fall mault er jetzt bei
C++:
AnsiString s = Memo1->Lines->Items[n];
, dass Items nicht in den TStrings ist.

Aber das kann doch nicht sein, dass in einer Programmiersprache wie C++ so eine Methode zum anhängen von Text nicht enthalten ist
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
21.01.2005, 14:18 Uhr
ManniMammut



Hat sonst noch jemand einen Lösungsvorschlag?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
21.01.2005, 15:01 Uhr
Th



Hi Manni,

hab leider hier auf der Arbeit kein BCB, aber ich hab mich wohl mit der Klasse TList und TStrings vertan.

Geh mit dem Cursor auf "Lines" und drück mal F1 (Hilfe).
Dann müßte er die Hilfe für "TStrings" anzeigen (oder sonst einfach von Hand eintippen).
Dann auf den Link "Eigenschaften" klicken und dann erscheint ein Fenster mit den Eigenschaften, die TStrings zur Verfügung stellt.

Sollte dann entweder "Items" oder "Item" oder "Strings" oder ähnlich lauten...


C++:
int n = Memo1->Lines->Count-1; // Letzter Eintrag
AnsiString s = Memo1->Lines->Strings[n]; // oder auch "Item(s)"
s += sText; // dein Text
Memo1->Lines->Strings[n] = s;  // oder auch "Item(s)"



P.S. Ohne die Hilfe wirst du nicht effizient programmieren können, da es Tausende von Funktionen und Methoden gibt, deren Namen man sich nicht immer merken kann. (Schließlich muß man nur wissen, wo es steht!).

P.S. Hab gerade gelesen, daß du vorher sehr viel Delphi gemacht hast. Da die VCL ja in Delphi programmiert ist, heißen die Klassen und Methoden genauso.
In C++ ändert sich nur der Zugriff (d.h. "->" statt "." verwenden), ansonsten ist es zu 99% identisch.

Dieser Post wurde am 21.01.2005 um 15:18 Uhr von Th editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
21.01.2005, 16:58 Uhr
ManniMammut



also, bis jetzt meckert der Compiler schon mal nicht

...

Juhuu!!! Vielen Dank, Th! Es funktioniert! Ich wusste doch, in diesem Forum lernt man immer was (von netten Leuten noch dazu ). Jetzt kann mein "Jugend Forscht"-Projekt endlich dieses Memo-Feld in den Griff bekommen

Danke nochmal, Manni
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: