Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.10.26;
Скачать: [xml.tar.bz2];

Вниз

Drag and Drop в DBGrid   Найти похожие ветки 

 
9899100   (2008-09-16 13:36) [0]

как в обработчике события OnDragDrop в DBGrid приемнике
определить над какой записью был курсор мыши
копался в методах грида
есть такой метод
MouseCoord(X,Y) возвращает строку и столбец под курсором мыши
но чего дальше то делать с этими данными немогу понять
всмысле как номер строки в гриде преобразовать в собственно запись таблицы :(
ибо он возвращает просто номер строки и столбца из тех что отображаются в данный момент но не номер записи и столбца таблицы


 
9899100   (2008-09-16 14:06) [1]

или подскажите как узнать номер записи
DBGrid1.DataSource.DataSet.RecNo
расположенной в первой строке грида??

можно сделать примерно так
gd:=DBGrid2.MouseCoord(X,Y);
Dbgrid2.DataSource.DataSet.MoveBy(TDBGrid(Sender).DataSource.DataSet.RecNo+(gd.Y-1));

но вот тут надо вместо TDBGrid(Sender).DataSource.DataSet.RecNo
поставить номер записи в первой строке грида
а вот как его узнать ?? :(


 
9899100   (2008-09-16 14:37) [2]

лююдиии ну подскажите что нить :)
хоть мысль какую
уже со стен штукатурка сыпеться


 
Ega23 ©   (2008-09-16 14:41) [3]

Любой клик мыши на гриде приводит к тому, что курсор набора данных перемещается на "кликнутую" запись. Вот её ID и запоминай.
А потом на EndDrag (вроде так, делал такое лет 6-7 назад, сейчас точно не помню) уже смотри, откуда StartDrag был вызван.


 
Vlad Oshin ©   (2008-09-16 14:49) [4]

в том то и дело, что клика при EndDrag не происходит..
если на EndDrag поставить закладку где сейчас стоим,
кликнуть программно где закончился драг,
запомнить чего надо,
вернуться на закладку..


 
Ega23 ©   (2008-09-16 14:54) [5]


> в том то и дело, что клика при EndDrag не происходит..


MouseUp происходит...  :)


 
9899100   (2008-09-16 14:57) [6]

>>Vlad Oshin
Хорошая идея :)
надо попробовать


 
9899100   (2008-09-16 15:41) [7]

Черт теперь напрочь запутался в координатах
где какие :(
жуть


 
Jeer ©   (2008-09-16 16:18) [8]


> где какие :(


Прямоугольные.
За проекцией Гаусса-Крюгера прошу на ГИС-форумы.


 
9899100   (2008-09-17 12:16) [9]

Получилось вот таким вот образом
Конечно не ахти но тем неменее :)
unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, DB, DBTables, Grids, DBGrids, StdCtrls;

type
 TForm1 = class(TForm)
   Label1: TLabel;
   DataSource1: TDataSource;
   DBGrid1: TDBGrid;
   Table1: TTable;
   procedure DBGrid1MouseMove(Sender: TObject; Shift: TShiftState; X,
     Y: Integer);
   procedure DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect;
     Field: TField; State: TGridDrawState);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;
 gd:TGridCoord;
 
implementation

{$R *.dfm}

procedure TForm1.DBGrid1MouseMove(Sender: TObject; Shift: TShiftState; X,
 Y: Integer);
Var tt:TGridCoord;
begin
tt:=TDBGrid(sender).MouseCoord(X,Y);
If (tt.X<>gd.X) or (tt.Y<>gd.Y) Then
 Begin
  gd.X:=tt.X;
  gd.Y:=tt.Y;
  TDBGRid(Sender).Repaint;
 End;
end;

procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect;
 Field: TField; State: TGridDrawState);
Var gg:TGridCoord;
begin
gg:=TDBGrid(Sender).MouseCoord(Rect.Left+1,Rect.Top+1);
if (gg.X=gd.X) and (gg.Y=gd.Y) Then
 TDBGrid(sender).Canvas.Font.Color:=clRed;
TDBGrid(sender).DefaultDrawDataCell(Rect,Field,State);
end;



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2008.10.26;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.006 c
9-1174567977
Maximillian
2007-03-22 15:52
2008.10.26
Делаю игру, нужна помощь по скроллингу


2-1221425519
Дима С
2008-09-15 00:51
2008.10.26
Событие изменния ComboBox-a


15-1220332426
Василий Жогарев
2008-09-02 09:13
2008.10.26
DWL-2100AP


11-1194649488
Эдик
2007-11-10 02:04
2008.10.26
Модули для работы с файлами 3D Studio Max.


15-1220252009
Игорь Шевченко
2008-09-01 10:53
2008.10.26
Дмитрий Акуличев, с днем рождения!





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский