DragDrop und TDBGrid
-
Hallo zusammen,
ich möchte gerne von einen TDBGrid in ein anderes TDBGrid per Drag and Drop Datensätze verschieben/kopieren.
DragMode steht auf dmManual nach einen MouseDown mach ich
DBGrid1->BeginDrag(false, 5);Nun zu meinen Problem MouseDown wird komischerweise nur auserhalb von den Datensätzen aufgerufen, also in der Titelzeile (Columns) und in leeren Bereichen wo keine Datensatzanzeige ist.
Wie könnte ich es schaffen das der BeginDrag auch von einer Datensatzzeile?
anfängt zu funzen ?Danke für Antworten
VergissES
-
habe die Lösung selbst gefunden Danke.
//im Header private: // Anwender-Deklarationen TWndMethod OldDBGridWindowProc; void __fastcall NewDBGridWindowProc(TMessage &Msg); //im Source void __fastcall TForm1::FormCreate(TObject *Sender) { OldDBGridWindowProc = DBGrid1->WindowProc; DBGrid1->WindowProc = NewDBGridWindowProc; } void __fastcall TForm1::FormDestroy(TObject *Sender) { DBGrid1->WindowProc = OldDBGridWindowProc; } void __fastcall TForm1::NewDBGridWindowProc(TMessage &Msg) { OldDBGridWindowProc(Msg); if(Msg.Msg == WM_LBUTTONDOWN) { int X = LOWORD(Msg.LParam); int Y = HIWORD(Msg.LParam); TGridCoord Coord = DBGrid1->MouseCoord(X,Y); if (Coord.X > 0 && Coord.Y > 0) DBGrid1->BeginDrag(false, 5); } }
mfg
VergissEs