PDA

View Full Version : سوال: مشکل با Richedit



Mask
پنج شنبه 08 فروردین 1392, 16:09 عصر
با سلام
من با استفاده از Pos یک کلمه رو در یکی از خطهای Richedit پیدا میکنم.
با متد خود Richedit میتونم اون کلمه رو رنگی کنم.
اما مشکلم اینه که میخام کل اون خط رو رنگ متنشو عوض کنم.
چطوری باید این کار رو کرد.
کد من:

procedure TForm1.Button1Click(Sender: TObject);
begin
RichEdit1.Lines.Append(Edit1.Text);
if Pos('ali', RichEdit1.Lines[RichEdit1.Lines.Count-1]) > 0 then
begin
With RichEdit1 do
begin
SelStart :=RichEdit1.GetTextLen- Length(RichEdit1.Lines[RichEdit1.Lines.Count-1]);
SelLength :=Length(RichEdit1.Lines[RichEdit1.Lines.Count-1]);
SelAttributes.Color := clBlue;
SelAttributes.Style := [fsBold];
end;
end
else
begin
With RichEdit1 do
begin
SelStart :=RichEdit1.GetTextLen- Length(RichEdit1.Lines[RichEdit1.Lines.Count-1]);
SelLength :=Length(RichEdit1.Lines[RichEdit1.Lines.Count-1]);
SelAttributes.Color := clBlack;
SelAttributes.Style := [fsBold];
end;
end;
end;

MohsenB
پنج شنبه 08 فروردین 1392, 18:59 عصر
سلام

بعد از هر خط در این کنترل یک کاراکتر خط شکن برای رفتن به خط بعدی قرار میگیرد که شما باید آن را از شمارشها حذف کنید . یکم هم در کاربرد With بیشتر دقت کنید .


With redt1 do begin
Lines.Append(txt1.Text);
if Pos('ali', Lines[Lines.Count-1]) > 0 then begin
SelStart:= GetTextLen - Length(Lines[Lines.Count-1]) - Lines.Count - 1;
SelLength:= Length(Lines[Lines.Count-1]);
SelAttributes.Color:= clBlue;
SelAttributes.Style:= [fsBold];
end else begin
SelStart:= GetTextLen - Length(Lines[Lines.Count-1]) - Lines.Count - 1;
SelLength:= Length(Lines[Lines.Count-1]);
SelAttributes.Color:= clBlack;
SelAttributes.Style:= [fsBold];
end;
end;

موفق باشید

Mask
پنج شنبه 08 فروردین 1392, 19:05 عصر
ممنون داداش:
یکم عجله ای بود. واسه همین زیاد رعایت نشد.:لبخندساده:]