Einzelnen Beitrag anzeigen

NickelM

Registriert seit: 22. Jul 2007
Ort: Carlsberg
445 Beiträge
 
Delphi 2009 Professional
 
#7

Re: Probleme mit Drag & Drop und StringGrid

  Alt 22. Aug 2009, 00:26
Aslo die Zeile mit
Accept := (Sender = Source) and (Row > 0); Wird dir immer False liefern, weil Sender das Grid ist selbst ist und Source ist das Grid wovon er ds annehmen soll xD
und Accept muss True geben damit es funkt xD
2. Mit MouseToCell geht das net, da es sich nur auf sich selbst bezieht und net auf die anderen
Du musst die erstmal selbst festlegen wenn du DragKind auf dmManual hast, wann er das machen soll, bei dir am besten bei MouseDown

Delphi-Quellcode:
procedure TForm1.StringGrid1MouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
StringGrid1.BeginDrag(True);
end;

end.
So damit startest du das Drag and Drop
als nächstes machste bei deinem anderen StringGrid bei DragOver folgendes
Delphi-Quellcode:
procedure TForm1.StringGrid2DragOver(Sender, Source: TObject; X,
  Y: Integer; State: TDragState; var Accept: Boolean);
begin
If Source is TStringGrid then //Nur StringGirds annehmen
Accept := True;
end;
Nun machste in Drag and Drop folgendas
Delphi-Quellcode:
procedure TForm1.StringGrid2DragDrop(Sender, Source: TObject; X,
  Y: Integer);
var Cell : TPoint;
    Row : Integer;
begin
(Sender as TStringGrid).MouseToCell(X,Y,Cell.X,Cell.Y);
Row := (Source as TStringGrid).Row;
(Sender as TStringGrid).Rows[Cell.Y].Assign((Source as TStringGrid).Rows[Row]);
(Source as TStringGrid).Rows[Row].Clear;
end;

end.
Nickel
"Lebe und denke nicht an morgen"
Zitat aus dem gleichnamigen Bollywoodfilm.
  Mit Zitat antworten Zitat