delphi4arab منتديات دلفي للعرب
سحب واسقاط الملفات الى برنامجك - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي التقنية (https://delphi4arab.net/forum/forumdisplay.php?fid=6)
+--- قسم : دلفي والتعامل مع الملفات (https://delphi4arab.net/forum/forumdisplay.php?fid=22)
+--- الموضوع : سحب واسقاط الملفات الى برنامجك (/showthread.php?tid=1760)



سحب واسقاط الملفات الى برنامجك - ramijz - 07-03-2010

السلام عليكم ورحمة الله وبركاته

اخواني الاعزاء هذه شيفرة تستطيع من خلالها ان تقوم بسحب اي ملف من خارج البرنامج واسقاطه الى نافذة البرنامج فيقوم بعرض اسم ومسار الملف الذي قمت بسحبه
كود :
procedure TForm1.AcceptFiles( var msg : TMessage ); const cnMaxFileNameLen = 255; var i, nCount : integer; acFileName : array [0..cnMaxFileNameLen] of char; begin nCount := DragQueryFile( msg.WParam, $FFFFFFFF, acFileName, cnMaxFileNameLen ); for i := 0 to nCount-1 do begin DragQueryFile( msg.WParam, i, acFileName, cnMaxFileNameLen ); Edit1.Text:=acFileName; end; DragFinish( msg.WParam ); end; procedure TForm1.FormCreate(Sender: TObject); begin DragAcceptFiles( Handle, True ); end;
مع تحياتي الى كل المشرفين على هذا الموقع الجميل


سحب واسقاط الملفات الى برنامجك - ramijz - 07-03-2010

السلام عليكم

ربما يتسأل البعض مااستفيد من سحب واسقاط الملف الى برنامج اليكم هذه التجربة وهي تقوم بعرض ملف صورة في حال قمت بسحب الصورة الى داخل نافذة البرنامج
كود :
uses ShellApi; procedure TForm1.FormCreate(Sender: TObject); begin originalPanelWindowProc := Panel1.WindowProc; Panel1.WindowProc := PanelWindowProc; DragAcceptFiles(Panel1.Handle,true); end; procedure TForm1.PanelWindowProc(var Msg: TMessage); begin if Msg.Msg = WM_DROPFILES then PanelImageDrop(TWMDROPFILES(Msg)) else originalPanelWindowProc(Msg); end; procedure TForm1.PanelImageDrop(var Msg: TWMDROPFILES); var numFiles : longInt; buffer : array[0..MAX_PATH] of char; begin numFiles := DragQueryFile(Msg.Drop, $FFFFFFFF, nil, 0); if numFiles > 1 then begin ShowMessage('You can drop only one image file at a time!'); end else begin DragQueryFile(Msg.Drop, 0, @buffer, sizeof(buffer)); try Image1.Picture.LoadFromFile(buffer); except on EInvalidGraphic do ShowMessage('Unsupported image file, or not an image!'); end; end; end;
والسلام ختام


سحب واسقاط الملفات الى برنامجك - kachwahed - 07-03-2010

وعليكم السلام ورحمة الله وبركاته
مثال جميل أخي ramijz
وإن كان سبقك إليه غيرك Smile
في انتظار المزيد من الجديد، بالتوفيق.



سحب واسقاط الملفات الى برنامجك - ramijz - 07-03-2010

وعليكم السلام اخ kachwashed

قمت بالبحث بالموقع عن السحب والاسقاط ولكنني يبدو لم ابحث بشكل جيد ففكرت ان اقوم بوضع هذه التجربة وهي ليست لي بل من مقالة اجنبية .


سحب واسقاط الملفات الى برنامجك - ابن فلسطين - 17-06-2010

شكرا اخي ramijz على الكود الذي يمكننا من خلال اضافته الى برنامجنا المصمم بالدلفي بان نقوم بسحب واسقاط اي ملف الى الملف.
نتمنى منك المزيد يا غالي ولك مني كل الشكر والتقدير.


سحب واسقاط الملفات الى برنامجك - Raiven - 12-02-2011

شكرآ لك أخي على الكود الرائع
وأعتقد إن الكود له فوائد وإستخدامات عديده
ومن بينهم ومن أهمها هي تسهيل عمليه الفتح لبعض الملفات
شكرآ مرة أخرى


سحب واسقاط الملفات الى برنامجك - المحجوب - 29-11-2011

نعم كود جميل ويستخدم دائماً في مشاريع الملتميديا
اشكرك ...


سحب واسقاط الملفات الى برنامجك - JS_0 - 26-03-2012

شكرا جزيلا ولكن هل لي في سؤال إذا أردت البرنامج أن يقبل نوع من الملفات مثل .exe
فماذا أفعل ؟


سحب واسقاط الملفات الى برنامجك - kachwahed - 27-03-2012

كحل سريع، قم بفحص لاحقة الملف:
كود :
DragQueryFile( msg.WParam, i, acFileName, cnMaxFileNameLen ); if SameText(ExtractFileExt(acFileName), '.exe') then Edit1.Text:=acFileName;
والأفضل قراءة رأس الملف:
كود :
http://www.delphidabbler.com/articles?article=8
بالتوفيق.