المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : سحب واسقاط الملفات الى برنامجك


ramijz
07-03-2010, 01:27 PM
السلام عليكم ورحمة الله وبركاته

اخواني الاعزاء هذه شيفرة تستطيع من خلالها ان تقوم بسحب اي ملف من خارج البرنامج واسقاطه الى نافذة البرنامج فيقوم بعرض اسم ومسار الملف الذي قمت بسحبه

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, 01:56 PM
السلام عليكم

ربما يتسأل البعض مااستفيد من سحب واسقاط الملف الى برنامج اليكم هذه التجربة وهي تقوم بعرض ملف صورة في حال قمت بسحب الصورة الى داخل نافذة البرنامج

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, 06:24 PM
وعليكم السلام ورحمة الله وبركاته
مثال جميل أخي ramijz
وإن كان سبقك إليه غيرك :) (http://www.delphi4arab.com/forum/showthread.php?t=2199)
في انتظار المزيد من الجديد، بالتوفيق.

ramijz
07-03-2010, 06:28 PM
وعليكم السلام اخ kachwashed

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

ابن فلسطين
17-06-2010, 06:38 PM
شكرا اخي ramijz على الكود الذي يمكننا من خلال اضافته الى برنامجنا المصمم بالدلفي بان نقوم بسحب واسقاط اي ملف الى الملف.
نتمنى منك المزيد يا غالي ولك مني كل الشكر والتقدير.

Raiven
12-02-2011, 04:45 PM
شكرآ لك أخي على الكود الرائع
وأعتقد إن الكود له فوائد وإستخدامات عديده
ومن بينهم ومن أهمها هي تسهيل عمليه الفتح لبعض الملفات
شكرآ مرة أخرى

المحجوب
29-11-2011, 06:24 PM
نعم كود جميل ويستخدم دائماً في مشاريع الملتميديا
اشكرك ...