Q&A

  • StringGrid와 TextOut
안녕하세요?

스트링그리드의 셀 색을 바꾸고 문자를 출력하려고 다음과 같은 코드를 만들었읍니다.

<!--CodeS-->
procedure TForm1.FormCreate(Sender: TObject);
begin
  StringGrid1.Cells[1, 1] := '1';
end;

procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
begin
  StringGrid1.Canvas.Brush.Color := clBtnFace;
  StringGrid1.Canvas.FillRect(Rect);
  StringGrid1.Canvas.Font.Color := clBlack;
  StringGrid1.Canvas.TextOut(Rect.Left, Rect.Top, StringGrid1.Cells[acol, arow]);
end;
<!--CodeE-->

셀의 색을 바꾸기 전과 달리 텍스트아웃을 이용하여 문자 출력을 위한 좌표를 입력해야 하는데요.
예제들을 한참 찾아 봐도 위의 것이 제일 단순화된 것 같지만 셀의 색을 바꾸면 위와 같이 문자 출력 좌표를 제어해야 하는 불편을 감수하는 것이 불가피한 것인지 의문이 생겨서 이렇게 글을 올립니다.

그럼 이만.
1  COMMENTS
  • Profile
    최용일 2007.06.02 10:29
    네... 불편을 감수하셔야 합니다.  이게 정석적인 방법입니다. TStringGrid뿐만 아니라 모든 컨트롤들이 이런식으로 화면에 자신의 모양을 표시합니다. 물론 표준적인 모양만으로 만족하신다면 이런 제어를 전혀 알 필요가 없지만...

    써드 파티 컴포넌트중에는 이러한것들도 속성이나 메소드로 쉽게 제어 할 수 있도록 되어 있는 것들도 있겠지만 입맛에 맞는것을 찾기가 쉽지 않죠...

    • 손호용
    • 2007.06.04 17:00
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 이영주
    • 2007.06.02 15:59
    • 2 COMMENTS
    • /
    • 0 LIKES
    • jj
      2007.06.03 00:01
      안녕하세요~~~ 제가 현재 사용하고 있는 스케줄러용 셀 실행 프로그램중의 명령어 입니다.  ...
    • 이영주
      2007.06.03 09:52
      제가 한것과 그리 다른것은 없군요. 근데 왜 안될까요? abc.exe 등은 아주 자~알 실행되는데 배치파...
    • 최명화
    • 2007.06.02 06:17
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2007.06.02 10:29
      네... 불편을 감수하셔야 합니다.  이게 정석적인 방법입니다. TStringGrid뿐만 아니라 모든 컨...
    • 송지훈
    • 2007.06.01 20:31
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2007.06.02 10:33
      안녕하세요. 최용일입니다. 비교를 할려면 다운을 받아야 하죠... 다운받았는데 같은 파일이면... 대략...
    • 이원규
    • 2007.06.01 08:19
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2007.06.01 18:45
      문법적인 오류입니다... Unit19 in 'Unit19.pas' {Form19}, ==> Unit19 in 'Unit19.pas' {Form...
    • 이원규
      2007.06.02 06:08
    • coolkkm
    • 2007.06.01 03:20
    • 1 COMMENTS
    • /
    • 0 LIKES
    • aiman
      2007.06.01 06:44
      FindFirst, FindNext, FindClose 함수를 이용하세요,,, 아래는 사용예제입니다.^^ procedure TForm...
    • 권순오
    • 2007.06.01 01:52
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 손희성
      2007.06.01 02:21
      음.. 초보입니다. 그래도 제생각을 올려보죠. 우선 richedit1 내용을 sTemp라는 곳에 담고 시작하...
    • 권순오
      2007.06.01 02:48
      안녕하세요...답변주셔서 정말 감사합니다. 그런데, 제가 처리해야할 문제는 richedit1의 &nbs...
    • 배봉기
    • 2007.05.31 21:13
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 손희성
      2007.06.01 01:39
      잘 찾아보면 그런 컴포넌트가 있을 수도 있겠지만 button Event로 Form Size를 변경하면 같은 느낌이 ...
    • 손희성
      2007.06.01 01:37
      저도 초보이긴 한데요. 제가 보기엔 // 맞은수와 틀린수를 배열값에 ... For i := 1 to StringGr...
    • 김윤수
      2007.06.01 02:56
      아직 잘 이해를 못했습니다..;        aTempT[i], aTempF[i] 이걸 변수선...
    • 손희성
      2007.06.01 04:24
      물론 배열 변수로 선언해야 합니다. 배열(array) 선언 하시고 aTempT[i] <-- 값넣는 부분에 a...
    • 김윤수
      2007.06.02 09:16
      그럼 여기서 스트링 그리드2로 어떻게 넣죠?? for i :=1 to cnt do begin    Form2.StringGri...
    • 한경수
    • 2007.05.30 19:57
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 정락문
      2007.06.21 02:30
      AdvStringGrid에는 MergeCells 이라는 함수가 있습니다. 이것을 잘 활용하시면 됩니다. www.tmssoftwa...
    • 유미연
    • 2007.05.29 23:49
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 김경식
    • 2007.05.29 21:05
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 착한천사
      2007.05.30 04:21
      아직 database에서 질의(query)를 위한 접속+준비단계+SQL 및 컴포넌트 접속 혹은 연결 interface에 대해...
    • 최용일
      2007.05.29 22:48
      table_name이란 테이블이 디비에 존재하기는 한가요? 이것부터 먼저 확인해보세요.
    • 김성현
    • 2007.05.29 07:38
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 김경식
    • 2007.05.29 06:42
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 박홍재
      2007.05.29 09:38
      어떤 식으로 구성을 생각하시는 지 모르겠습니다. 일단 아래의 소스로 보면 ssql이라는 변수에 어떤 값도 ...
    • 김정호
    • 2007.05.28 21:03
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2007.05.28 22:10
      안녕하세요. 최용일입니다. 시간관련 함수가 없는 컴파일러는 거의 없습니다... GetTime, SetTime, N...
    • 손희성
      2007.06.01 01:49
      ^^  초보이긴한데... 시간관련 함수라서 다들 아시는데요이겠지만 서버에서 데이터를 가...
    • 최용일
      2007.05.28 22:09
      안녕하세요. 최용일입니다. 그냥 간단히 TIdHttp.Get이나 TIdHttp.Put메소드를 이용해서 서버의 파일을 ...
    • 칼장수
    • 2007.05.26 19:22
    • 3 COMMENTS
    • /
    • 0 LIKES
    • aiman
      2007.05.29 05:35
      잘못업데이트 하신게 아니고, 9.0x 번젼에서 MaxLineAction  property가 없어진 것입니다. ...
    • 칼장수
      2007.05.29 23:12
      답변 감사드립니다. 9.X 버젼으로 가면서 MaxLineAction 프로퍼티가 없어진 졌다는 말씀이죠. 그러면 업...
    • aiman
      2007.05.31 00:24
      정확한 답변을 위해^^ 저도 님과 같은 indy 9.018을 설치 해보았습니다. 9.018 버젼에서 MaxLineAc...