Как выделить определенную часть строки в делфи?

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by ttt0z, 1 Jun 2012.

  1. ttt0z

    ttt0z Member

    Joined:
    18 Nov 2007
    Messages:
    60
    Likes Received:
    10
    Reputations:
    -5
    Есть memo1.
    В нем текст:
    1)login;pas

    Как сделать так, что бы при двойном клике по слову login выделилось только слово login, а не вся строка?
     
  2. alexey-m

    alexey-m Elder - Старейшина

    Joined:
    15 Jul 2009
    Messages:
    518
    Likes Received:
    100
    Reputations:
    37
    примерно так:
    Code:
    procedure TForm1.Memo1DblClick(Sender: TObject);
    var
      i: Integer;
    begin
      i:= pos(';', Memo1.SelText) - 1;
      if (i >= 0) then Memo1.SelLength:= i else Memo1.SelLength:= 0;
    end;
     
  3. ttt0z

    ttt0z Member

    Joined:
    18 Nov 2007
    Messages:
    60
    Likes Received:
    10
    Reputations:
    -5
    alexey-m, выделяеться не только login, но и "1)"
    Как сделать что бы выделялся только логин?
     
  4. alexey-m

    alexey-m Elder - Старейшина

    Joined:
    15 Jul 2009
    Messages:
    518
    Likes Received:
    100
    Reputations:
    37
    делай сам обработку выделенного как тебе надо, хз как-то так будет
    Code:
    procedure TForm1.Memo1DblClick(Sender: TObject);
    var
      i,j: Integer;
    begin
      i:= pos(')', Memo1.SelText);
      j:= pos(';', Memo1.SelText) - 1;
      if (i >= 0) and (j >= 0) then begin
        Memo1.SelStart:= Memo1.SelStart + i;
        Memo1.SelLength:= j - i;
      end;
    end;
     
  5. ttt0z

    ttt0z Member

    Joined:
    18 Nov 2007
    Messages:
    60
    Likes Received:
    10
    Reputations:
    -5
    alexey-m, спасибо за помощь. примерно так и сделал)
     
Loading...