Q&A
HOME
Tips & Tech
Q&A
Discuss
Download
자유게시판
홍보 / 광고
구인 / 구직
LOGIN
회원가입
스트링그리드에서 Cell 합치기
스트링그리드에서 2개 이상의 Cell을 병합 할 수 있나요...
쉽게 말해 엑셀이나, 아래 한글에서의 표처럼 사용할 수 있나요..?
방법이 있으면 좀 알려 주세요...
패널로 덮어서 해볼려 했지만 Fixed Cell과 Scroll 분제 때문에 안되더군요...
2
COMMENTS
구창민
•
2000.04.04 01:41
Red wrote:
> 스트링그리드에서 2개 이상의 Cell을 병합 할 수 있나요...
>
> 쉽게 말해 엑셀이나, 아래 한글에서의 표처럼 사용할 수 있나요..?
>
> 방법이 있으면 좀 알려 주세요...
>
> 패널로 덮어서 해볼려 했지만 Fixed Cell과 Scroll 분제 때문에 안되더군요...
>
>
안녕하세요~ 구창민입니다.
좀처럼 찾기 어렵더군요.
뉴스그룹에서 뒤져보았더니 대부분의 답변이
"지원하지 않으니 써드파티 컴포넌트를 뒤져보아라"라는 내용들이군요.
슈퍼페이지에서 뒤지면 있기야 하겠지요.
암튼, 그중에 한가지 찾은게 있는데 테스트 해보니 일단 되기는 합니다.
아래 코드들을 좀 수정하셔서 마음에 드시게 고쳐쓰세요.
그럼~ 즐거운 프로그래밍 하시길~
procedure TForm1.FormCreate(Sender: TObject);
var
i, k: Integer;
begin
with StringGrid1 do
begin
Cells[1, 1] := '첫번째 셀부터 4번째 셀까지, 셀을 합쳐보지요.';
for i:= 1 to ColCount-1 do
for k:= 2 to RowCount -1 do
Cells[i,k] := Format( 'Cell[%d,%d]',[i,k]);
end;
end;
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var
i, x, y: Integer;
begin
If gdFixed In State Then Exit;
If ARow > 1 Then Exit;
with Sender as TStringGrid do
begin
If aCol < Pred(ColCount) Then
Rect.Right := Rect.Right + GridlineWidth;
y:= Rect.Top + 2;
x:= Rect.Left + 2;
for i:= 1 to aCol-1 do
x:= x - ColWidths[i] - GridlineWidth;
Canvas.Brush.Color := $7FFFFF;
Canvas.Brush.Style := bsSolid;
Canvas.FillRect( Rect );
Canvas.TextRect( Rect, x, y, Cells[1,1] );
end;
end;
end.
0
0
삭제
수정
댓글
Red
•
2000.04.04 02:23
구창민 wrote:
> Red wrote:
> > 스트링그리드에서 2개 이상의 Cell을 병합 할 수 있나요...
> >
> > 쉽게 말해 엑셀이나, 아래 한글에서의 표처럼 사용할 수 있나요..?
> >
> > 방법이 있으면 좀 알려 주세요...
> >
> > 패널로 덮어서 해볼려 했지만 Fixed Cell과 Scroll 분제 때문에 안되더군요...
> >
> >
>
>
> 안녕하세요~ 구창민입니다.
>
> 좀처럼 찾기 어렵더군요.
>
> 뉴스그룹에서 뒤져보았더니 대부분의 답변이
> "지원하지 않으니 써드파티 컴포넌트를 뒤져보아라"라는 내용들이군요.
> 슈퍼페이지에서 뒤지면 있기야 하겠지요.
>
> 암튼, 그중에 한가지 찾은게 있는데 테스트 해보니 일단 되기는 합니다.
> 아래 코드들을 좀 수정하셔서 마음에 드시게 고쳐쓰세요.
>
> 그럼~ 즐거운 프로그래밍 하시길~
>
>
> procedure TForm1.FormCreate(Sender: TObject);
> var
> i, k: Integer;
> begin
> with StringGrid1 do
> begin
> Cells[1, 1] := '첫번째 셀부터 4번째 셀까지, 셀을 합쳐보지요.';
> for i:= 1 to ColCount-1 do
> for k:= 2 to RowCount -1 do
> Cells[i,k] := Format( 'Cell[%d,%d]',[i,k]);
> end;
> end;
>
>
>
> procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
> Rect: TRect; State: TGridDrawState);
> var
> i, x, y: Integer;
> begin
> If gdFixed In State Then Exit;
> If ARow > 1 Then Exit;
>
> with Sender as TStringGrid do
> begin
> If aCol < Pred(ColCount) Then
> Rect.Right := Rect.Right + GridlineWidth;
> y:= Rect.Top + 2;
> x:= Rect.Left + 2;
> for i:= 1 to aCol-1 do
> x:= x - ColWidths[i] - GridlineWidth;
>
> Canvas.Brush.Color := $7FFFFF;
> Canvas.Brush.Style := bsSolid;
> Canvas.FillRect( Rect );
>
> Canvas.TextRect( Rect, x, y, Cells[1,1] );
> end;
> end;
>
> end.
>
>
일단 되기는 하는데....
합쳐진 Cell에 문자 삽입을 할 수가 없네요...
문자를 삽입 할려하니 계속 refresh 되는 현상이 발생합니다..
해결하는 방법이 없을까요...?
0
0
삭제
수정
댓글
(NOTICE) You must be
logged in
to comment on this post.
한익준
2000.04.04 00:54
0
COMMENTS
/
0
LIKES
오라클db사용 - sql문사용시에 패스워드창없애려면 부탁!
Red
•
2000.04.04 00:32
2
COMMENTS
/
0
LIKES
스트링그리드에서 Cell 합치기
스트링그리드에서 2개 이상의 Cell을 병합 할 수 있나요... 쉽게 말해 엑셀이나, 아래 한글에서의 표처럼 사용할 수 있나요..? 방법이 있으면 좀 알려 주세요... 패널로 덮어서 해볼려 했지만 Fixed Cell과 Scroll 분제 때문에 안되더군요...
구창민
•
2000.04.04 01:41
Red wrote: > 스트링그리드에서 2개 이상의 Cell을 병합 할 수 있나요... > > 쉽게 말해 엑셀이나, 아...
Red
•
2000.04.04 02:23
구창민 wrote: > Red wrote: > > 스트링그리드에서 2개 이상의 Cell을 병합 할 수 있나요... > > > > ...
blacklist
•
2000.04.03 22:56
3
COMMENTS
/
0
LIKES
StatusBar에 계속적으로 시간보여주기
사노테
•
2000.04.03 23:26
시간보여줄때 Timer만드셨져... 그러면 시간패널과 다른 패널 보통 나누어 주셨을꺼예여... 그럼 2번째 ...
blueSky
•
2000.04.03 23:17
blacklist wrote: > StatusBar에 계속적으로 시간보여주려 하는 데 Timer를 이용하여 어떻게 해야 되나요 ...
조규춘
•
2000.04.03 23:17
blacklist wrote: > StatusBar에 계속적으로 시간보여주려 하는 데 Timer를 이용하여 어떻게 해야 되나요 ...
황남철
•
2000.04.03 22:34
1
COMMENTS
/
0
LIKES
분류먼저 해주시길 부탁드립니다.
조규춘
•
2000.04.04 01:02
황남철 wrote: > 황남철 wrote: > > loavel 에 포커스를 줄수 있나요 > > 있다면 방법좀? > > > > ...
사노테
•
2000.04.03 22:14
1
COMMENTS
/
0
LIKES
찾다가 포기.. TDBGrid속 셀의 편집은?
구창민
•
2000.04.04 00:38
사노테 wrote: > DBGrid를 다루다 보니 그리드 안에서 편집을 해야 될 것 같은데여.. > 필드드 3개를 가...
권대웅
•
2000.04.03 22:07
1
COMMENTS
/
0
LIKES
(QReport)미리보기시 버튼들....?
조규춘
•
2000.04.03 23:07
권대웅 wrote: > 안녕하세요! > 열심히 델파이를 공부하고 있는 왕초보입니다. > > QuickRep1.Preview...
지나가다
2000.04.03 22:04
0
COMMENTS
/
0
LIKES
Re: StringGrid에서 오른쪽에 정렬시키려면..
ankudo
•
2000.04.03 21:48
1
COMMENTS
/
0
LIKES
Alt키 말고 Ctrl키로 조합할수는 없나요?
blueSky
•
2000.04.03 23:23
ankudo wrote: > 안녕하세요 > 단축키가 cation에 &를 넣어 Alt키로 조합을 하는데요 > Alt키 말고 Ctrl...
김남규
•
2000.04.03 21:21
1
COMMENTS
/
0
LIKES
MemoBox에서의 포커스 처리
최용일
•
2000.04.03 21:41
안녕하세요. 최용일입니다. 다음과 같이 해보세요. 구창민님의 예제를 응용했습니다. begin Memo1...
sumi
•
2000.04.03 21:16
4
COMMENTS
/
0
LIKES
pascal 기본문법 질문입니다. 빨랑빨랑~
김영숙
•
2000.04.03 21:31
질문) 이런 코드가 있음 x값이 4,3,2,1,0 일 때 5번 수행되는 것 맞나요??? 답 ) 결과 값 --> 4 ...
sumi
•
2000.04.03 22:18
답변 감사드리구요, ^^ 그러니까 until 조건문이 참이 되면 반복문을 빠져나가는 거군요... 그럼 다음과...
어린왕자
•
2000.04.04 04:32
sumi wrote: > 답변 감사드리구요, ^^ > 그러니까 until 조건문이 참이 되면 반복문을 빠져나가는 거군...
sumi
•
2000.04.04 04:56
어린왕자 wrote: > sumi wrote: > > 답변 감사드리구요, ^^ > > 그러니까 until 조건문이 참이 되면 반...
lsk
2000.04.03 20:43
0
COMMENTS
/
0
LIKES
TChart에서 Null인 부분은 그려지지 않게 하는 방법
머리나쁜 얀
•
2000.04.03 19:14
1
COMMENTS
/
0
LIKES
네트워크연결 문제!! 이것두 좀 답변을 부탁드립니다
구창민
•
2000.04.04 00:25
머리나쁜 얀 wrote: > 24포트짜리 메인허브가 있구 8포트짜리 서브허브가 있습니다 > 그리고 제가 새로이...
이상학
•
2000.04.03 19:12
1
COMMENTS
/
0
LIKES
에러 발생 시점을 알수 있도록 log 파일 만드는 법 알 수 있을까요?
김수보
•
2000.04.03 19:55
try 뭐라고 쓴다. except on E : Exception do WriteErr(E.Message);
장민석
•
2000.04.03 18:52
1
COMMENTS
/
0
LIKES
두날짜값으로 루틴 돌리기...
최용일
•
2000.04.03 19:19
안녕하세요. 최용일입니다. TTimeStamp를 이용하세요. 그러니까 입력받은 날짜를 TTimeStamp형으로 변환...
황남철
•
2000.04.03 18:47
2
COMMENTS
/
0
LIKES
포커스 주기
강인규
•
2000.04.03 19:45
edit를 얘기하시는 건가요? 만일 edit라면.... edit1.setfocus; 하심됩니다.... 그리구 enable속성...
최용일
•
2000.04.03 19:58
안녕하세요. 최용일입니다. text box가 TEdit 맞나요? 컨트롤에 포커스를 주려면 주고싶은 컨트롤의 ...
ghost Lee
2000.04.03 10:44
0
COMMENTS
/
0
LIKES
"[Tip] 컴퓨터가 인터넷에 연결됐는지의 여부 알아내기" 에 대해
최철민
2000.04.03 10:34
0
COMMENTS
/
0
LIKES
디렉터 화일 사용하기??
오정섭
2000.04.03 09:58
0
COMMENTS
/
0
LIKES
에러가 발생하면 바로 프린트하고 싶은데??
델초보
2000.04.03 08:45
0
COMMENTS
/
0
LIKES
코딩후 컴파일시에 A드라이브를 읽음..짜증남!!
지승용
•
2000.04.03 06:40
1
COMMENTS
/
0
LIKES
MPEG4(Windows media player) 사용법에 대해서...
이경문
•
2000.04.15 14:54
지승용 wrote: > 안녕하세요. > MPEG4를 사용해서 USB 카메라에서 영상과 음성을 받아서 엔코딩을 하고 ...
Red
2000/04/04 00:32
Views
486
Likes
0
Comments
2
Reports
0
Tag List
수정
삭제
목록으로
한델 로그인 하기
로그인 상태 유지
아직 회원이 아니세요? 가입하세요!
암호를 잊어버리셨나요?
> 스트링그리드에서 2개 이상의 Cell을 병합 할 수 있나요...
>
> 쉽게 말해 엑셀이나, 아래 한글에서의 표처럼 사용할 수 있나요..?
>
> 방법이 있으면 좀 알려 주세요...
>
> 패널로 덮어서 해볼려 했지만 Fixed Cell과 Scroll 분제 때문에 안되더군요...
>
>
안녕하세요~ 구창민입니다.
좀처럼 찾기 어렵더군요.
뉴스그룹에서 뒤져보았더니 대부분의 답변이
"지원하지 않으니 써드파티 컴포넌트를 뒤져보아라"라는 내용들이군요.
슈퍼페이지에서 뒤지면 있기야 하겠지요.
암튼, 그중에 한가지 찾은게 있는데 테스트 해보니 일단 되기는 합니다.
아래 코드들을 좀 수정하셔서 마음에 드시게 고쳐쓰세요.
그럼~ 즐거운 프로그래밍 하시길~
procedure TForm1.FormCreate(Sender: TObject);
var
i, k: Integer;
begin
with StringGrid1 do
begin
Cells[1, 1] := '첫번째 셀부터 4번째 셀까지, 셀을 합쳐보지요.';
for i:= 1 to ColCount-1 do
for k:= 2 to RowCount -1 do
Cells[i,k] := Format( 'Cell[%d,%d]',[i,k]);
end;
end;
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var
i, x, y: Integer;
begin
If gdFixed In State Then Exit;
If ARow > 1 Then Exit;
with Sender as TStringGrid do
begin
If aCol < Pred(ColCount) Then
Rect.Right := Rect.Right + GridlineWidth;
y:= Rect.Top + 2;
x:= Rect.Left + 2;
for i:= 1 to aCol-1 do
x:= x - ColWidths[i] - GridlineWidth;
Canvas.Brush.Color := $7FFFFF;
Canvas.Brush.Style := bsSolid;
Canvas.FillRect( Rect );
Canvas.TextRect( Rect, x, y, Cells[1,1] );
end;
end;
end.