Einzelnen Beitrag anzeigen

Benutzerbild von TheProfi
TheProfi

Registriert seit: 30. Mai 2005
Ort: Emden
42 Beiträge
 
Delphi 10.3 Rio
 
#6

AW: Text (Emailadressen) in TEdit unterstreichen

  Alt 28. Jul 2010, 16:06
Erstmal danke für Eure Antworten.
Hab mich nun doch für eine andere Lösung entschieden. Noch nicht ganz ausgereift aber...

Ich nehme ein EDIT von TADVEdit aus den TMS-Komponenten (bin Kunde).

Beispieltext für das Edit: '12345; 67890; 123456; 98765'

Delphi-Quellcode:
function PosExReverse(substr, str: string; Indexpos : integer): integer;
var x : integer;
begin
  x := length(str)-Indexpos+1; //Positionen im String müssen auch reverse sein
  x := posex(substr,AnsiReverseString(str),x);
  if x = 0 then x := length(str)+1;
  result := length(str)-x+1; //Position zurückdrehen und Ergebnis zurückliefern
end;

procedure TForm5.Edit1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var mp : Tpoint;
    mpxe, //Ende des markierten Textes
    mpxb, //Beginn des markierten Textes
    mpxs : integer; //ermittelte Indexposition aus dem Mausklick
begin
  mp.X := x; //Mauskoordinate X in Point
  mp.Y := y; //Mauskoordinate Y in Point
  mpxs := Edit1.CharFromPos(mp); //aktuelle Indexposition aus dem Edit holen
  //so nun müssen wir den anfang finden
  mpxb := PosExReverse(';',edit1.Text,mpxs); //Beginn ermitteln

  //und nun das ende finden
  mpxe := posex(';',edit1.Text,mpxs);

  //und nun den Text zwischen den Semikolons markieren
  edit1.SelStart := mpxb;
  edit1.SelLength := mpxe-mpxb-1;
  label1.Caption := trim(edit1.SelText); //das Ergebnis extra anzeigen bzw. weiterverwenden
end;
Georg Reimann
------------------------------------------------------
Sicher ist nur eines, dass nichts sicher ist...

Geändert von TheProfi (28. Jul 2010 um 16:30 Uhr) Grund: Code überarbeitet
  Mit Zitat antworten Zitat