richedit inhalt zwischenspeichern
-
Original erstellt von riebl:
RichEdit brauch ich wegen SyntaxColoringOh Mann, ich brech gleich zusammen ...
Textfarben sind Formatierungen!
Also nimm doch (ein Array von) TStringStream (RichEdit::Lines::SaveToStream), die Zuordnung lässt sich dann über den Arrayindex und den ComboBox-Index herstellen.
-
Oh Mann, ich brech gleich zusammen ...
Bleib mal standhaft, Jansen. Vielleicht braucht er die Formatierung im RichEdit, aber nicht im Zwischenspeicher. Vielleicht. Dann reicht wie gesagt auch eine StringList. Und da würde ich
TStringList* List = new TStringList; List->AddStrings(RichEdit1->Lines); // mach was delete List;
empfehlen.
-
Original erstellt von WebFritzi:
List->AddStrings(RichEdit1->Lines);Hmm, das finde ich eher ungünstig. Dabei verlierst du doch die (einfache) Möglichkeit der Index-Zuordnung!? Oder willst du wirklich für jede Speicherung eine neue StringList benutzen? Ist doch total umständlich.
-
jansen: ich weiß das syntaxcoloring formatierung ist, aber ich brauch das, wie andreas vermutet hat, nicht im zwischenspeicher.
ich werd also nun mir ein TStringStream Array machen
danke nochmal für alles!
-
Das Stream-Array ist aber um einiges umständlicher als die StringList-Methode, wenn die Textattribute nicht benötigt werden würde ich auf jeden Fall letzteres benutzen.
-
jansen: na gut, dann eben StringList, wie sie meinen, master
für jeden inhalt also eine StringList... das werd ich (hoffentlich) noch schaffen
-
Original erstellt von riebl:
für jeden inhalt also eine StringListEben nicht! Das ist ja das Gute an der StringList-Lösung: eine StringList, jedes Item enthält jeweils einen RichEdit-Inhalt (TRichEdit::Text).
-
jansen: achja, genau... hab heute mathe schulaufgabe geschrieben, bin wohl deswegen nicht mehr ganz auf der geistigen höhe...
-
Hi,
Ich habe das selbe mit TabControl gemacht, aber mir unterläuft da wohl ein Denkfehler. Hier mal der hauptsächliche Code:THauptfenster *Hauptfenster; int count = -1; //Anzahl der Tabs beim TabControl TStringList* Inhalt = new TStringList; //--------------------------------------------------------------------------- void __fastcall THauptfenster::FormCloseQuery(TObject *Sender, bool &CanClose) { delete Inhalt; //Beim Beenden des Programmes wird der Speicher wieder freigegeben } //--------------------------------------------------------------------------- void __fastcall THauptfenster::EditorenChange(TObject *Sender) { Editor->Text = Inhalt->Strings[Editoren->TabIndex]; //sollte dem RichEdit den String-Eintrag aus der TStringList mit dem selben Index wie dem Tab zuweisen } //--------------------------------------------------------------------------- void __fastcall THauptfenster::EditorenChanging(TObject *Sender, bool &AllowChange) { Inhalt->AddStrings(Editor->Lines); //Fügt den gegenwärtigen RichEdit-Inhalt der TStringList hinzu, bevor der neue Register den Focus bekommt } //--------------------------------------------------------------------------- void __fastcall THauptfenster::DateiNeueDateiClick(TObject *Sender) { if (count == -1) Editor->Show(); //Am Anfang ist das RichEdit(Editor) noch unsichtbar ++count; Hauptfenster->ActiveControl = Editor; SaveDialog->FileName = "Neu" + AnsiString(count); Editoren->Tabs->Add(SaveDialog->FileName); //Fügt dem TabControl einen Register hinzu Editoren->TabIndex = count; //Der aktuelle Register ist immer der neu erstellte } //---------------------------------------------------------------------------
Jedoch funzt das nicht, irgendwo liegt da der Fehler.
-
Inhalt->Add(Editor->Text);