28-09-2011, 05:32 PM
كود :
procedure TForm1.GetTextColor(FRichEdit: TRichEdit; SearchTxt: string;
Fgetcolor: Tcolor);
var
i, j, t, Len: integer;
StrFind, TempStr: string;
StrBuffer: TStringList;
begin
StrFind := SearchTxt;
Len := 0;
j := 0;
StrBuffer := TStringList.Create();
try
StrBuffer.CommaText := FRichEdit.Text; //
for i := 0 to FRichEdit.Lines.Count - 1 do
begin
StrBuffer.CommaText := FRichEdit.Lines.Strings[i]; // تحويل السطر الى مقاطع نصوص
for t := 0 to length(FRichEdit.Lines.Strings[i]) - 1 do
begin
j := FRichEdit.FindText(SearchTxt,Len ,//Len=البحث من اي محرففي النص
length(FRichEdit.Lines.Strings[i]), [stMatchCase]);
// length(FRichEdit.Lines.Strings[i]) = كم طول النص المراد البحث فيه
//stMatchCase = طريقة البحث كيف تكون! فرديةومتطابقة
if j > -1 then // ادا وجد النص
Begin // نفذ التالي
FRichEdit.SelStart := j;
FRichEdit.SelLength := length(SearchTxt);
FRichEdit.SelAttributes.Color := Fgetcolor;
FRichEdit.SelAttributes.Style := [fsBold];
Len := j+1 ; // هذ اهم شي اضافة 1 يمكن البحث عن النص في موقع اخر في السطر
End;
end;
end;
finally
StrBuffer.Free;
end;
