Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Delphi > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 20.08.2017, 15:18   #1
Правильный Вася
Пользователь
 
Регистрация: 15.08.2017
Сообщений: 10
Репутация: 59
Вопрос обработка Drag'n'Drop в DBGrid блокирует доступ к данным

есть DBGrid, хочется иметь возможность пользователю манипулировать с данными в нем и при этом хватать мышью отдельные строки и перетаскивать их, например, в другой контрол
если у DBGrid.DragMode=dmAutomatic, то с данными пользователь уже не может работать, а если dmManual, то тянуть не получается

можно ли это как-то совместить без дополнительных переключений со стороны пользователя?
где почитать про это?

спасибо
Правильный Вася вне форума   Ответить с цитированием
Старый 28.08.2017, 23:55   #2
Правильный Вася
Пользователь
 
Регистрация: 15.08.2017
Сообщений: 10
Репутация: 59
По умолчанию

вариант решения проблемы такой
ставим DBGrid.DragMode=dmManual, в обработчике DBGrid.MouseDown прописываем grid.BeginDrag( False, 20 );
а чтоб этот обработчик сработал (есть в Дельфи некая странность, что именно здесь этот обработчик не срабатывает в области данных сетки), делаем финт ушами:
Код:

type
  TDBGrid = class( DbGrids.TDBGrid )
    protected
      procedure MouseDown( Button: TMouseButton; Shift: TShiftState; X, Y: Integer ); override;
  end;
...
procedure TDBGrid.MouseDown( Button: TMouseButton; Shift: TShiftState; X, Y: Integer );
var
  xCell: TGridCoord;
begin
  inherited;
  xCell := MouseCoord( X, Y );
  if( xCell.X >= IndicatorOffset ) and ( xCell.Y > 0 ) then
    if( Assigned( OnMouseDown ) ) then
      OnMouseDown( Self, Button, Shift, X, Y );
end;

Правильный Вася вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
drag and drop c# katbka Помощь студентам 1 05.03.2012 05:09
drag $ drop в DBGrid AlexandrSid Общие вопросы Delphi 13 21.06.2010 10:55
Нужна помощь (Drag-And-Drop & Drag-Abd-Dock)) Arkuz Общие вопросы Delphi 1 18.04.2009 00:15
Drag & Drop в DBGrid Mishechka Помощь студентам 33 26.03.2009 16:01
Drag and Drop Xardas Общие вопросы Delphi 8 21.01.2008 00:09


00:20.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru