Q&A
HOME
Tips & Tech
Q&A
Discuss
Download
자유게시판
홍보 / 광고
구인 / 구직
LOGIN
회원가입
String Grid에서 오른쪽 정렬을 할 수 없나요?
스트링그리드는 참 좋은 콤포넌트이긴 한데,
몇가지 안되는게 있는 것 같아요.
오른족 정렬을 하고 싶어요.
물론, 전부다가 아니라, 몇몇 칼럼은 왼쪽 정렬, 몇몇칼럼은 오른쪽 정렬 이렇게요.
칼럼마다 정렬을다르게 하고 싶은데...
방법이 있을까요..?
2
COMMENTS
버섯
•
2001.12.20 18:29
훈 wrote:
> 스트링그리드는 참 좋은 콤포넌트이긴 한데,
> 몇가지 안되는게 있는 것 같아요.
>
> 오른족 정렬을 하고 싶어요.
> 물론, 전부다가 아니라, 몇몇 칼럼은 왼쪽 정렬, 몇몇칼럼은 오른쪽 정렬 이렇게요.
>
> 칼럼마다 정렬을다르게 하고 싶은데...
>
> 방법이 있을까요..?
Ondrawcell 이라는 이벤트가 있습니다.
거기다가 임의로 그려넣어야 합니다..
예제는 여기 많이 있는데...
아래꺼 보고 참조하시길..
procedure TfrmMain.sgMemberDrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var
LeftPos: Integer;
TopPos : integer;
CellStr: string;
rr : TGridRect;
begin
TStringGrid(Sender).ColWidths[aCol] := fMember[aCol].ColumnWidth;
with TStringGrid(Sender).Canvas do
begin
CellStr := TStringGrid(Sender).Cells[ACol, ARow];
if aRow = 0 then CellStr := fMember[aCol].Title;
if (aCol <> 0) and (aRow <> 0) then
begin
Font.Color := fMember[aCol].FontColor;
Brush.Color := fMember[aCol].BackColor;
end;
TopPos := ((Rect.Top - Rect.Bottom -TStringGrid(Sender).Canvas.TextHeight(CellStr)) div 2) + Rect.Bottom;
if fMember[aCol].Alignment = taCenter then
begin
LeftPos := ((Rect.Right - Rect.Left - TStringGrid(Sender).Canvas.TextWidth(CellStr)) div 2) + Rect.Left;
end
else if fMember[aCol].Alignment = taLeftjustify then
begin
LeftPos := Rect.Left + 2;
end
else
begin
LeftPos := (Rect.Right - Rect.Left - TStringGrid(Sender).Canvas.TextWidth(CellStr)) + Rect.Left;
end;
if aRow = 0 then
LeftPos := ((Rect.Right - Rect.Left - TStringGrid(Sender).Canvas.TextWidth(CellStr)) div 2) + Rect.Left;
FillRect(Rect);
TextOut(LeftPos, TopPos, CellStr);
end;
end;
0
0
삭제
수정
댓글
훈
•
2001.12.20 18:54
버섯 wrote:
> 훈 wrote:
> > 스트링그리드는 참 좋은 콤포넌트이긴 한데,
> > 몇가지 안되는게 있는 것 같아요.
> >
> > 오른족 정렬을 하고 싶어요.
> > 물론, 전부다가 아니라, 몇몇 칼럼은 왼쪽 정렬, 몇몇칼럼은 오른쪽 정렬 이렇게요.
> >
> > 칼럼마다 정렬을다르게 하고 싶은데...
> >
> > 방법이 있을까요..?
>
> Ondrawcell 이라는 이벤트가 있습니다.
> 거기다가 임의로 그려넣어야 합니다..
> 예제는 여기 많이 있는데...
>
> 아래꺼 보고 참조하시길..
>
> procedure TfrmMain.sgMemberDrawCell(Sender: TObject; ACol, ARow: Integer;
> Rect: TRect; State: TGridDrawState);
> var
> LeftPos: Integer;
> TopPos : integer;
> CellStr: string;
> rr : TGridRect;
> begin
>
> TStringGrid(Sender).ColWidths[aCol] := fMember[aCol].ColumnWidth;
> with TStringGrid(Sender).Canvas do
> begin
> CellStr := TStringGrid(Sender).Cells[ACol, ARow];
> if aRow = 0 then CellStr := fMember[aCol].Title;
>
> if (aCol <> 0) and (aRow <> 0) then
> begin
> Font.Color := fMember[aCol].FontColor;
> Brush.Color := fMember[aCol].BackColor;
> end;
> TopPos := ((Rect.Top - Rect.Bottom -TStringGrid(Sender).Canvas.TextHeight(CellStr)) div 2) + Rect.Bottom;
>
> if fMember[aCol].Alignment = taCenter then
> begin
> LeftPos := ((Rect.Right - Rect.Left - TStringGrid(Sender).Canvas.TextWidth(CellStr)) div 2) + Rect.Left;
> end
> else if fMember[aCol].Alignment = taLeftjustify then
> begin
> LeftPos := Rect.Left + 2;
> end
> else
> begin
> LeftPos := (Rect.Right - Rect.Left - TStringGrid(Sender).Canvas.TextWidth(CellStr)) + Rect.Left;
> end;
>
> if aRow = 0 then
> LeftPos := ((Rect.Right - Rect.Left - TStringGrid(Sender).Canvas.TextWidth(CellStr)) div 2) + Rect.Left;
>
> FillRect(Rect);
> TextOut(LeftPos, TopPos, CellStr);
> end;
> end;
>
0
0
삭제
수정
댓글
(NOTICE) You must be
logged in
to comment on this post.
김영애
•
2001.12.20 19:23
1
COMMENTS
/
0
LIKES
DB를 네트워크로 공유를 잡아서 사용하고 싶습니다..
바보감자
•
2001.12.20 20:01
김영애 wrote: > 안녕하세요.. > 델파이를 사용하는 초보자입니다.. > 저는 델파이로 조회 프로그램을 ...
델초보
2001.12.20 19:15
0
COMMENTS
/
0
LIKES
ActiveX에서 특정 OS나 Explorer에서 문제점..
장민우
2001.12.20 19:09
0
COMMENTS
/
0
LIKES
MDB 화일 분할에 대해서 알구 계신부은~~~~
맑고투명
2001.12.20 07:10
0
COMMENTS
/
0
LIKES
엔터치면 죽는 이유 .. 꼭 부탁드립니다.
뜨리뷰
•
2001.12.20 07:11
2
COMMENTS
/
0
LIKES
트리뷰에 관한 질문입니다...
최용일
•
2001.12.20 19:09
function GetNodeByData(TreeView: TTreeview; Ptr: Pointer): TTreeNode; begin Result := TreeVi...
뜨리뷰
•
2001.12.20 19:46
최용일 wrote: > > function GetNodeByData(TreeView: TTreeview; Ptr: Pointer): TTreeNode; > begin ...
최경희
•
2001.12.20 06:40
1
COMMENTS
/
0
LIKES
해결에 도움주시면 사례해드리겠습니다.
쩌비
•
2001.12.20 06:55
지금 델파이6.0에 버그가 심각히 있는 것 같아요 저만 그런것이 아니네요. 헐.. 멀쩡한 소스가 에러...
이 호성
•
2001.12.20 05:18
1
COMMENTS
/
0
LIKES
chr함수에 관한 질문입니다.
쩌비
•
2001.12.20 07:01
방법이야 여러가지 있지않나요.. inttostr() inttohex() 뭐 여러가지 있지 않나요.. 질문내용을 잘못 ...
급급이
•
2001.12.20 04:50
1
COMMENTS
/
0
LIKES
DLL에서 필드값을 넘겨주고 싶은데요.. (급해서요.. 부탁^^)
민주사랑
•
2001.12.21 02:16
급급이 wrote: > 제가 하고자 하는 것은 Main폼에서 DB, Query를 올려 놓고, DLL에서는 폼에서 > DB, ...
김혜균
•
2001.12.20 04:25
1
COMMENTS
/
0
LIKES
DBGRID에서 하나의 필드를 (Y/N) combobox 형식으로 입력받으려면.
scryed
•
2001.12.27 01:48
안녕하십니까. 우선 dbgrid의 columns 속성을 선택하시면 그리드의 컬럼을 편집할 수 있는 창이 생깁니...
훈
•
2001.12.20 04:20
2
COMMENTS
/
0
LIKES
String Grid에서 오른쪽 정렬을 할 수 없나요?
스트링그리드는 참 좋은 콤포넌트이긴 한데, 몇가지 안되는게 있는 것 같아요. 오른족 정렬을 하고 싶어요. 물론, 전부다가 아니라, 몇몇 칼럼은 왼쪽 정렬, 몇몇칼럼은 오른쪽 정렬 이렇게요. 칼럼마다 정렬을다르게 하고 싶은데... 방법...
버섯
•
2001.12.20 18:29
훈 wrote: > 스트링그리드는 참 좋은 콤포넌트이긴 한데, > 몇가지 안되는게 있는 것 같아요. > > 오...
훈
•
2001.12.20 18:54
버섯 wrote: > 훈 wrote: > > 스트링그리드는 참 좋은 콤포넌트이긴 한데, > > 몇가지 안되는게 있는 것...
초보가
2001.12.20 03:59
0
COMMENTS
/
0
LIKES
질문)웹연동 하면할수록 힘이듭니다.
빙고
•
2001.12.20 03:50
1
COMMENTS
/
0
LIKES
다시 질문드립니다(jpg와 bmp)제발..
innover
•
2001.12.20 21:31
이렇게 해보세요. 단순히 구분만 하는것이라면 이렇게 하는게 속도나 메모리 사용면에서 괜찮을 것입니...
정운종
2001.12.20 03:45
0
COMMENTS
/
0
LIKES
초보입니다...답변꼭 주세요...
박선영
2001.12.20 03:20
0
COMMENTS
/
0
LIKES
gdb Open Error
궁금한것 물어보고 싶
•
2001.12.20 03:19
1
COMMENTS
/
0
LIKES
이런 경우도 있남요 ?? (0904 에러)
물어봤으나 추코없어
•
2001.12.23 02:59
이런 경우는 정말 없는가요 ?? 답변좀 해주세요... 궁금한것 물어보고 싶은이 wrote: > 환경: 델파이 ...
초보자
2001.12.20 03:17
0
COMMENTS
/
0
LIKES
리포트에서 DB의 메모형식을 QrDBText 줄바꿈?
Commom
•
2001.12.20 03:02
4
COMMENTS
/
0
LIKES
[또다른질문]DataModule 사용해서 하는데...문제점..
버섯
•
2001.12.20 03:08
Commom wrote: > 번거롭게 자꾸..질문을 올리게 되는군요..!! > 다름이 아니오라...!! > 계속 질문을 드...
Commom
•
2001.12.20 03:30
with 문을 사용하지 않으면 어떻게 Datamodule(Table) 연결해서 쓰죠..? 에러는 그 메세지가 맞구요.!! ...
최용일
•
2001.12.20 03:48
with문은 코딩을 편하게 하기 위해서 쓰는것일뿐, 쓰나 안쓰나 차이는 없구요... 그에러는 System유닛의...
Commom
•
2001.12.20 03:56
감사합니다...!!^^ 연말연시 잘보내시기 바랍니다..!!
파스칼
•
2001.12.20 02:48
4
COMMENTS
/
0
LIKES
함수 선언시! function 키워드 앞에 class가 붙는 이유
innover
•
2001.12.20 21:38
class function 이라는것은 인스턴스 없이도 실행이 가능한 펑션을 말합니다. 해당 클래스에 대한 일반적...
파스칼
•
2001.12.28 03:25
답변 주셔서 감사합니다.^^;; innover wrote: > class function 이라는것은 인스턴스 없이도 실행이 ...
이경문
•
2001.12.21 07:44
참고임돠. OOP에서는 meta class라고 하고 C++에서는 static이라는 예약어를 붙인답니다. java에서도 사...
파스칼
•
2001.12.28 03:58
답변 주셔서 감사합니다.^^;; 제가 델파이(파스칼)을 접한지 얼마 안되었습니다. ^^;; 참고로 java에...
이태근
•
2001.12.20 02:31
1
COMMENTS
/
0
LIKES
외부어셈모듈사용..
최용일
•
2001.12.20 02:45
안녕하세요. 최용일입니다. obj포멧만 맞는다면 링크해서 사용할수 있습니다... {$L AsmFuncs.OBJ} ...
델파이 초보자
•
2001.12.20 01:57
5
COMMENTS
/
0
LIKES
값넘겨 주기가 안돼네요
델파이 탐 크르즈
•
2001.12.20 02:31
델파이 초보자
•
2001.12.20 02:59
쩌비
•
2001.12.20 07:26
이 호성
•
2001.12.20 19:01
더벅이
•
2001.12.21 02:56
훈
2001/12/20 04:20
Views
227
Likes
0
Comments
2
Reports
0
Tag List
수정
삭제
목록으로
한델 로그인 하기
로그인 상태 유지
아직 회원이 아니세요? 가입하세요!
암호를 잊어버리셨나요?
> 스트링그리드는 참 좋은 콤포넌트이긴 한데,
> 몇가지 안되는게 있는 것 같아요.
>
> 오른족 정렬을 하고 싶어요.
> 물론, 전부다가 아니라, 몇몇 칼럼은 왼쪽 정렬, 몇몇칼럼은 오른쪽 정렬 이렇게요.
>
> 칼럼마다 정렬을다르게 하고 싶은데...
>
> 방법이 있을까요..?
Ondrawcell 이라는 이벤트가 있습니다.
거기다가 임의로 그려넣어야 합니다..
예제는 여기 많이 있는데...
아래꺼 보고 참조하시길..
procedure TfrmMain.sgMemberDrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var
LeftPos: Integer;
TopPos : integer;
CellStr: string;
rr : TGridRect;
begin
TStringGrid(Sender).ColWidths[aCol] := fMember[aCol].ColumnWidth;
with TStringGrid(Sender).Canvas do
begin
CellStr := TStringGrid(Sender).Cells[ACol, ARow];
if aRow = 0 then CellStr := fMember[aCol].Title;
if (aCol <> 0) and (aRow <> 0) then
begin
Font.Color := fMember[aCol].FontColor;
Brush.Color := fMember[aCol].BackColor;
end;
TopPos := ((Rect.Top - Rect.Bottom -TStringGrid(Sender).Canvas.TextHeight(CellStr)) div 2) + Rect.Bottom;
if fMember[aCol].Alignment = taCenter then
begin
LeftPos := ((Rect.Right - Rect.Left - TStringGrid(Sender).Canvas.TextWidth(CellStr)) div 2) + Rect.Left;
end
else if fMember[aCol].Alignment = taLeftjustify then
begin
LeftPos := Rect.Left + 2;
end
else
begin
LeftPos := (Rect.Right - Rect.Left - TStringGrid(Sender).Canvas.TextWidth(CellStr)) + Rect.Left;
end;
if aRow = 0 then
LeftPos := ((Rect.Right - Rect.Left - TStringGrid(Sender).Canvas.TextWidth(CellStr)) div 2) + Rect.Left;
FillRect(Rect);
TextOut(LeftPos, TopPos, CellStr);
end;
end;