delphi - मैं खोल से एक फ़ाइल कैसे खींच सकता हूं?




drag-and-drop delphi-xe6 (3)

आप Raize सॉफ्टवेयर से ड्रॉप- मेस्टर का उपयोग भी कर सकते हैं।

इस सवाल का पहले से ही उत्तर दिया गया है:

मैं डेस्कटॉप से ​​एक वीडियो फ़ाइल को खींचने और छोड़ने की कोशिश कर रहा हूं (जैसे .avi) डेस्कटॉप से, लेकिन मैं इसे अपने प्रोग्राम में नहीं ले सकता। लेकिन जब मैं अपने कार्यक्रम के अंदर खींचने और छोड़ने की कोशिश करता हूं तो यह ठीक काम करता है। पूर्व के लिए: मेरे पास एक संपादिका है और मेरे समर्थक के अंदर एक सूचीबद्दी और मैं उस पाठ को स्थानांतरित कर सकता हूं, जिसमें लिस्टबॉक्स में edittext के अंदर। क्या मैं अंतर नहीं पा सकता?

मैं OpenDialog का उपयोग कर वीडियो लेता हूं। लेकिन मैं इसे खींचने और ड्रॉप के साथ बदलना चाहता हूं।

procedure TForm1.Button1Click(Sender: TObject);
   begin
     if OpenDialog1.Execute then
       begin
          MediaPlayer1.DeviceType:=dtAutoSelect;
          MediaPlayer1.FileName := OpenDialog1.FileName;
          Label1.Caption := ExtractFileExt(MediaPlayer1.FileName);
          MediaPlayer1.Open;
          MediaPlayer1.Display:=Self;
          MediaPlayer1.DisplayRect := Rect(panel1.Left,panel1.Top,panel1.Width,panel1.Height);
          panel1.Visible:=false;
          MediaPlayer1.Play;
       end;

   end;

आप WM_DROPFILES संदेश को पकड़ सकते हैं।

सबसे पहले, सेट करें कि आपका फ़ॉर्म "स्वीकार" फाइलें फॉर्मसीट प्रक्रिया में खींचने से होगा:

DragAcceptFiles(Self.Handle, True);

के बाद, वांछित रूप कक्षा में प्रक्रिया को घोषित करें:

procedure WMDropFiles(var Msg: TMessage); message WM_DROPFILES;

अंत में, प्रक्रिया निकाय को निम्नानुसार भरें:

procedure TForm1.WMDropFiles(var Msg: TMessage);
begin
  // do your job with the help of DragQueryFile function

  DragFinish(Msg.WParam);
end

वैकल्पिक रूप से, एन्डर्स मेलनर द्वारा "द ड्रैग एंड डॉप कंटोनेंट स्वीट फॉर डेल्फी" देखें । यह 32-बिट के साथ-साथ काम करता है और 64-बिट के साथ काम करने के लिए कुछ tweaking भी किया जा सकता है (ब्लॉग पढ़ें - इसे 3 पार्टियों द्वारा उन्नत किया गया है)





delphi-xe6