-1
我注意到當我使用OnDragDrop
事件和OnDragOver
事件時出現錯誤。看看這段代碼:Firemonkey拖放可能的錯誤
procedure TForm1.Button1DragDrop(Sender: TObject; const [Ref] Data: TDragObject;
const [Ref] Point: TPointF);
var t,d: TButton;
begin
T := TButton(Sender);
D := TButton(Data.Source);
T.data := T.data + D.data;
Score(T.data);
D.data := 0;
T.isOk := true;
end;
procedure TForm1.Button1DragOver(Sender: TObject; const [Ref] Data: TDragObject;
const [Ref] Point: TPointF; var Operation: TDragOperation);
begin
if ((Sender is TButton) and (Data.Source is TButton) and not(Sender = Data.Source)
and (TButton(Sender).Text = TButton(Data.Source).Text) and (TButton(Data.Source).Text <> '')) then
begin
operation := TDragOperation.Move;
end
else
begin
operation := TDragOperation.None;
end;
end;
這個代碼與您可以在下面的圖中看到的形式:
這是一個網格佈局與一些按鈕內; Button1是左上角的按鈕,所有其他按鈕都有指向Button1事件的事件OnDragDrop
和OnDragOver
。例如look。
當我在Windows(目標平臺win32位)下運行該程序時,我可以使用光標和鼠標將網格中的按鈕拖放到網格中。當我移動到android時出現問題,因爲在我的手機上我無法拖放按鈕。任何想法?
這是一個使用Firemonkey構建的多設備應用程序。我在想,我必須爲每個按鈕聲明DragDrop和DragOver事件,而不是引用Button1。這可能嗎?
AFAIK,IFMXDragDropService僅適用於Windows和Mac。 –