Autor Beitrag
xus
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 24



BeitragVerfasst: 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 user profile iconChristian S.: Titel geändert.
Moderiert von user profile iconChristian S.: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am So 07.01.2007 um 14:35
Jakob Schöttl
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 929
Erhaltene Danke: 1


Delphi 7 Professional
BeitragVerfasst: So 07.01.07 15:45 
Also, das suchen geht indem du
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19313
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: 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:
ausblenden 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 // setzen
    Memo1.SelLength // setzen
  end;

Ungetestet, aber so ungefähr müsste es stimmen.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19313
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 07.01.07 15:50 
user profile iconJakob 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? :lol: Er hat doch selbst von Markierung als Hervorhebung gesprochen und das geht ja auch beim Memo... ;-)
xus Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 24



BeitragVerfasst: 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"

ausblenden 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 user profile iconGausi: Code- durch Delphi-Tags ersetzt
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8548
Erhaltene Danke: 477

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: So 07.01.07 16:28 
Es muss heißen Memo1.Lines.Count - 1.

_________________
We are, we were and will not be.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19313
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 929
Erhaltene Danke: 1


Delphi 7 Professional
BeitragVerfasst: So 07.01.07 16:32 
user profile iconjaenicke hat folgendes geschrieben:
user profile iconJakob 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? :lol: Er hat doch selbst von Markierung als Hervorhebung gesprochen und das geht ja auch beim Memo... ;-)


Ich hab das "Markieren" überlesen, dafür nur das "Fett" gesehen
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19313
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 07.01.07 16:34 
Ach und jetzt weiß ich auch woher er das Memo1.Count hatte... von dir... (hab gerade nochmal oben deinen Beitrag gesehen) :lol:
user profile iconJakob Schöttl hat folgendes geschrieben:
Also, das suchen geht indem du
ausblenden Delphi-Quelltext
1:
2:
for i := 0 to Memo1.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.
xus Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 24



BeitragVerfasst: So 07.01.07 17:23 
danke hab es jetzt!

mfg XuS