سلام
من می خوام چند تا عکس را با هم انتخاب کنم و بعد مثلا همه در یک فولدر کپی بشوند . لطفا راهنمایی کنید
تشکر
سلام
من می خوام چند تا عکس را با هم انتخاب کنم و بعد مثلا همه در یک فولدر کپی بشوند . لطفا راهنمایی کنید
تشکر
آخرین ویرایش به وسیله soft-c : سه شنبه 31 شهریور 1394 در 15:52 عصر
با سلام
خب اگر در دلفی عکس ها رو میاری با فرمان extractFilename نامش و پسوندش رو بگیر در یک آرایه بریز و یک حلقه به اندازه آرایه های موجود بنویس و فرمان copy رو در حلقه اجرا کن.
فقط تعداد ارایه هات مشخص باشه که اگر بیشتر شد توی حلقه پیغام access vioulation (ببخشید اگر اشتباه نوشتم)بهت میده
به همین سادگی
ببینید من می خوام با opendialog هم زمان چند تا عکس را انتخاب کنم و بعد که ok را زد همه اون عکس ها در یک فولدر ذخیره بشه . یعنی نخواد تک تک عکس ها را انتخاب بکنه .
باید خاصیت MultiSelect برای OpenDialog فعال بشه:
var
i: Integer;
Dest: String;
begin
OpenDialog1.Options := [ofAllowMultiSelect];
if OpenDialog1.Execute then
for i := 0 to OpenDialog1.Files.Count -1 do
begin
Dest:=''; {Your Destination Path}
CopyFile(PChar(OpenDialog1.Files.Strings[i]),PChar(Dest), False);
end;
end;
متغیر Dest رو با مسیر مقصد پر کن.
نمیدونم مشکل از کجا است ولی فایل را کپی نمیکنه ولی پیغام خطایی هم نمی دهد .
یعنی اگر از دستورif copyfile then showmesage ('true')استفاده کنیم پیغامی مبنی بر اینکه عملیات موفقیت آمیز بوده است را نمی دهد
من همین الان کدی رو که نوشتهم تست کردم و مشکلی نداشت.
متغیر Dest رو به این شکل مقدار دهی کردم:
Dest:='D:\' + ExtractFileName(OpenDialog1.Files.Strings[i]);
دستور Execute در صورتی اجرا میشه که دکمه Open زده شده باشه. اگر Cancel انتخاب بشه، مقدار Execute معادل False میشه و وارد دستور if نمیشه.