Q&A
HOME
Tips & Tech
Q&A
Discuss
Download
자유게시판
홍보 / 광고
구인 / 구직
LOGIN
회원가입
dbgrid에서 multiselect(shitf+mouse)구현하기
dbgrid를 multiselect 옵션을 선택하게 되면 마우시+ctrl키 조합과
shift+화살표키가 사용되는데요..
shift+마우스 , ctrl+마우스 , shift+pageup , pagedown을
구현하려면 어떻게 해야 하나요??
이렇게 구현된 multiselect의 내용을(즉, db의 특정 데이타를)
clipbord나 엑셀로 보내려고 하거든요..
2
COMMENTS
신호성
•
1999.12.10 03:04
김주석 wrote:
> dbgrid를 multiselect 옵션을 선택하게 되면 마우시+ctrl키 조합과
> shift+화살표키가 사용되는데요..
> shift+마우스 , ctrl+마우스 , shift+pageup , pagedown을
> 구현하려면 어떻게 해야 하나요??
> 이렇게 구현된 multiselect의 내용을(즉, db의 특정 데이타를)
> clipbord나 엑셀로 보내려고 하거든요..
>
아래 함수는 제가 사용하고 있는 함수 입니다.
변수명을 조금 바꿨는데 오타가 없다면 잘 수행될겁니다.
북마크를 비교해서 처리하는데요
내용은 자세히 보시면 이해될겁니다.
var
first_pos : TBookmark;
// Multi Select처리
procedure gf_shift_select_process(DBGrid:TDBGrid);
var
direction : Integer;
temp_pos : TBookmark;
this_pos : TBookmark;
begin
with (DBGrid.DataSource.DataSet as TDBDataSet) do
begin
if IsEmpty then Exit;
if (dgMultiSelect in DBGrid.Options) then
begin
if GetKeyState(VK_SHIFT) < short(0) then
begin
this_pos := GetBookmark;
Direction := CompareBookmarks(first_pos,this_pos);
if Direction = 0 then Exit;
GotoBookMark(first_pos);
while (not EOF) and (not BOF) do
begin
DBGrid.SelectedRows.CurrentRowSelected := True;
if Direction > 0 then
prior
else
Next;
temp_pos := GetBookmark;
if CompareBookmarks(temp_pos,this_pos) = 0 then break;
end;
FreeBookmark(this_pos);
FreeBookmark(first_pos);
FreeBookmark(temp_pos);
end;
first_pos := GetBookmark;
end;
end;
end;
// ***********************************************************************
procedure TfrmAAEditParentBWC.dbg_browseCellClick(Column: TColumn);
begin
gf_shift_select_process(dbg_browse);
end;
0
0
삭제
수정
댓글
길호전
•
1999.12.21 05:26
신호성 wrote:
> 김주석 wrote:
> > dbgrid를 multiselect 옵션을 선택하게 되면 마우시+ctrl키 조합과
> > shift+화살표키가 사용되는데요..
> > shift+마우스 , ctrl+마우스 , shift+pageup , pagedown을
> > 구현하려면 어떻게 해야 하나요??
> > 이렇게 구현된 multiselect의 내용을(즉, db의 특정 데이타를)
> > clipbord나 엑셀로 보내려고 하거든요..
> >
>
>
> 아래 함수는 제가 사용하고 있는 함수 입니다.
> 변수명을 조금 바꿨는데 오타가 없다면 잘 수행될겁니다.
> 북마크를 비교해서 처리하는데요
> 내용은 자세히 보시면 이해될겁니다.
>
>
> var
> first_pos : TBookmark;
>
> // Multi Select처리
> procedure gf_shift_select_process(DBGrid:TDBGrid);
> var
> direction : Integer;
> temp_pos : TBookmark;
> this_pos : TBookmark;
> begin
> with (DBGrid.DataSource.DataSet as TDBDataSet) do
> begin
>
> if IsEmpty then Exit;
>
> if (dgMultiSelect in DBGrid.Options) then
> begin
> if GetKeyState(VK_SHIFT) < short(0) then
> begin
> this_pos := GetBookmark;
>
> Direction := CompareBookmarks(first_pos,this_pos);
> if Direction = 0 then Exit;
>
> GotoBookMark(first_pos);
>
> while (not EOF) and (not BOF) do
> begin
> DBGrid.SelectedRows.CurrentRowSelected := True;
> if Direction > 0 then
> prior
> else
> Next;
> temp_pos := GetBookmark;
> if CompareBookmarks(temp_pos,this_pos) = 0 then break;
> end;
> FreeBookmark(this_pos);
> FreeBookmark(first_pos);
> FreeBookmark(temp_pos);
> end;
> first_pos := GetBookmark;
> end;
> end;
> end;
>
>
> // ***********************************************************************
>
> procedure TfrmAAEditParentBWC.dbg_browseCellClick(Column: TColumn);
> begin
> gf_shift_select_process(dbg_browse);
> end;
>
>
>
참고삼아서 말씀드린다면 dbgrid의 multiselect에서
shift키를 이용한 다중선택은 shift+방향키(키보드)만 구현이 되고
ctrl키는 안되고
마우스로 다중선택을 할려면
ctrl키를 누르면 마우스로 선택을 해야하고
shift키를누른 상태에서 마우스로 다중선택은 되지않습니다.
0
0
삭제
수정
댓글
(NOTICE) You must be
logged in
to comment on this post.
김형석
1999.12.10 09:04
0
COMMENTS
/
0
LIKES
델파이와 DB에 관해서 좀 가르쳐 주실래요
열심희
•
1999.12.10 08:00
1
COMMENTS
/
0
LIKES
AcitveX Form에서의 DAX에러...? ★
나원용
•
1999.12.20 19:39
열심희 wrote: > 안녕하세요... > Midas와 ActiveX Form을 공부하고 있습니다... > DB를 연동해서 짜고 ...
나그네
•
1999.12.10 07:39
1
COMMENTS
/
0
LIKES
Form Max로 띄우기
이만준
•
1999.12.10 21:44
나그네 wrote: > MDI Form에서 Child Form을 기본으로 2개를 띄우면서 프로그램을 시작하려고 합니다. > ...
심형성
1999.12.10 06:52
0
COMMENTS
/
0
LIKES
[제발]일을 보내는 방법좀 가르쳐 주세요...
이주흥
1999.12.10 06:50
0
COMMENTS
/
0
LIKES
Re: MySQL을 델파이에서 사용하고 싶어요
김형석
1999.12.10 05:56
0
COMMENTS
/
0
LIKES
분류먼저 해주시길 부탁드립니다.
이희선
•
1999.12.10 05:20
3
COMMENTS
/
0
LIKES
MoveFile API함수에 대하여...
이주흥
•
1999.12.10 07:16
이희선 wrote: > 안녕하십니까. > MoveFile 함수를 써서 화일을 Move할려하는데 화일이름이 길어지면 정...
이희선
•
1999.12.11 00:13
이주흥 wrote: > 이희선 wrote: > > 안녕하십니까. > > MoveFile 함수를 써서 화일을 Move할려하는데 ...
이주흥
•
1999.12.11 01:47
음...제 답변이 성의 없었다면 죄송하군여.. 제가 말씀드린 문자열은 물론 파일이름을 말하는 겁니다......
최시영
•
1999.12.10 03:09
1
COMMENTS
/
0
LIKES
하위에 있는 헨드알아내기~~~~~
클라라(yunii)
•
1999.12.10 22:39
하루가지나도 답변이없길래 한마디 하겠습니다... 윈도우인지 컨트롤들인지 설명해주시면 자세히 말씀드...
엄화용
1999.12.10 02:47
0
COMMENTS
/
0
LIKES
블럭copy
엄화용
1999.12.10 02:22
0
COMMENTS
/
0
LIKES
데이타베이스
김주석
•
1999.12.10 01:26
2
COMMENTS
/
0
LIKES
dbgrid에서 multiselect(shitf+mouse)구현하기
dbgrid를 multiselect 옵션을 선택하게 되면 마우시+ctrl키 조합과 shift+화살표키가 사용되는데요.. shift+마우스 , ctrl+마우스 , shift+pageup , pagedown을 구현하려면 어떻게 해야 하나요?? 이렇게 구현된 multiselect의 내용을(즉, ...
신호성
•
1999.12.10 03:04
김주석 wrote: > dbgrid를 multiselect 옵션을 선택하게 되면 마우시+ctrl키 조합과 > shift+화살표키가 ...
길호전
•
1999.12.21 05:26
신호성 wrote: > 김주석 wrote: > > dbgrid를 multiselect 옵션을 선택하게 되면 마우시+ctrl키 조합과 ...
wbh
1999.12.10 00:46
0
COMMENTS
/
0
LIKES
한수 부탁드립니다.(musictelecom ars 보드)
황선희
•
1999.12.10 00:21
1
COMMENTS
/
0
LIKES
StringGrid에서 다음 행으로 커서를 이동할려면...
배불뚝
•
1999.12.10 00:45
황선희 wrote: > > StringGrid에서 값을 입력하고 엔터를 입력하면 다음 행으로 갈 수 있도록은 했지만,...
홍길동
•
1999.12.09 23:51
1
COMMENTS
/
0
LIKES
델파이와 오라클연결(ODBC사용않고)..
김주석
•
1999.12.10 01:47
홍길동 wrote: > 안녕하세요 > > 델파이와 오라클 DB을 연결하려고 하는데 잘안되는군요... > > ODB...
김명석
1999.12.09 23:41
0
COMMENTS
/
0
LIKES
겹쳐지지 않는 windows 만들기
김영기
•
1999.12.09 23:04
1
COMMENTS
/
0
LIKES
dbgrid의 한 record가져오기
Jinsarang
•
1999.12.21 08:10
김영기 wrote: > 원래 폼에 dbgrid1이 있고 검색을 누르면 검색폼이 나타납니다.거기에 dbgrid2가 있구요 ...
궁금이
1999.12.10 03:16
0
COMMENTS
/
0
LIKES
(도와주세요)델파이 함수나 프로시저 에서 질문
김매경
•
1999.12.09 22:20
1
COMMENTS
/
0
LIKES
시간을 기준으로 검색을 하려고 하는데... !_!
김주석
•
1999.12.10 01:38
김매경 wrote: > 시간을 이용한 검색을 하려고 하거든요... > > 몇시부터 몇시 사이에... 일어난 트랜...
김명석
•
1999.12.09 21:00
1
COMMENTS
/
0
LIKES
Task Bar와 같이 겹치지 않는 windows만들기
구창민
•
1999.12.09 22:40
김명석 wrote: > 우서 제글을 읽어 주시는 모든 분들께 감사드립니다. > > 저의 질문은 아래와 같습니...
박성균
1999.12.09 20:57
0
COMMENTS
/
0
LIKES
form간에 자료를 이동할경우에 생기는 문제를 처리하고 싶어요.
김주석
1999/12/10 01:26
Views
264
Likes
0
Comments
2
Reports
0
Tag List
수정
삭제
목록으로
한델 로그인 하기
로그인 상태 유지
아직 회원이 아니세요? 가입하세요!
암호를 잊어버리셨나요?
> dbgrid를 multiselect 옵션을 선택하게 되면 마우시+ctrl키 조합과
> shift+화살표키가 사용되는데요..
> shift+마우스 , ctrl+마우스 , shift+pageup , pagedown을
> 구현하려면 어떻게 해야 하나요??
> 이렇게 구현된 multiselect의 내용을(즉, db의 특정 데이타를)
> clipbord나 엑셀로 보내려고 하거든요..
>
아래 함수는 제가 사용하고 있는 함수 입니다.
변수명을 조금 바꿨는데 오타가 없다면 잘 수행될겁니다.
북마크를 비교해서 처리하는데요
내용은 자세히 보시면 이해될겁니다.
var
first_pos : TBookmark;
// Multi Select처리
procedure gf_shift_select_process(DBGrid:TDBGrid);
var
direction : Integer;
temp_pos : TBookmark;
this_pos : TBookmark;
begin
with (DBGrid.DataSource.DataSet as TDBDataSet) do
begin
if IsEmpty then Exit;
if (dgMultiSelect in DBGrid.Options) then
begin
if GetKeyState(VK_SHIFT) < short(0) then
begin
this_pos := GetBookmark;
Direction := CompareBookmarks(first_pos,this_pos);
if Direction = 0 then Exit;
GotoBookMark(first_pos);
while (not EOF) and (not BOF) do
begin
DBGrid.SelectedRows.CurrentRowSelected := True;
if Direction > 0 then
prior
else
Next;
temp_pos := GetBookmark;
if CompareBookmarks(temp_pos,this_pos) = 0 then break;
end;
FreeBookmark(this_pos);
FreeBookmark(first_pos);
FreeBookmark(temp_pos);
end;
first_pos := GetBookmark;
end;
end;
end;
// ***********************************************************************
procedure TfrmAAEditParentBWC.dbg_browseCellClick(Column: TColumn);
begin
gf_shift_select_process(dbg_browse);
end;