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
[10228] Re:Re:Re:[질문] 다시 질문 드립니다...
경호 [ansoni19] 837 읽음    2001-08-23 12:53
보연님 안녕하세요 경호입니다.
음 값이 재대로 안들어 간다는 것이 스트링 그리드의 셀에 값들이
안들어 간다는 것이지요. 아래의 소스 부분을 보면 그리드의 모든 셀들이 같은
값을 표시하는 것은 당연합니다. 추가하신 for문에서 그리 처리되도록 하셨더군요



for(i=0; i<len; i++) {
  if(ch[i]<0x10 || ch[i]>0x7f)
  {
  sprintf(tmp2, "퍼센트 엑스", ch[i]);   //  <- 이 부분 때문에 안 올려지는 것 같아
  strcat(tmp, tmp2);                     // '퍼센트 엑스'이라고 썼습니다. 
  }
  else {
       sprintf(tmp2, "퍼센트 씨", ch[i]); // <- 이 부분도 마찬가지...
       strcat(tmp, tmp2);
  }
:
: //----------------------------------------------- 여기부터 ~
:
:     for(int y=1; y<17; y++)
:       for(int x=1; x<4; x++)
:         StringGrid1->Cells[x][y]=IntToStr(ch[i]);
:
: //------------------------------------ 여기까지가 제가 넣은 부분이에요.

}

==> for문안에서 다시 for문이 돌면서 무조건 처음의 셀부터 마지막 셀까지
해당하는 ch[i]값을 집어넣구 있군요 ^^ 그럼
for(int y=1; y<17; y++)
:       for(int x=1; x<4; x++)
:         StringGrid1->Cells[x][y]=IntToStr(ch[i]);
에서 ch[i]값은 변하지 않는 하나의 값이겠죠 ^^

그러므로 님이 하시고 싶은 일을 하실려면
StringGrid1->Cells[i/17+1][i%17+1]=IntToStr(ch[i]);
하시면 원하는 셀에 들어갈거예요 ...  당근 for문은 없에시고요...

==> 음 그런데 여기서 이렇게 하면 한번밖에 못볼텐데 쩝 괜찮으신 것인지
여러프레임을 계속 받는다면 소스의 수정이 불가피 하겠죠...
스트링 그리드의 전체셀이 다 차면 저장하고 클리어 하는 루틴여 ^^


:   if(PrivMsg.Length() + strlen(tmp) > 400)
:     PrivMsg = PrivMsg.SubString(PrivMsg.Length() -
:                  (400 - strlen(tmp)), 400 - strlen(tmp));
:
:   PrivMsg = PrivMsg + AnsiString(tmp);
:   edtReceived->Text = PrivMsg;

==> 이부분은 받은 메세지의 길이와 저장한 메세지의 길이를 더해서 일정한
크기가 넘으면 메세지의 크기를 조정해서 일정한 간격으로 자르기 위한 루틴입니다.
즉 줄맞춤을 위한 부분이지요...
PrivMsg = PrivMsg.SubString(PrivMsg.Length() -
:                  (400 - strlen(tmp)), 400 - strlen(tmp));
==> 부분은 헬프를 찾아보시면 알겠지만 원하는 스트링의 해당부분의 포인터를
가져오는 부분이랍니다. 그래서 원하는 위치에서 부터 스트링을 잘라가지고
올수 있지요...

음 도움이 되셨나 모르겠네요 ...
하시다가 모르시는게 있으시면 리플달아 주세요 ^^

+ -

관련 글 리스트
10185 [질문] 포트로부터 전송받은 데이터를 스트링그리드에 나타내려면... 박보연 828 2001/08/22
10197     Re:[질문] 포트로부터 전송받은 데이터를 스트링그리드에 나타내려면... 경호 863 2001/08/22
10226         Re:Re:[질문] 다시 질문 드립니다... 박보연 912 2001/08/23
10228             Re:Re:Re:[질문] 다시 질문 드립니다... 경호 837 2001/08/23
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.