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
[29103] [질문] 챠트를 동적 생성 해서 챠트안테 글씨를 canvas로 넣을때 문제....
초짜 [] 1182 읽음    2004-03-20 09:48
챠트를 여러개 동적으로 생성했습니다..(물론 라인시리즈도 동적 생성)
각 챠트가 무슨 챠트인지 챠트안데 canvas로 글씨를 넣었는데, 글씨 앞오로 라인시리즈가
와야하는데, 글씨가 라인을 가리네요...
beforeDrawseries, beforeDrawAxis 다 썼는데, 안돼네요.
한 두개 정도는 라인시리즈 뒤에 글씨가 그려지는데요...
모든 챠트가 하나의 BeforeDrawSerise 이벤트를 사용하면 안돼나요??
좋은 방법 있음 꼭! 좀 알려주세요~

void __fastcall TFormGraph::CommonFontDraw(int nIndex)
{
    float yPos  = ( (Chart[nIndex]->ChartRect.Bottom
                   - Chart[nIndex]->ChartRect.Top ) /2 )
                   + Chart[nIndex]->ChartRect.Top;
    float xPos  = ( (Chart[nIndex]->ChartRect.Right
                   - Chart[nIndex]->ChartRect.Left ) / 2 )
                   + Chart[nIndex]->ChartRect.Left;

    if( ( Chart[nIndex]->ChartRect.Bottom
                                    - Chart[nIndex]->ChartRect.Top) <= 48 )
    {
        if( Chart[nIndex]->Width >= ((Chart[nIndex]->ChartRect.Bottom
                                          - Chart[nIndex]->ChartRect.Top ) / 3)*25 )
            Chart[nIndex]->Canvas->Font->Size =
                                    ( Chart[nIndex]->ChartRect.Bottom
                                    - Chart[nIndex]->ChartRect.Top ) / 3;
        else
            Chart[nIndex]->Canvas->Font->Size  = Chart[nIndex]->Width / 25;
    }
    else
    {
        if( Chart[nIndex]->Width >= 400 )
            Chart[nIndex]->Canvas->Font->Size  = 20;
        else
            Chart[nIndex]->Canvas->Font->Size  = Chart[nIndex]->Width / 25;
    }

    Chart[nIndex]->Canvas->Font->Name  = "Arial";
    Chart[nIndex]->Canvas->Font->Color = clGray;
    Chart[nIndex]->Canvas->Font->Style = TFontStyles()<< fsBold;

    Chart[nIndex]->Canvas->BackMode    = TRANSPARENT;
    unsigned oldalign = SetTextAlign(Chart[nIndex]->Canvas->Handle, TA_CENTER);
    Chart[nIndex]->Canvas->TextOutA(xPos
                          , yPos+(Chart[nIndex]->Canvas->Font->Height/2)
                          , g_szCommonParam[nIndex]);

    SetTextAlign(Chart[nIndex]->Canvas->Handle, oldalign);
    Chart[nIndex]->Canvas->BackMode = OPAQUE;
}
//---------------------------------------------------------------------------
void __fastcall TFormGraph::ChartBeforeDraw(TObject *Sender)
{
    for( int i = 0 ; i<CHART_CNT ; i++ )
    {
        if( g_PopupItemStatus.CHK_COMMON[i] ) // 동적 생성한 팝업메뉴의 아이템의 상태 bool형
        {
            ChartFontDraw(i);
        }
    }
}

+ -

관련 글 리스트
29103 [질문] 챠트를 동적 생성 해서 챠트안테 글씨를 canvas로 넣을때 문제.... 초짜 1182 2004/03/20
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.