Q&A

  • 6개의 StringGrid를 정렬하니깐 코딩이 너무 길어집니다.짧게하는 방법좀 갈켜주세요


StringGrid의 내용을 정렬했습니다.각각 col을 가운데,오른쪽으로

DrawCell이벤트를 이용했어요~ 되긴되는데....

StringGrid가 6개나 되거든요~ 코딩이 무지 길어져서 줄일려고 하는데...

그래서 함수를 하나 만들어 썼는데 TComponent를 써서 Grid이름만 바꿨죠!

그런데 아래의 동일한 코딩의 Rect,ACol,ARow등등에서 Error가 발생하는데요~

아시는 고수분 좀 갈켜 주세요~ please~~



----------------------------------------------------동일 코딩부문

StringGrid6.Canvas.FillRect(Rect);

Lens := StringGrid6.Canvas.TextWidth(StringGrid6.Cells[ACol,ARow]);

StringGrid6.Canvas.TextOut((Rect.Left + Rect.Right - lens) div 2, Rect.Top + 2,

StringGrid6.Cells[ACol,ARow]);

---------------------------------------------------------------



2  COMMENTS
  • Profile
    김태훈 2001.02.08 06:09
    Rect, ACol, ARow등등에도 StringGrid6을 앞에 붙혀 줘야합니다.

    그리고 파라미터로 넘어오는 sender object를 바로 캐스팅해서 사용하면 훨씬 더 낫습니다.

    즉, TStringGrid(Sender).Rect,TStringGrid(Sender).ACol,TStringGrid(Sender).ARow 처럼 사용하세요.



  • Profile
    hyo 2001.02.08 20:05
    에러메시지: Undeclared identifier: 'ARow'

    Undeclared identifier: 'ARow'

    Undeclared identifier: 'Rect'



    님이 하라는 대로 했는데 그래도 위와 같은 에러가 발생해요.

    뭐가 잘 못된 거죠??

    ----------------------------------------------------이렇게 했거든요~



    Procedure TfrmBONBONG.SGSort(GridName:TComponent);

    var Lens : integer;

    begin



    with TStringGrid(GridName) do begin

    if (ACol = 0 ) then

    begin

    if(ARow > 0) then

    Canvas.FillRect(Rect);

    Lens:= GridName.Canvas.TextWidth(StringGrid1.Cells[ACol,ARow]);

    :

    :