Q&A

  • 꼭 14 번째 줄의 색깔만 안바뀌는데 한번 봐주세요..
안녕하세요.. 죄송합니다.. 너무 많이 질문해서.. ^^"

그래도 궁금한걸 물어볼데가 없어서.. 이뿌게 봐주세여.. *^^*



제목과 그대로.. RichEdit에 적히는 글들 중에.. 콤보박스에서 바꿔준 색상이

14번째 줄에만 가면 어떤색이 설정되어 있든지 검은색으로 나옵니다..



소스를 올리오니 한번 봐 주시와요..



---------------------------------------------------------

procedure TchatForm.Edit1KeyPress(Sender: TObject; var Key: Char);

begin



if (not(Edit1.text = '')) and (Key = #13) then

begin

// 13줄이 되면 스크롤 바를 생기게 한다.

if RichEdit1.Lines.Count > 12 then

begin

RichEdit1.SelAttributes.Color := Edit1.Font.Color;

RichEdit1.ScrollBars := ssVertical;

end;



// 150줄 넘으면 맨처음에 올라온 글을 지운다.

if RichEdit1.Lines.Count >= 150 then

begin

RichEdit1.Lines.Delete(0);

end;



// RichEdit 에 쓸때 색깔 적용시키는 부분..

RichEdit1.SelAttributes.Color := Edit1.Font.Color;

RichEdit1.Lines.Add(Edit1.Text);

Edit1.text := '';



// 마지막줄이 보이기 함..

RichEdit1.SelLength := 0;

RichEdit1.SelStart := RichEdit1.GetTextLen; // caret의 마지막위치

RichEdit1.Perform(EM_SCROLLCARET, 0, 0);

end;

end;





// 글자색 변경 선택 시

procedure TchatForm.ComboBox1Click(Sender: TObject);

begin

if ComboBox1.ItemIndex = 0 then Edit1.Font.Color := clBlack

else if ComboBox1.ItemIndex = 1 then Edit1.Font.Color := clBlue

else if ComboBox1.ItemIndex = 2 then Edit1.Font.Color := clRed

else if ComboBox1.ItemIndex = 3 then Edit1.Font.Color := clPurple

else if ComboBox1.ItemIndex = 4 then Edit1.Font.Color := clTeal

else if ComboBox1.ItemIndex = 5 then Edit1.Font.Color := clGreen;

end;



---------------------------------------------------





1  COMMENTS
  • Profile
    최용일 2000.03.24 19:42
    위치를 바꾸어 보세요...



    왜그런지 그 이유는 잘 모르겠군요...



    > if (not(Edit1.text = '')) and (Key = #13) then

    > begin

    >>>>>>>>> // 150줄 넘으면 맨처음에 올라온 글을 지운다.

    > if RichEdit1.Lines.Count >= 150 then

    > RichEdit1.Lines.Delete(0);

    >

    > // RichEdit 에 쓸때 색깔 적용시키는 부분..

    > RichEdit1.SelAttributes.Color := Edit1.Font.Color;

    > RichEdit1.Lines.Add(Edit1.Text);

    > Edit1.text := '';

    >

    >>>>>>>>> // 13줄이 되면 스크롤 바를 생기게 한다.

    > if RichEdit1.Lines.Count > 12 then

    > RichEdit1.ScrollBars := ssVertical;

    >



    이수정 wrote:

    > 안녕하세요.. 죄송합니다.. 너무 많이 질문해서.. ^^"

    > 그래도 궁금한걸 물어볼데가 없어서.. 이뿌게 봐주세여.. *^^*

    >

    > 제목과 그대로.. RichEdit에 적히는 글들 중에.. 콤보박스에서 바꿔준 색상이

    > 14번째 줄에만 가면 어떤색이 설정되어 있든지 검은색으로 나옵니다..

    >

    > 소스를 올리오니 한번 봐 주시와요..

    >

    > ---------------------------------------------------------

    > procedure TchatForm.Edit1KeyPress(Sender: TObject; var Key: Char);

    > begin

    >

    > if (not(Edit1.text = '')) and (Key = #13) then

    > begin

    > // 13줄이 되면 스크롤 바를 생기게 한다.

    > if RichEdit1.Lines.Count > 12 then

    > begin

    > RichEdit1.SelAttributes.Color := Edit1.Font.Color;

    > RichEdit1.ScrollBars := ssVertical;

    > end;

    >

    > // 150줄 넘으면 맨처음에 올라온 글을 지운다.

    > if RichEdit1.Lines.Count >= 150 then

    > begin

    > RichEdit1.Lines.Delete(0);

    > end;

    >

    > // RichEdit 에 쓸때 색깔 적용시키는 부분..

    > RichEdit1.SelAttributes.Color := Edit1.Font.Color;

    > RichEdit1.Lines.Add(Edit1.Text);

    > Edit1.text := '';

    >

    > // 마지막줄이 보이기 함..

    > RichEdit1.SelLength := 0;

    > RichEdit1.SelStart := RichEdit1.GetTextLen; // caret의 마지막위치

    > RichEdit1.Perform(EM_SCROLLCARET, 0, 0);

    > end;

    > end;

    >

    >

    > // 글자색 변경 선택 시

    > procedure TchatForm.ComboBox1Click(Sender: TObject);

    > begin

    > if ComboBox1.ItemIndex = 0 then Edit1.Font.Color := clBlack

    > else if ComboBox1.ItemIndex = 1 then Edit1.Font.Color := clBlue

    > else if ComboBox1.ItemIndex = 2 then Edit1.Font.Color := clRed

    > else if ComboBox1.ItemIndex = 3 then Edit1.Font.Color := clPurple

    > else if ComboBox1.ItemIndex = 4 then Edit1.Font.Color := clTeal

    > else if ComboBox1.ItemIndex = 5 then Edit1.Font.Color := clGreen;

    > end;

    >

    > ---------------------------------------------------

    >

    >