Memo -> Einzelne Lines
-
Was Jester eigentlich sagen wollte:
Die Suchfunktion liefert mit den Stichworten "Memo Zeilen Zugreifen" jene Threads in denen das Thema abgehandelt wird.Ausserdem würde ich dringend empfehlen, dir mal das Hilfesystem des BCB genauer anzusehen. (der Link ist zum Anschauen da und ned aus spass.)
-junix
-
nö, das wollte jester nicht eigentlich sagen
-
...du weisst genau wie ich das meinte.
-junix
-
klar weiß ich das
habe mir deine hilfe zur hilfe mal durchgelesen.
ist zwar ganz gut, aber für mich nichts neues drin.zB würde ich jetzt gerne die hilfe benutzen, bei dem problem, wie man in einem richEdit auf einzelne zeilen und drt auf textpassagen zugreift und diese 'fett' macht...
da stehe ich gleube ich vor einer unlösbaren aufgabe.
trotzdem poste ich diese frage jetzt einfach mal nicht, und beiße mich, auch wenn es nix nützt, durch die hilfe...Bj
-
Bj schrieb:
trotzdem poste ich diese frage jetzt einfach mal nicht, und beiße mich, auch wenn es nix nützt, durch die hilfe...
Wieso sollte das nichts nützen. Mir hat die Hilfe bislang _immer_ genützt. Und auch dein Problem habe ich früher schonmal allein mit der BCB-Hilfe (vom BCB 1.0) gelöst.
-
das thema "TRichEdit" und "Text fett darstellen" wurde schon so oft hier im board diskutiert
benutz die suchfunktion und du wirst garantiert fündig
-
ja ja, es wurde hier schon so oft diskutiert, aber ich will nicht immer hier im forum suchen, sondern die BCBHilfe benutzen können...
naja, also ich habe jetzt trotzdem (auch builder-1-hilfe) folgende probleme welche bleiben:
ich finde bei methoden von trichedit keine Lines oder Items, sodass ich nicht weiss wie ich auf die einzelnen zeilen zugreife.
dann möchte ich verschiedenen zeilen nach dem ersten dopplepunkt suchen, und danach alles fett machen.
gut, fsBold habe ich gefunden, den rest aber leider nicht.
nur das SelAttributes anscheinend die Lösung meines Problems sind, doch dort finde ich leider nix das mich weiterbringt.
also was soll ich tun?Bj
-
Ok, zum Mitschreiben:
1.) Auf das TRichEdit-Element klicken (im Formular)
2.) Strg+F1 drücken, um die Richedit-Hilfe anzuzeigen.
3.) Oben auf Eigenschaften klicken. Im neuen Fenster "SelAttributes" auswählen, schonmal nachschauen, was dort noch alles mit Selektion zu tun haben könnte.
4.) Bei neuen Typen immer auf den Namen des Typs klicken. Dann siehst du auch wie du mit SelAttributes umgehen musst...
-
ok, also, wenn ich diese zeilen in ein richedit eintrage:
Form1->mem_meldungen->Lines->Add ("Vergleich abgeschlossen\r\nFehlende Dateien: " + String(nzaehler) + "\r\nÜbergangene Dateien: " + String(gesamt-(nza
kann ich zB den 'nzaehler' direkt an dieser stelle fcBold-fett machen?
und wenn ja wie?Bj
-
ich wiederhole mich ungerne, aber BENUTZE DIE SUCHFUNKTION VOM BOARD
-
Achja...
Schreib erstmal den Text nur bis kurz VOR die Zahl ins Richedit. Merke dir dann mit Text.Length() das Ende. (Als Startposition) schreib dann die Zahl rein und merke dir die Anzahl der Zeichen (der Zahl). Dann setzt du SelStart und SelLength. Und zum Schluss manipulierst du SelAttributes wie du es brauchst. Dann SelAttributes wieder zurücksetzen un den restlichen Text hinzufügen.
-
habe ich, und ich habe folgende seiten gefunden, die mir evtl. einwenig nützlich sein könnten:
http://www.c-plusplus.net/forum/viewtopic.php?t=8614&highlight=richedit+fett
http://www.c-plusplus.net/forum/viewtopic.php?t=11266&highlight=richedit+fett
http://www.c-plusplus.net/forum/viewtopic.php?t=12610&highlight=richedit+fettdoch jetzt sag mir mal wie ich dort das hearusfinden soll:
wie baue ich in diese zeile ein, wie ich das fett eingezeichnete im richedit fett bekommen:
Form1->mem_meldungen->Lines->Add ("Vergleich abgeschlossen\r\nFehlende
Dateien: " + String(nzaehler)??
ich weiß es einfach nicht
-
schau mal hier nach:
http://www.c-plusplus.net/forum/viewtopic.php?t=48471&highlight=richedit+selstart
-
Schau mal unter TTextAttributes (der Typ von SelAttributes) und dan Style nach. Da gibt's gleich ein Beispiel dazu.
-
also ich habs jetzt mal so gemacht:
Form1->mem_meldungen->Lines->Add ("Vergleich abgeschlossen\r\nFehlende Dateien: "); Form1->mem_meldungen->SelAttributes->Style=TFontStyles()<< fsBold; Form1->mem_meldungen->Lines->Add (String(nzaehler);
doch dann stehen diese beiden strings natürlich nicht mehr in der selben zeile im richedit.
wie kann ich diese problem lösen?
-
schreibe erst die komplette zeile rein in die REd
wenn du wissen willst wo deine zahl beginnt, setzte
nen marker e.g. § (..bla bla bla..§"+String(nzaehler)...
SelStart = REd->Text.Pos("§");
SelLength = //zeichenlänge der zahl von nzaehler (int zl = AnsiString(nzaehler).Length;)
und dann mit SelAttributes ändern
dann das § löschen:
REd->Text = StringReplace(REd->Text, "§", "", TReplaceFlags() << rfReplaceAll );
dann SelAttributes zurücksetzten ( TFontStyles() >> fsBoldTIP: suche nicht nach den genauen codeschnippel den du brauchst,
denke logisch und bei dir es aus den infos die du findest, proggen
ist nicht nur code sondern auch logisch denken.Asta la, H.K.
-
danke, so geht in etwa.
obwohl er bei mir leider nicht die funktion stringreplace kennt.....aber trotzdem vielen dank.
Bj
@junix...das hätte ich niemals so in der hilfe finden können
deshalb entschuldige die frage
-
Hallo,
um das Thema (2 Seiten für so´n Kram) abzuschließen:
int nzaehler = 123; // 123 als Beispiel RichEdit1->Lines->Add ("Vergleich abgeschlossen\r\nFehlende Dateien: " + String(nzaehler) ); int lpos = RichEdit1->SelStart -2; // -2 wegen Zeilenumbruch RichEdit1->SelStart = lpos - String(nzaehler).Length(); RichEdit1->SelLength = String(nzaehler).Length(); RichEdit1->SelAttributes->Style = TFontStyles() << fsBold; RichEdit1->SelStart = lpos; RichEdit1->SelAttributes->Style = TFontStyles() >> fsBold; RichEdit1->Lines->Add ("weiteres ...");
Erklärung:
letzte position minus zeilenumbruch (-2) minus zeichenlänge der Zahl (3)
SelLength mit der zeichenlänge der zahl (3)
bold rein setzten
SelStart wider zurück zum ende der zeile
bold raus nehmen
und weiterIch hoffe es bleibt bei 2 Seiten für diesen Theard
gruß promicha
-
Bj: Das unentshculdbare an der Diskussion bezüglich TRichEdit ist, dass sie offtopic ist (gemäss Thema solls hier ja um TMemo gehen)
Was den Rest betrifft: Stimmt vorgekaut hättest du das bestimmt nicht in der Hilfe gefunden. Nur, du wolltest im Memo eine einzelne Zeile ansprechen und löschen. Diese Aufgabe war mit der Hilfe lösbar (ebenfalls beinahe vorgekaut).
Wenn mein Tut da nix neues für dich geliefert hat, wieso benutzt du dann bestehende Erkenntnisse nicht um das problem zu lösen?
Programmieren impliziert nunmal auch denken. Aber man kannst natürlich auch wie du machen, und einfach wie ein Käfer auf dem Rücken, alle Extremitäten gen himmel strecken und hilfe rufen, bis man jmd findet, der einen umdreht, anstelle selbst etwas Zeit aufzuwenden um sich mit der Materie zu befassen. manchmal steht hald nicht alles klar und direkt zum abschreiben in der Hilfe. Und manchmal muss man hald auch mal eine Theorie umd ie Verwendung von attributen Bilden und diese Theorie ausprobieren. nur so kann man lernen mit dem Fraemwork umzugehen und intuitiv langsam die richtigen Lösungen zu finden. Gerade du, der in der Ausbildung steckt, hast es noch viel nötiger als andere, diese Intuition zu entwickeln.
Softwareentwickeln bedeutet hald auch, dass man manchmal langwierig nach Ressourcen suchen muss, die einen eine Problemlösung (oder eine Teilllösung) ermöglichen. (-> Stichwort Eigeninitiative/Erfindergeist)
So, das wars. Weitere Beiträge die nicht um das Zugreifen auf einzelne Zeilen im TMemmo gehen, werden kommentarlos entfernt. Weitere Debatten über gesagtes sind per Mail oder in einem neuen Thread im Neuigkeiten Forum anzureissen.
-junix