Перемещение из DbGrid
|
Что говорят мыши:
Мышь квакера: «Слушай, кореш, давай ещё разок колесо, я кайф недоловила»
Мышь фотошопера: “Так, вот в эту точку? Сейчас, блин, с тобой косоглазой станешь, да, вижу, вижу, что опять не то выделила? Да иди ты на хр@н, это у тебя руки дрожат!”
Мышь програмиста: “Я, это, посплю децл, ок?”
Мышь любителя DOSа: “It’s no fate”
|
Кто-нибудь пробовал перемещать что-либо из DbGrid методом перетащи и брось
(drag and drop)? Вы сами можете создать потомка TDBGrid (или TDBCustomGrid) и
добавить необходимую функциональность для достижения цели.
Скопируйте код из данного "Совета", сохраните его с именем DBGrid.pas и
установите компонент в палитру. У Вас появится новый компонент EDBGrid с двумя
новыми событиями: OnMouseDown и OnMouseUp. Я не считаю эту информацию
конфиденциальной: это ошибка разработчиков Delphi! На самом деле эти два события
должны быть частью компонента DBGrid.
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.
|
|