C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[1305] [질문] 임펠리테리님 보세요./프포
jsk365 [ ] 3748 읽음    1999-05-06 18:16
임펠리테리님이
알려주신 데로 아래와 같이 프로그램을 만들어 실행을 해서...
리치에디터에 글자를 입력하고 글자색을 여러 가지로 바꾼 다음
글자에 커서가 가면 그 글자색에 맞게 콤보박스에 선택된 색이
바뀌질 않고 엉뚱하게 콤보박스에 배경 색이 만들어지고
글자색에 맞게 콤보박스에 배경 색이 바뀝니다.

무슨 문제가 있어 그런 건지 궁금합니다.

//------------------------------------------------------------------------
---
#include <vcl.h>
#pragma hdrstop

#include "YUnit1.h"
//------------------------------------------------------------------------
---
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;

TColor Colors[] = { clBlack, clMaroon, clGreen, clOlive, clNavy, clPurple,
    clTeal, clGray, clSilver, clRed, clLime, clYellow, clBlue, clFuchsia, clAqua, clWhite };


//------------------------------------------------------------------------
---
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
}
//------------------------------------------------------------------------
---

void __fastcall TForm1::FormCreate(TObject *Sender)
{
  ComboBox1->ItemIndex=0; //제가 만든 것
  ComboBox1->Style = csOwnerDrawFixed;
  AnsiString ColorName;
  for(int i=0; i<sizeof(Color)/sizeof(TColor); i++)
  {
    ColorToIdent(Colors[i], ColorName);
    ComboBox1->Items->Add(ColorName);
  }
}
//------------------------------------------------------------------------
---
void __fastcall TForm1::ComboBox1DrawItem(TWinControl *Control, int Index,
      TRect &Rect, TOwnerDrawState State)
{
    ComboBox1->Canvas->FillRect(Rect);
    ComboBox1->Canvas->Brush->Color=Colors[Index];
    ComboBox1->Canvas->Rectangle(Rect.Left+1,Rect.Top+1,Rect.Right-1,Rect.Top+15);
    // 제가 만든 것
}
//------------------------------------------------------------------------
---
void __fastcall TForm1::ComboBox1Change(TObject *Sender)
{
  RichEdit1->SelAttributes->Color=Colors[ComboBox1->ItemIndex];
  RichEdit1->SetFocus(); //제가 만든 것
}
//------------------------------------------------------------------------
---

void __fastcall TForm1::RichEdit1SelectionChange(TObject *Sender)
{
  ComboBox1->Color->RichEdit1->SelAttributes->Color;
  // 제가 만든 것
}
//------------------------------------------------------------------------
---


+ -

관련 글 리스트
1305 [질문] 임펠리테리님 보세요./프포 jsk365 3748 1999/05/06
1306     [답변] JSK365/ 임펠리테리님 보세요./프포 박지훈.임프 3541 1999/05/06
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.