Cómo programar los cambios de color de fuente en dos ediciones enriquecidas en Delphi
1.
Las cadenas se pueden ver como matrices de caracteres. El carácter ingresado en redt2 es el último carácter de la cadena,
p := length(redt2.Text) -2 //El último carácter parece ser un carácter de nueva línea
s := redt2.Text[p];
Compare s con los caracteres correspondientes en redt1,
si s <> redt1.Text[p] entonces
begin
redt1.SelStart :=n; //Selecciona la posición inicial de la parte
redt1.SelLength :=1 //Selecciona la longitud de la parte
redt1.SelAttributes. Color := clred;
end;
Lo anterior solo debe aplicarse a caracteres no chinos. Para caracteres chinos, 2 caracteres corresponden a 1 chino. personaje.
2.
procedimiento TForm1.redt2Change(Remitente: TObject);
var
i: Entero;
comenzar
para i := 0 a Longitud(redt2.text) -1 hacer
comenzar
redt1.SelStart := i;
redt1.SelLength := 1;
si Copiar(redt1.Text, i +1, 1) = Copiar(redt2.Text, i+1, 1) entonces
redt1.SelAttributes.Color := clBlue
else
redt1.SelAttributes.Color := clRed;
end;
end;
3.
Se recomienda utilizar una versión superior de Delphi, como la serie xe, Unicode sigue siendo mucho más conveniente
4.
Procedimiento TForm1.FormCreate(Remitente: TObject);
Comenzar
RichEdit1.Text := '012345678';
Fin;
Procedimiento TForm1.Button1Click(Remitente: TObject);
Comenzar
RichEdit1.SelStart := 0;
RichEdit1.SelLength : = 3;
p>RichEdit1.SelAttributes.Color := clRed; //012 es rojo
RichEdit1.SelStart := 5;
RichEdit1.SelLength := 4;
RichEdit1.SelAttributes.Color := clBlue; //5678 es azul
//RichEdit1.ClearSelection;
//Simplemente elimine el última selección (como arriba) Selección azul), en lugar de borrar todos los estilos de selección
Fin;
Procedimiento TForm1.Button2Click(Sender: TObject);
Begin
RichEdit1.SelStart := 0; //Borrar todos los estilos de selección
RichEdit1.SelLength := Longitud(RichEdit1.Text);
RichEdit1.SelAttributes .Color := clNegro;
Fin;