Red de conocimientos turísticos - Conocimientos sobre calendario chino - Cómo programar los cambios de color de fuente en dos ediciones enriquecidas en Delphi

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;