![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблема с DBGrid [D5, Paradox]
Bazzilio © (2003-01-30 07:21:00)Помогите пожалуйста, проект горит!
Нужно чтобы у пользователя была возможность делать drag&drop записей в пределах одной таблицы. Пробовал простые вставка/удаление, работает, но очень коряво. Может есть у кого опыт в этой области? Может не стоит использовать dbgrid?
BlackTiger (2003-01-30 10:27:00) [1]Конечно нет! А смысл?
Mike Kouzmine (2003-01-30 10:20:00) [2]стандартный DBGRid не позволяет делать D&D?
dimis (2003-01-30 08:54:00) [3]подумал и решил что лучше привести полный код компонента
unit MyRXDBGrid;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids,RXDBCtrl;
type
TMyRXDBGrid = class(TRXDBGrid)
private
{ Private declarations }
FOnMouseDown: TMouseEvent;
protected
{ Protected declarations }
procedure MouseDown(Button: TMouseButton; Shift: TShiftState;
X, Y: Integer); override;
published
{ Published declarations }
property Row;
property OnMouseDown read FOnMouseDown write FOnMouseDown;
end;
procedure Register;
implementation
procedure TMyRXDBGrid.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 Register;
begin
RegisterComponents("Samples", [TMyRXDBGrid]);
end;
end.
сделано на основе RXDBGrid, но можно и обычный DBGrid
dimis (2003-01-30 08:51:00) [4]стандартный DBGRid не позволяет делать D&D
я писал наследника
переопределял метод
procedure TMyRXDBGrid.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;
а дальше можно применять события
OnDragDrop
OnDragOver
ЮЮ (2003-01-30 08:32:00) [5]А что такое drag&drop в пределах одной таблицы? Может вместо вставка/удаление делать update записи? :-)