스트링그리드에 수량이랑.. 비용이랑 여러것이 나오는데.. 모두 셀의 왼쪽에
붙어서 나오기 때문에 보기가 힘들어요..
이 데이타들을 셀의 오른쪽으로 정렬시키는 방법 좀 없을까요..
초보라서 워낙에 제주가 없어서요.. 꼭 좀 부탁드립니다.
제가 현재 만든 소스를 올려드릴께요.. 여기에 어떻게 추가를 하면 될지 알려주세요..
Sgrid.Cells[1,4]:=FormatFloat('#,###.00000',fieldbyname('gravity').AsFloat);
Sgrid.Cells[1,5]:=FormatFloat('#,###.00000',fieldbyname('limitqty').AsFloat);
Sgrid.Cells[2,6]:=FormatFloat('#,###',fieldbyname('softcost').AsFloat); Sgrid.Cells[2,7]:=FormatFloat('#,###',fieldbynam('hardcost').AsFloat);
참.. 이 포맷형식이 맞는지도 좀 알려주세요.. 'Format데이타형' 과 맨뒤의 AS데이타형'
이 일치를 해야하는 건가요..
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Grids, StdCtrls;
type
TForm1 = class(TForm)
StringGrid1: TStringGrid;
RB_Left: TRadioButton;
RB_Center: TRadioButton;
RB_Right: TRadioButton;
procedure StringGrid1DrawCell(Sender: TObject; Col, Row: Integer;
Rect: TRect; State: TGridDrawState);
procedure FormActivate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure AllAlignClick(Sender: TObject);
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
// StringGrid의 DefaultDrawing 프로퍼티는 True 로 하세요
procedure TForm1.StringGrid1DrawCell(Sender: TObject; Col, Row: Integer;
Rect: TRect; State: TGridDrawState);
var
TW: integer;
begin
with StringGrid1.Canvas do
begin
FillRect(Rect);
TW := TextWidth(StringGrid1.Cells[Col, Row]);
if RB_Right.Checked then // 오른쪽
TextOut(Rect.Right - TW - 2, Rect.Top+2, StringGrid1.Cells[Col,Row])
else if RB_Center.Checked then // 중앙
TextOut((Rect.Left + Rect.Right - TW) div 2, Rect.Top+2, StringGrid1.Cells[Col,Row])
else // 왼쪽
TextOut(Rect.Left+2, Rect.Top+2, StringGrid1.Cells[Col,Row])
end;
end;
procedure TForm1.AllAlignClick(Sender: TObject);
begin
// 정렬이 변경되어 다시 그린다
StringGrid1.RePaint;
end;
procedure TForm1.FormActivate(Sender: TObject);
begin
// 예제 자료
StringGrid1.Cells[1,1] := '1';
StringGrid1.Cells[1,2] := '2';
StringGrid1.Cells[1,3] := '3';
// 세개의 RadioButton 에 click 이벤트 지정
RB_Left.OnClick := AllAlignClick;
RB_Center.OnClick := AllAlignClick;
RB_Right.OnClick := AllAlignClick;
end;
end.