Q&A

  • 리치에디트 글자색 바꾸기 문의 드립니다.
var
    cPre, cNew : String;
    nPos   : Integer;
begin
    cPre := 'Rich';
    nPos := Editor.FindText(cPre, Editor.SelStart, Length(Editor.Text), [stMatchCase]);
    if nPos <> -1 then
    begin
     fnt := Tfont.Create;
     fnt.Color := clRed;
     fnt.Size := 24;
     fnt.Style := [fsBold, fsItalic];
     Editor.SelStart := nPos;
     Editor.SelLength := Length(cPre);
     Editor.SelAttributes.Color  := fnt.Color;
     Editor.SelAttributes.Style := fnt.Style;
     Editor.SelAttributes.Size := fnt.Size;
     fnt.Free;
    end;
end;

이런식으로 우선 급한대로는 해주었는데 문제는 너무 느리다는것입니다....
selstart 값으로 sellength 만큼 색깔을 바꿔주게끔 되어 있는데 아무리 생각해도 이건 아닌거 같은...
에디트 플러스 같은 형식의 에디트를 만들어볼려하는데 맘처럼 안되는군요....
각각 구문(if for 등등) 입력이 확인될때 마다 그 부분만 색 변경을 시켜주려고 하는데

리치에디트에서
k:=RichEdit1.CaretPos.Y;
RichEdit1.Lines.Strings[k];
이렇게 한줄에 해당하는 text를 읽어와서 그 줄에대해서만 검사할수 있는건지
아니면
리치에디트로는 에디트 플러스 같은 방식은 구현 못하는건지요...
글자 색 바꾸기 도움 좀 주십시요



0  COMMENTS