Ich bin da aber ziemlich hilflos.
Ich habe im Delfi Kochbuch einen Artikel gefunden, der sich mit drag&drop befasst, allerdings wird da zwichen 2 Editierfeldern gezogen.
Ich habe versucht das für mich anzupassen.
Was hab ich schon gemacht:
Code: Alles auswählen
procedure TForm1.VokabelgitterMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Vokabelgitter.BeginDrag(false);
end;
Das scheint zu gehen. wenn ich in das Feld klicke und die Maus bewege, ändert sich der Cursor.
Code: Alles auswählen
procedure TForm1.VokabelgitterDragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
begin
if source is TStringGrid then Accept := true;
end;
Was da passiert weiß ich nicht so recht, der Compiler akzeptiert es aber.
bevor ich die Zelle verlasse speichere ich erst noch die Spalten und Reihen in den Variablen "letzteSpalte,letzteReihe".
Code: Alles auswählen
procedure TForm1.VokabelgitterDragDrop(Sender, Source: TObject; X, Y: Integer);
begin
if source is TStringGrid then vokabelgitter.Cells[vokabelgitter.Col,vokabelgitter.Row] := vokabelgitter.Cells[letzteSpalte,letzteReihe];
end;
Jetzt sollte es ja in der neuen Zelle stehen. tut es aber nicht.
Und die alte Zelle ist nun leer, soll aber auch nicht so sein.
Was läuft da falsch?
Gruß Fritz