Q&A

  • 휠마우스사용(자주거론되지만 내용은 아닙니다.!)
휠마우스 사용을 하기 위해서 많은 검색을 하여 찾았습니다.

프로시저를 하나 만들어주고 폼이 create될때, application메세지를 주어 하는방법으로 구현하는걸로 해봤습니다. 어떤경우에서인지 모르지만 에러를 아주 가끔 떨어뜨리긴 하더군요.(원인이 뭔지는 모르겠습니다.)

그런데 폼을 repository해서 귀찮은 코딩을 없애고자 하는데요.

소스는 아래와같습니다.
=====================================================================
procedure Tfrm_qmbm001.FormCreate(Sender: TObject);
begin
  Application.OnMessage := WheelControl;
end;

procedure Tfrm_qmbm001.WheelControl(var Msg: TMsg; var Handled: Boolean);
begin
  try
    if Msg.message = WM_Mousewheel then
      if (ActiveControl is TDBGrid) or (ActiveControl is TDBLookupComboBox) then begin
        if Msg.wParam >0 then begin
          Keybd_event(VK_UP, VK_UP, 0,0);
          Keybd_event(VK_UP, VK_UP, KEYEVENTF_KEYUP,0);
          ActiveControl.Invalidate;
        end
        else if Msg.wParam < 0 then begin
          Keybd_event(VK_DOWN, VK_DOWN, 0,0);
          Keybd_event(VK_DOWN, VK_DOWN, KEYEVENTF_KEYUP,0);
          ActiveControl.Invalidate;
        end;
      end;
  except
    on E:Exception do
      ShowMessage(E.Message);
  end;
=====================================================================
그런 문제는 폼을 repository하는데, 실질적으로 폼위에 아직 TDBGrid나 TDBLookupComboBox같은것은 없다는거죠. 그럼 코딩을 계속하거나, 아니면 상속을 해서 해야되는데요.

되도록이면 repository로 구현하는 방법이 없을까요?

상속받는다면 간단하게 좀 예를 보여주시면 안될까요? 항상 객체지향은 저에게 책을 볼때는 아하인데, 구현은 정말 단순한거 이상은 안되는거 있죠. 아직은 내공이 모자라서 그런거 같습니다.

좀 도와주세요~~~~
1  COMMENTS
  • Profile
    빵빵빵 2003.07.02 17:42
    아침에 출근하니까 문득 생각이 나네요. 전 간단하게 질문한다고 했는데, 다른분들은 아니였는가봅니다. 다음부터는 좀더 간소하고 요약되게 질문을 해야겠다는 생각이 드는군요.

    제가 생각한 결론은 uses절에 DBGrids를 추가하면되지 않을까 싶습니다.