Перемещение из DbGrid

Previous  Top  Next

    
 

 

Кто-нибудь пробовал перемещать что-либо из DbGrid методом перетащи и брось (drag and drop)? Вы сами можете создать потомка TDBGrid (или TDBCustomGrid) и добавить необходимую функциональность для достижения цели.

 

Скопируйте код из данного "Совета", сохраните его с именем DBGrid.pas и установите компонент в палитру. У Вас появится новый компонент EDBGrid с двумя новыми событиями: OnMouseDown и OnMouseUp. Я не считаю эту информацию конфиденциальной: это ошибка разработчиков Delphi! На самом деле эти два события должны быть частью компонента DBGrid.

 

Code:

unit Dbgrid;

 

interface

 

uses

 

DBGrids, Controls, Classes;

 

type

 

TEDBGrid = class(TDBGrid)

private

   FOnMouseDown: TMouseEvent;

   FOnMouseUp: TMouseEvent;

protected

   procedure MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y:

     Integer); override;

 

   procedure MouseUp(Button: TMouseButton; Shift: TShiftState; X, Y:

     Integer); override;

 

published

   property OnMouseDown: TMouseEvent read FOnMouseDown write

     FOnMouseDown;

 

   property OnMouseUp: TMouseEvent read FOnMouseUp write FOnMouseUp;

end;

 

procedure Register;

 

implementation

 

procedure Register;

begin

 

RegisterComponents('Data Controls', [TEDBGrid]);

end;

 

procedure TEDBGrid.MouseDown(Button: TMouseButton; Shift: TShiftState;

X, Y: Integer);

begin

 

if Assigned(FOnMouseDown) then

   FOnMouseDown(Self, Button, Shift, X, Y);

inherited MouseDown(Button, Shift, X, Y);

end;

 

procedure TEDBGrid.MouseUp(Button: TMouseButton; Shift: TShiftState; X,

Y: Integer);

begin

 

if Assigned(FOnMouseUp) then

   FOnMouseUp(Self, Button, Shift, X, Y);

inherited MouseUp(Button, Shift, X, Y);

end;

 

end.

 

 

 

©Drkb::03073

       

Взято с http://delphiworld.narod.ru