Autor |
Beitrag |
xus
      
Beiträge: 24
|
Verfasst: So 07.01.07 15:33
hi!
wie kann ich ein memo feld in delphi durchsuchen lassen zb. nach hello und dies dann im memofeld hervorheben zb druch makieren oder fett gedruckt...
mfg XuS
Moderiert von Christian S.: Titel geändert.
Moderiert von Christian S.: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am So 07.01.2007 um 14:35
|
|
Jakob Schöttl
      
Beiträge: 929
Erhaltene Danke: 1
Delphi 7 Professional
|
Verfasst: So 07.01.07 15:45
Also, das suchen geht indem du
Delphi-Quelltext 1: 2:
| for i := 0 to Memo1.Lines.Count -1 do if Pos('hello',Memo1.Lines[i]) > 0 then ShowMessage('Gefunden in Zeile ' + IntToStr(i)); |
, wobei Pos(...) den Index des ersten Zeichen von 'hello' in der entsprechenden Zeile zurückgibt.
Ach ja, und hervorheben kannst du es im MemoFeld nicht! Memo ist Nur-Text, also keine Formatierungen. Dazu müsstest du TRichEdit verwenden.
Zuletzt bearbeitet von Jakob Schöttl am So 07.01.07 17:01, insgesamt 1-mal bearbeitet
|
|
jaenicke
      
Beiträge: 19313
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: So 07.01.07 15:47
www.delphi-forum.de/...ight=suchen+richedit
Da findest du eine Funktion, die ein Memo durchsucht. Zurückgegeben wird der Index des ersten Zeichens des gesuchten Texts im Memo.
Benutzen mit:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| var FirstChar: Integer; SearchedText: String; begin SearchedText := 'Gesuchter Text'; FirstChar := MemoFindText(Memo1, SearchedText, True, False); if FirstChar >= 0 then begin Memo1.SelStart Memo1.SelLength end; |
Ungetestet, aber so ungefähr müsste es stimmen.
|
|
jaenicke
      
Beiträge: 19313
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: So 07.01.07 15:50
Jakob Schöttl hat folgendes geschrieben: | Ach ja, und hervorheben kannst du es im MemoFeld nicht! Memo ist Nur-Text, also keine Formatierungen. Dazu müsstest du TRichEdit verwenden. |
Wirklich?  Er hat doch selbst von Markierung als Hervorhebung gesprochen und das geht ja auch beim Memo... 
|
|
xus 
      
Beiträge: 24
|
Verfasst: So 07.01.07 15:55
danke für die schnellen antworten werde gleich das alles mal testen...
mfg XuS
edit:
bekomme immer folgenden error:
unlear identifier "Count"
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| procedure TForm1.Button6Click(Sender: TObject); var a:string; i:integer;
begin a:=edit10.text;
for i := 0 to Memo1.Count -1 do if Pos(a ,Memo1.Lines[i]) > 0 then ShowMessage('Gefunden in Zeile ' + IntToStr(i));
end; |
Moderiert von Gausi: Code- durch Delphi-Tags ersetzt
|
|
Gausi
      
Beiträge: 8548
Erhaltene Danke: 477
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: So 07.01.07 16:28
Es muss heißen Memo1.Lines.Count - 1.
_________________ We are, we were and will not be.
|
|
jaenicke
      
Beiträge: 19313
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: So 07.01.07 16:30
Wenn du den im ganzen Text auf einmal suchen willst, dann kannst du statt alle Zeilen durchzugehen auch in Memo1.Text mit Pos suchen...
|
|
Jakob Schöttl
      
Beiträge: 929
Erhaltene Danke: 1
Delphi 7 Professional
|
Verfasst: So 07.01.07 16:32
|
|
jaenicke
      
Beiträge: 19313
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: So 07.01.07 16:34
|
|
xus 
      
Beiträge: 24
|
Verfasst: So 07.01.07 17:23
danke hab es jetzt!
mfg XuS
|
|