Hallo,
ich habe gerade an einem Drag&Drop System gearbeitet mit welchem ich einen Datensatz von einem DBGrid ausgewählt habe und auf ein zweites rübergezogen habe.
Im ersten Grid den Datensatz auszuwählen war kein Problem, da dieser automatisch ausgewählt wird.
Probleme hatte ich beim zweiten Grid, da ich da keinen Klick ausführe, sondern lediglich die Maustaste loslasse und somit nicht der gewünschte Datensatz ausgewählt wird.
Jetzt habe ich mir folgendes Konstrukt gebastelt:
Delphi-Quellcode:
procedure TForm1.DBGridDragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
var
gc : TGridCoord;
begin
with TDBGrid(Sender) do
try
gc:=MouseCoord(X,Y);
if (gc.Y > 0)and(gc.X > 0)then
DataSource.DataSet.MoveBy(gc.Y-TStringGrid(Sender).Row);
finally
end;
end;
Damit wird während des Draggens immer der Datensatz ausgewählt über den ich mich mit dem Mauszeiger befinde.
Das Konstrukt kann genausogut im OnMouseMove des DBGrids eingesetzt werden, da ich lediglich die X,Y Werte benötige.
MfG
[edit=Chakotay1308] Mfg, Chakotay1308[/edit]