Показать сообщение отдельно
  #6  
Старый 09.09.2013, 21:22
tesla tesla вне форума
Прохожий
 
Регистрация: 15.07.2012
Сообщения: 14
Репутация: 10
По умолчанию

Цитата:
Сообщение от Uniq!
Ну дык AnsiPos + Delete или

Код:
RichEdit1.SelStart := RichEdit1.FindText('[c]',i2,MaxInt,[stMatchCase]); + 
RichEdit1.SelLength = 3;
RichEdit1.SetText(#0);

ругается на строчку RichEdit1.SelText(#0);
[Error] Unit1.pas(109): Missing operator or semicolon

Код:
RichEdit1.SelStart := RichEdit1.FindText('[c]',i2,MaxInt,[stMatchCase]);
 RichEdit1.SelLength:=3;
 RichEdit1.SelText(#0);

M.A.D.M.A.N. извени но я тебя не понял

Uniq!, спасибо! зделал AnsiPos в цикле, всё работает


Код:
procedure TForm1.Open1Click(Sender: TObject);
var position,position2,i1,i2: integer;
begin
 RichEdit1.Lines.LoadFromFile(ListBox1.Items.Strings[ListBox1.ItemIndex]);

 i2:=0;
 repeat
   i1:=RichEdit1.FindText('[c]',i2,MaxInt,[stMatchCase]);
   if i1 < 0 then Break;
   inc(i1,3);
   i2:=RichEdit1.FindText('[/c]',i1,MaxInt,[stMatchCase]);
   if i2 > 0 then
   begin
    RichEdit1.SelStart:=i1;
    RichEdit1.SelLength:=i2-i1;
    RichEdit1.SelAttributes.Style:=[fsBold];
    inc(i2,3);
   end;
 until i2 < 0;

  position:=AnsiPos('[c]', RichEdit1.Text);
  while position > 0 do
   begin
     RichEdit1.SelStart:=position-1;
     RichEdit1.SelLength:=3;
     RichEdit1.SelText:='';
     position:=AnsiPos('[c]', RichEdit1.Text);
   end;
end;

  position2:=AnsiPos('[/c]', RichEdit1.Text);
  while position2 > 0 do
   begin
     RichEdit1.SelStart:=position2-1;
     RichEdit1.SelLength:=4;
     RichEdit1.SelText:='';
     position2:=AnsiPos('[/c]', RichEdit1.Text);
   end;
Ответить с цитированием