Q&A

  • 디비그리드 안에 디비콤보를 넣을 수 없나여...
고수님들께...

디비그리드 안에 디비콤보를 넣을 수 없나여...

방법을 좀 갈켜 주세요...

3  COMMENTS
  • Profile
    성호종 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;









    > 고수님들께...

    > 디비그리드 안에 디비콤보를 넣을 수 없나여...

    > 방법을 좀 갈켜 주세요...

  • Profile
    김동섭 2000.07.04 02:28
    질문에 답해 주셔서 감사합니니다.



    제가 원하는 필드에 디비콤보가 들어오나여.



    제가 지금 필요한 것은 디비그리드 안에서...값을 입력받고... 보여 주고 싶은데요...



    보여 줄때는 회사명으로 보여 주고요...

    저장될때는 회사코드로 저장이 됩니다...



    이것을 해결하기 위해선... 사용자가 입력하기 편하게 하기위해...회사명을 콤보에

    넣어주면...그 곳에서 회사를 찾을 것이고...저장할 때는 회사코드로 저장을 하고 싶거든여...



    님께서...보내 주신 자료가지고 해결이 가능한지요...

    귀찮더라도... 답변 부탁드릴께요...

    그럼 수고 하세요...*^^*

  • Profile
    성호종 2000.07.07 03:35
    김동섭 wrote:

    제가 답변해 드린 source가 그렇게 사용되고 있는 source입니다. 잘 응용해 보세용~



    > 질문에 답해 주셔서 감사합니니다.

    >

    > 제가 원하는 필드에 디비콤보가 들어오나여.

    >

    > 제가 지금 필요한 것은 디비그리드 안에서...값을 입력받고... 보여 주고 싶은데요...

    >

    > 보여 줄때는 회사명으로 보여 주고요...

    > 저장될때는 회사코드로 저장이 됩니다...

    >

    > 이것을 해결하기 위해선... 사용자가 입력하기 편하게 하기위해...회사명을 콤보에

    > 넣어주면...그 곳에서 회사를 찾을 것이고...저장할 때는 회사코드로 저장을 하고 싶거든여...

    >

    > 님께서...보내 주신 자료가지고 해결이 가능한지요...

    > 귀찮더라도... 답변 부탁드릴께요...

    > 그럼 수고 하세요...*^^*

    • 조규춘
      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 02:16
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 어린왕자
      2000.07.06 03:26
      문진현 wrote: > 안녕하세요... > 델 초보의 질문 입니다.. > > DBGrid를 스크롤 할때 발생하는 Event...
    • 빈거울
    • 2000.07.04 02:15
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 허춘
      2000.07.04 08:53
      빈거울 wrote: > vb로 된 오른쪽 정렬입니다. > 이것을 델파이로 옮겨주세요.... 비베를 잘몰라서 제...
    • 이병웅
    • 2000.07.04 01:41
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2000.07.04 08:22
      안녕하세요. 최용일입니다. 생각해 보니 답변을 상당히 경솔하게 한것 같군요... DLL과 메인프로그램...
    • 산적
    • 2000.07.04 01:26
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 이상우
      2000.07.04 06:21
      산적 wrote: > 안녕하세요. 델파이 초보의 질문입니다. > 지뢰찾기를 만들려고 하는데, 저는 StringGrid...
    • 산적
      2000.07.05 22:49
      이상우 wrote: > 안녕하세요.... > > 이렇게 해보시죠.. > > > StringGrid의 특정 Cell에 그림 ...
    • 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:12
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2000.07.03 23:29
      안녕하세요. 최용일입니다. MyFunction(변수:형=디폴트값; 변수: 형=디폴트값;...) 위와 같은 식으로...
    • 조규춘
      2000.07.03 22:52
      초보녀 wrote: > 안녕하세요? 델파이 왕초보입니다. > 너무 바보같은 질문일 줄 모르나 > > 폼에 버...
    • 이경문
      2000.07.04 03:34
      실행화일을 실행시킬 때는 WinExec를 사용하면 됩니다. 윈도우 탐색기에서 특정화일을 더블클릭할 때 (예...
    • 깨비
      2001.03.04 01:28
      저는 일단 Twebbrowser에서 해봤네염. 이소스를 수행 하기 위해선 ieConst.pas 와 ieDocHostUIHandler.pas...
    • 최용일
      2000.07.03 22:37
      안녕하세요. 최용일입니다. 어떻게 안된다는 거죠? 에러 메세지가 뭔지를 알아야죠... 저두 자주 쓰...
    • 한 태수
      2000.07.04 05:49
      최 용일님 문제 해결했습니다. 델파이의 bin 디렉토리에서 Rw32Core.dll화일을 제 작업디렉토리로 복사해 ...
    • 류응철
    • 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
    • 이재식
      2000.07.03 21:40
      이재식 Wrote : 안녕하세요? 테이블제어를 외부에서 할수 있습니다. 님께서 사용자 정의 dll를 만드셔...
    • 최용일
      2000.07.03 23:48
      안녕하세요. 최용일입니다. 메세지를 보내세요. SendMessage(wnd, WM_PAINT, DC, 0); ^^ 항상 즐...
    • 서영택
    • 2000.07.03 20:34
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 최석기
      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라...