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
[46496] 초보)StringGrid 셀 한 Row에 줄긋기나 특정 셀 색깔 변화 시키기
이승현 [] 1455 읽음    2006-09-11 08:18
일전에 임프님이 올려주신 StringGrid 컴포넌트를 사용중입니다.
현재 마우스 오른쪽 버튼을 눌러서 팝업창을 생성 시킨 후,
삭제라는 것을 클릭하면 그 해당 Row 한 줄이 중간에 줄이 좌악 거지거나,
아니면 특정 셀의 색깔이 빨간색으로 변하면서(글씨도 괜찮고, 셀 자체도 괜찮습니다)
삭제된걸 표시해주는 프로그래밍을 해보려고 합니다.

사실, 원래 C에서 지원해주는 StringGrid에서 그것을 지원하는지도 잘 모르겠고,
특히 임프님이 만들어주신 컴포넌트에도 그것이 있는지 잘 모르겠더군요.
혹시 이것이 가능하다면 자세히 설명 좀 부탁드리겠습니다.

추가적으로...

지금은 한 Row에 1번부터 10번이 있으면
1번을 보내고, 2번을 보내고, 3번을 보내고 이렇게 각 Col의 데이터를 하나씩 보내게 되어있습니다.
보내진 데이터는 리스트박스에 일단 들어간 후, 서버에 있는 그리드에 각기 분배되게 되어있지요.
개선사항으로, 1번부터 10번까지 데이터를 한꺼번에 보내고, 그 데이터를 잘라서 개시될 수 있다면
데이터 전송 속도가 비약적으로 상승할것이라 기대 되지만....
제가 워낙 초짜라서 어떻게 하는지 잘 모르겠습니다.

지금 제가 하고 있는 프로그래밍 소스입니다.


void __fastcall TF1::senTimer(TObject *Sender)
{
  AnsiString Srt = S->Cells[q][w];                //Srt에 셀의 데이터를 넣어 줌(q와 w는 이미 정수선언이 되어있음)

  cs1->Socket->SendText(Srt);                    //서버에 Srt 데이터를 전송

  if ( q < S->ColCount )                    //그리드의 col이 ColCount보다 적으면 시작
     {
     q = q + 1;                            //q에 +1
     exit->Enabled = false;
     U1->Enabled = false;
     D1->Enabled = false;
     re->Enabled = false;
     insert->Enabled = false;                    //이건 전송중에는 종료 및 수정 등을 막아주는 소스;

     sb->Panels->Items[3]->Text = "데이터 전송중... 종료시 서버에서 오류가 발생됩니다.";
     }

  if ( q == S->ColCount )
     {
      q = 0;
      w = w + 1;
     }                                //Col이 Colcount면, Row를 에 +1

  if ( w == S->RowCount )
     {
        cs1->Socket->SendText("END");                //서버에 END문자를 보내주면서, 서버는 데이터 전송이 끝났다고 인식.

        sen->Enabled = false;

        exit->Enabled = true;
        U1->Enabled = true;
        D1->Enabled = true;
        re->Enabled = true;
        insert->Enabled = true;                    //막혔던 오브젝트를 다시 뚫어줌.

        sb->Panels->Items[3]->Text = "데이터 전송 완료.";
     }
}


이 코드를 어떻게 바꿔야 한 줄의 데이터가 주욱 넘어갈런지...
보내주는 데이터 한 줄 사이에 !를 추가해서, 서버에서 !는 빼고 집어넣는다, 라는걸 해야 할 듯 싶은데
(예를 들어 1!2!3!4 식으로)
설사 이걸 보내준다고 해도, 서버에서 이떻게 쪼개줘야 하는지 참 애매합니다.

프로그래밍은 말로는 "서버에서 이렇게 하면 되겠지" 라고 하는데, 직접 코딩이 힘들더군요;
아는 프로그래머 분은 "그걸 잘하는 사람이 조낸 일류 프로그래머야." 라고 하는데 전 멀었나 봅니다;

+ -

관련 글 리스트
46496 초보)StringGrid 셀 한 Row에 줄긋기나 특정 셀 색깔 변화 시키기 이승현 1455 2006/09/11
46497     Re:초보)StringGrid 셀 한 Row에 줄긋기나 특정 셀 색깔 변화 시키기 장성호 2900 2006/09/11
46500         재질문 드립니다 이승현 1036 2006/09/11
46502             Re:재질문 드립니다 장성호 1111 2006/09/11
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.