Q&A

  • Chart.. X,Y축 Label이 건너띄지 않게 보이게 하려면 어떻게..??
안녕하세요.
Tchart에서요 X,Y축 label이 범위가 많을때는 Tchart가 임의로 띄엄띄엄 보이게 하자나요..  가령.. Y축의 minimum=0, maximum=100, increament=1
이런조건일때 실제 y축 label이 보여지는건..  0,10,20....100  이런식으로
보여지게 되자나요. 공간이 없을때 글자 겹침을 방지하기 위해서 chart에서
자동으로 그렇게 보여지게 하는듯 한데요..  
이걸 label값을 전부다 보이게 하는 방법이 없나요?
물론 label의 축간 간격은 고정을 한 상태에서 스크롤을 하는식으로...
고수님들에 도움 부탁드립니다.  꾸뻑..
3  COMMENTS
  • Profile
    j2h2000 2002.08.15 03:03

    Chart탭 하위에 Axis탭에서
    좌특의 라디오 버튼중 Bottom을 선택하고
    Labels탭에 있는
    Min. Separation을 0으로 주면 Label의 간격이 없어집니다...^^

    만일 글자 겹침을 없애려고 한다면 Label을 두줄로 그리면 되겠죠...

    그리고,
    이 문장은 제가 무슨말인지 제가 잘 모르겠네요...

  • Profile
    전병호 2002.08.16 20:57
    답변 감사합니다..
    근데..  염치불구하구 좀더 여쭙겠슴다. ^^
    label style를 text를 사용했습니다.
    근데 label이 두줄로 나오게 하려면 어떻게 해야되죠??
    multi line이란 check 옵션이 있어서 체그해봤는데요.. 안됩니다..
    자동으로 그냥 언체크드 상태로 돌아가거든요.
    글구.. 라벨과 라벨사이 간격은 고정으로.. 하구요.. 물론 글자 겹침땜에..
    그리드처럼 범위가 넘어가면 스크롤바로 스크롤 할수 있는 방법은 없나요?
    bottom axis의 범위가 워낙 넓기 때문에..  라벨을 두줄로 보여준다구 해도 한계가 있기 때문에 스크롤을 하구 싶은데요..  
    그런 기능이 있음 좀 알려주세요.  감사합니다.




  • Profile
    j2h2000 2002.08.17 00:07

    ^^~~~
    1. X축 라벨을 위, 아래 지그재그로 Display하기.
       조회된 데이타 셋을 Loop 돌며 AddXY()로 그린다.
      
       형식)
       AddXY(X Value, Y Value, X Label, Color)
      
       예)
       AddXY(1, 153, #13+'영남지사');
      
       홀수번째는 Label을 그냥 그리고
       짝수번째는 #13을 붙여서 그리면 되겠죠.
      
       또는 응용하면 3줄도 되겠구요,
       전부 #13을 붙이면 Label모두 2줄로 나오겠네요.

      ※ Labels Style은 Auto로 해주세요.
      
       예)
       procedure TFormCP0Q3020.DrawGraph;
       var
       i : Integer;
       sCentrNm: String;
       begin
         //조회전 CLEAR
         Series1.Clear;
         Series2.Clear;
      
         dsGrid1.DataSet.DisableControls;
      
         tdsColumn.First;
      
         for i := 1 to tdsColumn.RecordCount do begin  //지사의 수만큼
      
           if (i mod 2) = 1 then begin                 //홀수칼럼지사
             sCentrNm := tdsColumnSTRING1.AsString;           //윗줄        
           end
           else begin
             sCentrNm := #13+tdsColumnSTRING1.AsString;//아랫줄
           end;
      
           With dsGrid1.DataSet do begin
             if IsEmpty then begin
               Series1.AddXY( i , 0 , sCentrNm);
             end
             else begin
               Series1.AddXY( i , FieldByName('DOUBLE1').AsFloat , sCentrNm);
             end;
           end;
      
           tdsColumn.Next;
         end;
      
         dsGrid1.DataSet.EnableControls;
       end;

    2. X축이 넓을 경우 좌우 스크롤 하기
       이건 저도 잘 모르겠는네요. 불가능한지, 제가 모르는건지.
       근데 찾다 보니깐,
      
       Chart탭 하위에 Paging탭에
       한 화면에 보이고자 하는 X갯수를 Points per Page에 입력하고,
       화면에 버튼 2개를 추가하여
      
       procedure TFormCS2Q0099.Button1Click(Sender: TObject);
       begin
       inherited;
         DBChart1.NextPage;
       end;
      
       procedure TFormCS2Q0099.Button2Click(Sender: TObject);
       begin
       inherited;
         DBChart1.PreviousPage;
       end;  
      
       이렇게 하면 되나요?