Q&A

  • 스트링 그리드에서 원하는 셀의 텍스트를 정렬하는 방법좀..
안녕하세요.

스트링 그리드에서 각 셀에 스트링을 넣으면 모두 왼쪽으로 정렬이 되거든요..

이걸 자기가 원하는 셀만 골라서 가운데 정렬이나 오른쪽 정렬로 바꿀수 있는지요?

바꾸는게 가능하다면 방법좀 가르켜 주시면 감사하겠습니다..

그럼 즐거운 하루 되세요..

3  COMMENTS
  • Profile
    조규춘 2000.12.01 04:43
    허리띠 wrote:

    > 안녕하세요.

    > 스트링 그리드에서 각 셀에 스트링을 넣으면 모두 왼쪽으로 정렬이 되거든요..

    > 이걸 자기가 원하는 셀만 골라서 가운데 정렬이나 오른쪽 정렬로 바꿀수 있는지요?

    > 바꾸는게 가능하다면 방법좀 가르켜 주시면 감사하겠습니다..

    > 그럼 즐거운 하루 되세요..



    어린왕자님..

    하시던 작업 잘 끝났는지 모르겠군요 ^^

    잘 되야 할텐데...



    procedure TForm1.StringGrid1DrawCell(Sender: TObject; Col, Row: Integer;

    Rect: TRect; State: TGridDrawState);

    var

    OldAlign: Word;

    begin

    OldAlign := SetTextAlign(StringGrid1.Canvas.Handle, ta_Center);

    StringGrid1.Canvas.TextRect(Rect, (Rect.Right + Rect.Left) div 2, Rect.Top + 2, StringGrid1.Cells[Col, Row]);

    SetTextAlign(StringGrid1.Canvas.Handle, OldAlign);

    end;

  • Profile
    어린왕자 2000.12.01 03:07
    허리띠 wrote:

    > 안녕하세요.

    > 스트링 그리드에서 각 셀에 스트링을 넣으면 모두 왼쪽으로 정렬이 되거든요..

    > 이걸 자기가 원하는 셀만 골라서 가운데 정렬이나 오른쪽 정렬로 바꿀수 있는지요?

    > 바꾸는게 가능하다면 방법좀 가르켜 주시면 감사하겠습니다..

    > 그럼 즐거운 하루 되세요..



    procedure TReportForm.StringGrid1DrawCell(Sender: TObject; ACol,

    ARow: Integer; Rect: TRect; State: TGridDrawState);

    var

    LeftPos: Integer;

    CellStr: string;

    begin

    with TStringGrid(Sender).Canvas do

    begin

    CellStr := TStringGrid(Sender).Cells[ACol, ARow];



    if ACol=0 then begin // 첫번째 고정된칼럼이면

    LeftPos := ((Rect.Right - Rect.Left -TStringGrid(Sender).Canvas.TextWidth(CellStr)) div 2) + Rect.Left; //가운데로 좌표잡기

    TStringGrid(Sender).Canvas.Font.Style := [fsBold]; // 글자체를 굵게

    end;

    else begin

    LeftPos:=Rect.Left+5; // 그외는 왼쪽여백 5...

    TStringGrid(Sender).Canvas.Font.Style := [];

    end;



    FillRect(Rect);

    TextOut(LeftPos,((Rect.Top - Rect.bottom-TStringGrid(Sender).Canvas.TextHeight(CellStr)) div 2)+Rect.bottom, CellStr); // 가운데로 글자그리기

    end;



    end;

    해보셔요..된가..

  • Profile
    어린왕자 2000.12.01 03:01
    허리띠 wrote:

    > 안녕하세요.

    > 스트링 그리드에서 각 셀에 스트링을 넣으면 모두 왼쪽으로 정렬이 되거든요..

    > 이걸 자기가 원하는 셀만 골라서 가운데 정렬이나 오른쪽 정렬로 바꿀수 있는지요?

    > 바꾸는게 가능하다면 방법좀 가르켜 주시면 감사하겠습니다..

    > 그럼 즐거운 하루 되세요..



    안녕하세요..영원한 델초보 어린왕자입니다..



    Drawitem이벤트 핸들러인가? 그것을 잘 요리하시면 되는데..

    잠깐만 기다리세요..저가 쓰던거 고대로 붙여드릴께요..