Einzelnen Beitrag anzeigen

quendolineDD

Registriert seit: 19. Apr 2007
Ort: Dresden
781 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Zeile bis zum Ende markieren in einem Text

  Alt 8. Okt 2007, 20:14
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
begriff: string;
i: integer;
begin
begriff:= 'Das ist';
for i:= 0 to RichEdit1.Lines.Count -1 do
 SelString(begriff, RichEdit1.Lines[i], RichEdit1); //Procedure, welche die Zeile markiert
end;

procedure TForm1.SelString(subs, s: string; aRichEdit: TRichEdit);
var start, laenge: integer;
begin
aRichEdit.SetFocus;
start:= pos(subs, s)+ length(subs);
aRichEdit.SelStart:= start;
laenge:= length(s)- start;
aRichEdit.SelLength:= laenge;
end;
Selectiert aber nur, wenn nicht mehr als eine Zeile vorhanden ist.

Hab nun aber keine Lust, das noch weiter zu probieren, kommen gleich paar Leute
Kansnt ja selber das verbessern.

Btw. wenn du mal in der Hilfe nachschaust (F1):

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);

begin
  FindDialog1.Position := Point(RichEdit1.Left + RichEdit1.Width, RichEdit1.Top);
  FindDialog1.Execute;
end;

procedure TForm1.FindDialog1Find(Sender: TObject);
var
  FoundAt: LongInt;
  StartPos, ToEnd: Integer;
begin
  with RichEdit1 do
  begin
    { Suche hinter aktueller Markierung beginnen (falls vorhanden), }
    { andernfalls am Textanfang starten. }
    if SelLength <> 0 then

      StartPos := SelStart + SelLength
    else

      StartPos := 0;

    { ToEnd ist die Länge von StartPos bis zum Textende im RTF-Eingabefeld }

    ToEnd := Length(Text) - StartPos;

    FoundAt := FindText(FindDialog1.FindText, StartPos, ToEnd, [stMatchCase]);
    if FoundAt <> -1 then
    begin
      SetFocus;
      SelStart := FoundAt;
      SelLength := Length(FindDialog1.FindText);
    end;
  end;
end;
Ist das Delphi-Beispiel dazu
Lars S.
Wer nicht mit der Zeit geht, geht mit der Zeit.
  Mit Zitat antworten Zitat