Innerhalb von Memo suchen - C++
-
Mit F9 startest du das Programm im Debuggermodus, das weist du ?
Falls du keine FindDialog-Komponente auf dem Formular hast, zieh eine drauf.
In der Hilfe des BCB ist auch ein kleines Beispiel zu diesem Dialog.mfg
kpeter
-
jo, dad weiß ich, das ich anch drücken der F9-Taste im Debuggermodus bin
ich habe auch den FindDialog schon in meinem Bearbeutungsfenster (in C++ standardmäßig TForm1)
also die hilfedatei hab ich auch schon durchgestöbert, aber nichts gefunden
-
Tip,
nimm anstatt des Memo eine TRichEdit-Kompo. Die ist von TCustomMemo abgeleitet, hat mehr
Eigenschaften und direkt eine Methode FindText.Hier das Listing aus meiner F1:
void __fastcall TForm1::Button1Click(TObject *Sender) { FindDialog1->Position = Point(RichEdit1->Left + RichEdit1->Width, RichEdit1->Top); FindDialog1->Execute(); } void __fastcall TForm1::FindDialog1Find(TObject *Sender) { int FoundAt, StartPos, ToEnd; // Suchbeginn nach der aktuellen Markierung // (falls vorhanden) // andernfalls beim Textanfang starten if (RichEdit1->SelLength) StartPos = RichEdit1->SelStart + RichEdit1->SelLength; else StartPos = 0; // ToEnd ist die Länge von StartPos bis zum Ende des Textes // im RTF-Eingabefeld ToEnd = RichEdit1->Text.Length() - StartPos; FoundAt = RichEdit1->FindText(FindDialog1->FindText, StartPos, ToEnd, TSearchTypes()<< stMatchCase); if (FoundAt != -1) { RichEdit1->SetFocus(); RichEdit1->SelStart = FoundAt; RichEdit1->SelLength = FindDialog1->FindText.Length(); } }
Müsste auf Anhieb gehen
-
danke dir
es funktioniert alles einwandfrei
super, danke
-
bin stolz auf dich
darfst dir auf die schultern klopfen
-
Danke für die Blumen.
Hier wird immer gerne geholfen.
mfg
kpeter
-
is das bei dir auch, das das RichEdit nicht automatisch zum angezeigten Wort/Text scrollt?
-
Das Fenster muss noch gescrollt werden.
Wenn eine Position im Text gefunden wurde, die ober- oder unterhalb des sichtbaren Bereiches liegt,
schickt man ein Message an die TRichEdit:RichEdit1->Perform(EM_SCROLLCARET, 0, 0);
Diese Zeile hängst du ganz unten als letze ein.
Das funktioniert aber nur solange, wie Text markiert (selektiert) ist.
-
jo, thx
das läuft wie ne sahne^^
dankeschön
-
ich denke mal, das kann zu den FAQ`s
von meiner seite ist es geschlossen