Hallo Zusammen,
ich habe nach Handbuch versucht OleDragDrop zu implementieren, doch leider ohne Erfolg.
Ich vermute das ich irgend eine Eigenschaft im Eigenschafteninspektor verstellt habe
und es deshalb nicht funktioniert.
Wenn ich die Doku richtig gelesen habe, funktioniert DragDrop indem:
Unter Eigenschaften DragDropSettings eingestellt ist:
OleAcceptFiles, OleAcceptText, OleAcceptURLs, OleDropSource und OleDropTarget.
ShowCells kann nicht gesetzt werden. Weis der Geier warum nicht.
-OnOleDrag Allow wird auf true gesetzt wenn DragDrop erlaubt ist.
-OnDragStart zwischenspeichern der Quellkomponente aus dieser DragDrop initiiert wurde.
-OnDragOver wird gefeuert wenn die Zielkomponente das Grid ist und gibt die Ziel-Zelle an fürs Drop
-OnDragStop löscht die gemerkte Quellkomponente nach dem Drop
-OnOleDropCol wird gefeuert wenn das Drop durchgeführt werden soll und liefert die Zelle
Bei mir wird OnOleDrag und OleDragStart gefuert, jedoch alle anderen Events nicht.
Delphi-Quellcode:
procedure Tfr1.tg1OleDrag(Sender: TObject;
ARow, ACol: Integer; data: String; var Allow: Boolean);
begin
inherited;
Allow := ((ARow>0) and (ACol>0) and IsControlKeyPressed);
end;
procedure Tfr1.tg1OleDragStart(Sender: TObject;
ARow, ACol: Integer);
begin
inherited;
ddsource := Sender;
end;
procedure Tfr1.tg1OleDragOver(Sender: TObject;
ARow, ACol: Integer; var Allow: Boolean);
begin
inherited;
Allow := true; //(ddsource = Sender);
if Allow then
begin
sb1.Panels[3].caption := Format('Row%d Col%d',[ARow, ACol]);
end;{if}
end;
procedure Tfr1.tg1OleDragStop(Sender: TObject;
OLEEffect: Integer);
begin
inherited;
ddsource := nil;
end;
procedure Tfr1.tg1OleDropCol(Sender: TObject;
ARow, ACol, DropCol: Integer);
begin
inherited;
sb1.Panels[4].caption := Format('Row%d Col%d',[ARow, ACol]);
end;
hat jemand eine Idee?
Gruß Kostas