Q&A

  • 드래그드롭인데..쩝 안대네염..
TCustomPanel를 상속받아

드래그를 구현해 볼려구염.



TMyPanel = class(TCustomPanel)

private

protected

public

constructor Create(AOwner: TComponent); override;

destructor Destroy; override;

published

property OnDragOver;

end;



이렇게 했는데..

쩝...도무지 이벤트가 발생이 안돼여..



도와 주세여..





2  COMMENTS
  • Profile
    kylix 2001.04.25 02:28
    뭔가를 잘못알고 계신거 같군요. Drag&Drop은 사용자가 발생시키는 이벤트이지 개발자가 임의로 발생시키는 이벤트가 아닙니다. 개발자는 사용자가 발생시킨 Drag&Drop에 적절하게 반응하도록 하시면 됩니다.



    김진호 wrote:

    > TCustomPanel를 상속받아

    > 드래그를 구현해 볼려구염.

    >

    > TMyPanel = class(TCustomPanel)

    > private

    > protected

    > public

    > constructor Create(AOwner: TComponent); override;

    > destructor Destroy; override;

    > published

    > property OnDragOver;

    > end;

    >

    > 이렇게 했는데..

    > 쩝...도무지 이벤트가 발생이 안돼여..

    >

    > 도와 주세여..

    >

    >

  • Profile
    김진호 2001.04.25 04:35
    kylix wrote:

    > 뭔가를 잘못알고 계신거 같군요. Drag&Drop은 사용자가 발생시키는 이벤트이지 개발자가 임의로 발생시키는 이벤트가 아닙니다. 개발자는 사용자가 발생시킨 Drag&Drop에 적절하게 반응하도록 하시면 됩니다.

    >

    > 김진호 wrote:

    > > TCustomPanel를 상속받아

    > > 드래그를 구현해 볼려구염.

    > >

    > > TMyPanel = class(TCustomPanel)

    > > private

    > > protected

    > > public

    > > constructor Create(AOwner: TComponent); override;

    > > destructor Destroy; override;

    > > published

    > > property OnDragOver;

    > > end;

    > >

    > > 이렇게 했는데..

    > > 쩝...도무지 이벤트가 발생이 안돼여..

    > >

    > > 도와 주세여..

    > >

    > >



    그말씀이 맞네염...

    그럼 한가지 더 여쭈어 볼께염..



    판넬이 있구요..판넬이 Timage가 언쳐 있어염..

    Timage의 크기는 판넬과 같구요...



    근데..거기서 사용자가 마우스 오른쪽 버튼을 클릭 했을때를 알기 위해..

    ImgProc를 사용 했는데.. 원인은 거기에 있었던거 같습니다.



    FOldWndProc(Msg);=>를 주석 처리 한후 마면 문제는 없는데...그러면 원하는 이미지가 안나오구...참 난감 합니다..

    그러니깐 이미지와 판넬이 하나인거처럼 할려구요...

    쩝 ..... 한번만 더 도와 주세염..



    TMyPanel = class(TCustomPanel)

    private

    FOldWndProc : TWndMethod;

    protected

    public

    constructor Create(AOwner: TComponent); override;

    destructor Destroy; override;

    published

    property OnDragOver;

    end;



    constructor TMyPanel.Create(AOwner: TComponent);

    begin

    inherited Create(AOwner);

    FAction := False;

    Font.Name := '굴림체';

    Font.Size := 9;



    Fimage := TImage.Create(AOwner);

    Fimage.Parent := Self;

    FOldWndProc := Fimage.WindowProc;

    Fimage.WindowProc := ImgProc;

    end;



    procedure TMyPanel.ImgProc(var Msg : TMessage);

    var Pnt : TPoint;

    begin

    FOldWndProc(Msg);

    case Msg.Msg of

    WM_RBUTTONDOWN : begin

    GetCursorPos(Pnt);

    FMouseRightChick := True;

    if FPopUp <> nil then FPopUp.Popup(Pnt.x, Pnt.y);

    end;

    CM_MOUSELEAVE : begin

    FMouseRightChick := False;

    end;

    else exit;

    end;

    end;