Q&A
HOME
Tips & Tech
Q&A
Discuss
Download
자유게시판
홍보 / 광고
구인 / 구직
LOGIN
회원가입
디비그리드 안에 디비콤보를 넣을 수 없나여...
고수님들께...
디비그리드 안에 디비콤보를 넣을 수 없나여...
방법을 좀 갈켜 주세요...
3
COMMENTS
성호종
•
2000.07.04 01:55
김동섭 wrote:
소스를 포함한 답변을 드립니다요~ 디비콤보는 아니지만 콤보박스를
디비그리드에서 활용한 프로그램이에요.... 이렇게 쓰시는게 아주 좋을거 같군요...^^
아래 예제는 Del3로 개발한 금융기관에서 쓰는 프로그램의 소스일부입니다....
만약 더 필요하신것이 있으시면 소스를 팍팍 제공해드리지요....
procedure TForm1.DBG1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if (gdFocused in State) then
if DBG1.SelectedField.fieldName = 'STAT' then
begin
CB_m_stat.Left := Rect.Left + DBG1.Left;
CB_m_stat.Top := Rect.Top + DBG1.Top;
CB_m_stat.Width := Rect.Right - Rect.left;
CB_m_stat.Height := Rect.Bottom - Rect.Top;
end
else if DBG1.SelectedField.fieldName = 'GJ_STAT' then
begin
CB_stat.Left := Rect.Left + DBG1.Left;
CB_stat.Top := Rect.Top + DBG1.Top;
CB_stat.Width := Rect.Right - Rect.left;
CB_stat.Height := Rect.Bottom - Rect.Top;
end
else if DBG1.SelectedField.fieldName = 'OWN' then
begin
CB_own.Left := Rect.Left + DBG1.Left;
CB_own.Top := Rect.Top + DBG1.Top;
CB_own.Width := Rect.Right - Rect.left;
CB_own.Height := Rect.Bottom - Rect.Top;
end
else if DBG1.SelectedField.fieldName = 'MGR' then
begin
CB_mgr.Left := Rect.Left + DBG1.Left;
CB_mgr.Top := Rect.Top + DBG1.Top;
CB_mgr.Width := Rect.Right - Rect.left;
CB_mgr.Height := Rect.Bottom - Rect.Top;
end
end;
procedure TForm1.DBG1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key = vk_f4 then
if DBG1.SelectedField.FieldName = 'STAT' then
begin
CB_m_stat.Visible := True;
CB_m_stat.SetFocus;
PostMessage(CB_m_stat.Handle, WM_KEYDOWN, VK_F4, 0);
end
else if DBG1.SelectedField.fieldName = 'GJ_STAT' then
begin
CB_stat.Visible := True;
CB_stat.SetFocus;
PostMessage(CB_stat.Handle, WM_KEYDOWN, VK_F4, 0);
end
else if DBG1.SelectedField.fieldName = 'OWN' then
begin
CB_own.Visible := True;
CB_own.SetFocus;
PostMessage(CB_own.Handle, WM_KEYDOWN, VK_F4, 0);
end
else if DBG1.SelectedField.fieldName = 'MGR' then
begin
CB_mgr.Visible := True;
CB_mgr.SetFocus;
PostMessage(CB_mgr.Handle, WM_KEYDOWN, VK_F4, 0);
end;
end;
procedure TForm1.CB_m_statExit(Sender: TObject);
var
i : Smallint;
s, tmp_s : string;
begin
if CB_m_stat.Text <> '' then
begin
i := 0;
s := CB_m_stat.Text;
if s[1] = '[' then
tmp_s := Copy(s, 2, 4)
else tmp_s := Copy(s, 1, 4);
while i <= CB_m_stat.Items.Count - 1 do
begin
if tmp_s = Copy(CB_m_stat.Items[i], 2, 4) then
begin
CB_m_stat.Text := CB_m_stat.Items[i];
break;
end;
Inc(i);
end;
end;
if i = CB_m_stat.Items.Count then
begin
MessageDlg('찾고자 하는 데이터가 없습니다.',mtError,[mbOk],0);
CB_m_stat.Text := '';
CB_m_stat.SetFocus;
end;
end;
procedure TForm1.CB_m_statKeyPress(Sender: TObject; var Key: Char);
begin
if key = #13 then
begin
if DS1.state in [dsInactive, dsBrowse] then
DS1.Edit;
DBG1.SetFocus;
P64E00_Q1m_stat2.Value := Copy(CB_m_stat.Text, 2, 2);
P64E00_Q1m_stat3.Value := Copy(CB_m_stat.Text, 4, 2);
P64E00_Q1stat.Value := CB_m_stat.Text;
PostMessage(DBG1.Handle, WM_KEYDOWN, VK_RIGHT, 0);
CB_m_stat.Text := '';
CB_m_stat.Visible := False;
end;
end;
> 고수님들께...
> 디비그리드 안에 디비콤보를 넣을 수 없나여...
> 방법을 좀 갈켜 주세요...
0
0
삭제
수정
댓글
김동섭
•
2000.07.04 02:28
질문에 답해 주셔서 감사합니니다.
제가 원하는 필드에 디비콤보가 들어오나여.
제가 지금 필요한 것은 디비그리드 안에서...값을 입력받고... 보여 주고 싶은데요...
보여 줄때는 회사명으로 보여 주고요...
저장될때는 회사코드로 저장이 됩니다...
이것을 해결하기 위해선... 사용자가 입력하기 편하게 하기위해...회사명을 콤보에
넣어주면...그 곳에서 회사를 찾을 것이고...저장할 때는 회사코드로 저장을 하고 싶거든여...
님께서...보내 주신 자료가지고 해결이 가능한지요...
귀찮더라도... 답변 부탁드릴께요...
그럼 수고 하세요...*^^*
0
0
삭제
수정
댓글
성호종
•
2000.07.07 03:35
김동섭 wrote:
제가 답변해 드린 source가 그렇게 사용되고 있는 source입니다. 잘 응용해 보세용~
> 질문에 답해 주셔서 감사합니니다.
>
> 제가 원하는 필드에 디비콤보가 들어오나여.
>
> 제가 지금 필요한 것은 디비그리드 안에서...값을 입력받고... 보여 주고 싶은데요...
>
> 보여 줄때는 회사명으로 보여 주고요...
> 저장될때는 회사코드로 저장이 됩니다...
>
> 이것을 해결하기 위해선... 사용자가 입력하기 편하게 하기위해...회사명을 콤보에
> 넣어주면...그 곳에서 회사를 찾을 것이고...저장할 때는 회사코드로 저장을 하고 싶거든여...
>
> 님께서...보내 주신 자료가지고 해결이 가능한지요...
> 귀찮더라도... 답변 부탁드릴께요...
> 그럼 수고 하세요...*^^*
0
0
삭제
수정
댓글
(NOTICE) You must be
logged in
to comment on this post.
조헌철
•
2000.07.04 03:49
1
COMMENTS
/
0
LIKES
고수 분들께 부탁드립니다. 아니더라도 아시는 분들...
조규춘
•
2000.07.04 06:11
여기 팁란에 강민주님이 올리신 글이 있었는데.. 안보셨나보군요. http://www.delphi.co.kr/cgi-bin...
조유정
•
2000.07.04 03:27
1
COMMENTS
/
0
LIKES
가상테이블 만드는 방법좀...
허춘
•
2000.07.04 08:46
조유정 wrote: > 부탁입니다. ㅠㅠ > 가상 테이블을 만드는 방법좀 알려 주세요... > 자세하게 알려 주...
어린왕자
2000.07.04 03:21
0
COMMENTS
/
0
LIKES
OnDrawCell과 DBGrid화면 지우구 쓰기..
문진현
•
2000.07.04 02:16
1
COMMENTS
/
0
LIKES
DBGrid를 스크롤 할때
어린왕자
•
2000.07.06 03:26
문진현 wrote: > 안녕하세요... > 델 초보의 질문 입니다.. > > DBGrid를 스크롤 할때 발생하는 Event...
빈거울
•
2000.07.04 02:15
1
COMMENTS
/
0
LIKES
vb를 델파이로...
허춘
•
2000.07.04 08:53
빈거울 wrote: > vb로 된 오른쪽 정렬입니다. > 이것을 델파이로 옮겨주세요.... 비베를 잘몰라서 제...
이병웅
•
2000.07.04 01:41
1
COMMENTS
/
0
LIKES
용일님..! 한번만 더 봐주세요...TT
최용일
•
2000.07.04 08:22
안녕하세요. 최용일입니다. 생각해 보니 답변을 상당히 경솔하게 한것 같군요... DLL과 메인프로그램...
산적
•
2000.07.04 01:26
2
COMMENTS
/
0
LIKES
StringGrid에 이미지를 넣으려는데...
이상우
•
2000.07.04 06:21
산적 wrote: > 안녕하세요. 델파이 초보의 질문입니다. > 지뢰찾기를 만들려고 하는데, 저는 StringGrid...
산적
•
2000.07.05 22:49
이상우 wrote: > 안녕하세요.... > > 이렇게 해보시죠.. > > > StringGrid의 특정 Cell에 그림 ...
델초보녀
•
2000.07.04 01:10
1
COMMENTS
/
0
LIKES
엄청 쉬운 질문...
jym
•
2000.07.04 01:28
델초보녀 wrote: > string이 꽤 긴게 있는데... > > 어떻게 선언해야 하나요? > var s:string; > 으...
김동섭
•
2000.07.04 00:53
3
COMMENTS
/
0
LIKES
디비그리드 안에 디비콤보를 넣을 수 없나여...
고수님들께... 디비그리드 안에 디비콤보를 넣을 수 없나여... 방법을 좀 갈켜 주세요...
성호종
•
2000.07.04 01:55
김동섭 wrote: 소스를 포함한 답변을 드립니다요~ 디비콤보는 아니지만 콤보박스를 디비그리드에서 활용...
김동섭
•
2000.07.04 02:28
질문에 답해 주셔서 감사합니니다. 제가 원하는 필드에 디비콤보가 들어오나여. 제가 지금 필요한 것...
성호종
•
2000.07.07 03:35
김동섭 wrote: 제가 답변해 드린 source가 그렇게 사용되고 있는 source입니다. 잘 응용해 보세용~ > ...
빈거울
2000.07.03 23:48
0
COMMENTS
/
0
LIKES
ListView에 대해..
최은석
2000.07.03 23:14
0
COMMENTS
/
0
LIKES
이미지의 캔버스에 그린 선 지우기
한상훈
•
2000.07.03 23:12
1
COMMENTS
/
0
LIKES
가변 파라미터 좀 알려주세요..
최용일
•
2000.07.03 23:29
안녕하세요. 최용일입니다. MyFunction(변수:형=디폴트값; 변수: 형=디폴트값;...) 위와 같은 식으로...
초보녀
•
2000.07.03 22:47
2
COMMENTS
/
0
LIKES
win98에서 다른 응용프로그램 호출은 어찌?
조규춘
•
2000.07.03 22:52
초보녀 wrote: > 안녕하세요? 델파이 왕초보입니다. > 너무 바보같은 질문일 줄 모르나 > > 폼에 버...
이경문
•
2000.07.04 03:34
실행화일을 실행시킬 때는 WinExec를 사용하면 됩니다. 윈도우 탐색기에서 특정화일을 더블클릭할 때 (예...
jym
•
2000.07.03 22:45
1
COMMENTS
/
0
LIKES
IE 및 기타 ActiveX 에서 오른쪽 버튼 기능 막으려면
깨비
•
2001.03.04 01:28
저는 일단 Twebbrowser에서 해봤네염. 이소스를 수행 하기 위해선 ieConst.pas 와 ieDocHostUIHandler.pas...
한 태수
•
2000.07.03 21:32
2
COMMENTS
/
0
LIKES
RC화일 작성이 안됩니다. 도와주세요..
최용일
•
2000.07.03 22:37
안녕하세요. 최용일입니다. 어떻게 안된다는 거죠? 에러 메세지가 뭔지를 알아야죠... 저두 자주 쓰...
한 태수
•
2000.07.04 05:49
최 용일님 문제 해결했습니다. 델파이의 bin 디렉토리에서 Rw32Core.dll화일을 제 작업디렉토리로 복사해 ...
왕초보
2000.07.03 21:05
0
COMMENTS
/
0
LIKES
FindFirstChangeNotification...에 대해
류응철
•
2000.07.03 21:01
3
COMMENTS
/
0
LIKES
조규춘님 도와주세여
조규춘
•
2000.07.03 22:48
류응철 wrote: > 일반적으로 다음과 같은 그림을 참고하십시요 여기서 하는 거니.... > http://members.n...
류응철
•
2000.07.04 00:42
감사합니다.. 그런데여... 바탕화면에 단축아이콘은 뜨거든요.. 인스톨 다 하면 그룹박스가 뜨는거여.....
조규춘
•
2000.07.04 12:33
류응철 wrote: > 감사합니다.. 그런데여... 바탕화면에 단축아이콘은 뜨거든요.. > > 인스톨 다 하면 ...
김종석
•
2000.07.03 20:55
1
COMMENTS
/
0
LIKES
Table을 외부에서 제어 할 수 있는지요...
이재식
•
2000.07.03 21:40
이재식 Wrote : 안녕하세요? 테이블제어를 외부에서 할수 있습니다. 님께서 사용자 정의 dll를 만드셔...
털김
•
2000.07.03 20:49
1
COMMENTS
/
0
LIKES
가려진 Window의 HDC값으로 Bitmap을 가져올수 있나요?
최용일
•
2000.07.03 23:48
안녕하세요. 최용일입니다. 메세지를 보내세요. SendMessage(wnd, WM_PAINT, DC, 0); ^^ 항상 즐...
서영택
•
2000.07.03 20:34
3
COMMENTS
/
0
LIKES
ActiveX 에러가...
최석기
•
2000.07.03 22:21
서영택 wrote: > 처음 Web Deploy를 실행면 정상적인데 폼위에 버튼을 올려놓고 실행하면 > 아래와같은 ...
서영택
•
2000.07.03 23:50
최석기 wrote: > 서영택 wrote: > > 처음 Web Deploy를 실행면 정상적인데 폼위에 버튼을 올려놓고 실행...
이경문
•
2000.07.04 03:47
실행이 되지 않는 이유는 여러가지가 있는데, 제가 추측하는 에러는 다음과 같습니다. ocx위치가 c:work라...
김동섭
2000/07/04 00:53
Views
209
Likes
0
Comments
3
Reports
0
Tag List
수정
삭제
목록으로
한델 로그인 하기
로그인 상태 유지
아직 회원이 아니세요? 가입하세요!
암호를 잊어버리셨나요?
소스를 포함한 답변을 드립니다요~ 디비콤보는 아니지만 콤보박스를
디비그리드에서 활용한 프로그램이에요.... 이렇게 쓰시는게 아주 좋을거 같군요...^^
아래 예제는 Del3로 개발한 금융기관에서 쓰는 프로그램의 소스일부입니다....
만약 더 필요하신것이 있으시면 소스를 팍팍 제공해드리지요....
procedure TForm1.DBG1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if (gdFocused in State) then
if DBG1.SelectedField.fieldName = 'STAT' then
begin
CB_m_stat.Left := Rect.Left + DBG1.Left;
CB_m_stat.Top := Rect.Top + DBG1.Top;
CB_m_stat.Width := Rect.Right - Rect.left;
CB_m_stat.Height := Rect.Bottom - Rect.Top;
end
else if DBG1.SelectedField.fieldName = 'GJ_STAT' then
begin
CB_stat.Left := Rect.Left + DBG1.Left;
CB_stat.Top := Rect.Top + DBG1.Top;
CB_stat.Width := Rect.Right - Rect.left;
CB_stat.Height := Rect.Bottom - Rect.Top;
end
else if DBG1.SelectedField.fieldName = 'OWN' then
begin
CB_own.Left := Rect.Left + DBG1.Left;
CB_own.Top := Rect.Top + DBG1.Top;
CB_own.Width := Rect.Right - Rect.left;
CB_own.Height := Rect.Bottom - Rect.Top;
end
else if DBG1.SelectedField.fieldName = 'MGR' then
begin
CB_mgr.Left := Rect.Left + DBG1.Left;
CB_mgr.Top := Rect.Top + DBG1.Top;
CB_mgr.Width := Rect.Right - Rect.left;
CB_mgr.Height := Rect.Bottom - Rect.Top;
end
end;
procedure TForm1.DBG1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key = vk_f4 then
if DBG1.SelectedField.FieldName = 'STAT' then
begin
CB_m_stat.Visible := True;
CB_m_stat.SetFocus;
PostMessage(CB_m_stat.Handle, WM_KEYDOWN, VK_F4, 0);
end
else if DBG1.SelectedField.fieldName = 'GJ_STAT' then
begin
CB_stat.Visible := True;
CB_stat.SetFocus;
PostMessage(CB_stat.Handle, WM_KEYDOWN, VK_F4, 0);
end
else if DBG1.SelectedField.fieldName = 'OWN' then
begin
CB_own.Visible := True;
CB_own.SetFocus;
PostMessage(CB_own.Handle, WM_KEYDOWN, VK_F4, 0);
end
else if DBG1.SelectedField.fieldName = 'MGR' then
begin
CB_mgr.Visible := True;
CB_mgr.SetFocus;
PostMessage(CB_mgr.Handle, WM_KEYDOWN, VK_F4, 0);
end;
end;
procedure TForm1.CB_m_statExit(Sender: TObject);
var
i : Smallint;
s, tmp_s : string;
begin
if CB_m_stat.Text <> '' then
begin
i := 0;
s := CB_m_stat.Text;
if s[1] = '[' then
tmp_s := Copy(s, 2, 4)
else tmp_s := Copy(s, 1, 4);
while i <= CB_m_stat.Items.Count - 1 do
begin
if tmp_s = Copy(CB_m_stat.Items[i], 2, 4) then
begin
CB_m_stat.Text := CB_m_stat.Items[i];
break;
end;
Inc(i);
end;
end;
if i = CB_m_stat.Items.Count then
begin
MessageDlg('찾고자 하는 데이터가 없습니다.',mtError,[mbOk],0);
CB_m_stat.Text := '';
CB_m_stat.SetFocus;
end;
end;
procedure TForm1.CB_m_statKeyPress(Sender: TObject; var Key: Char);
begin
if key = #13 then
begin
if DS1.state in [dsInactive, dsBrowse] then
DS1.Edit;
DBG1.SetFocus;
P64E00_Q1m_stat2.Value := Copy(CB_m_stat.Text, 2, 2);
P64E00_Q1m_stat3.Value := Copy(CB_m_stat.Text, 4, 2);
P64E00_Q1stat.Value := CB_m_stat.Text;
PostMessage(DBG1.Handle, WM_KEYDOWN, VK_RIGHT, 0);
CB_m_stat.Text := '';
CB_m_stat.Visible := False;
end;
end;
> 고수님들께...
> 디비그리드 안에 디비콤보를 넣을 수 없나여...
> 방법을 좀 갈켜 주세요...