PDA

View Full Version : سوال: ذخیره چند عکس با هم و ذخیره در یک فولدر



soft-c
سه شنبه 31 شهریور 1394, 15:01 عصر
سلام
من می خوام چند تا عکس را با هم انتخاب کنم و بعد مثلا همه در یک فولدر کپی بشوند . لطفا راهنمایی کنید
تشکر

ابوالفضل عباسی
سه شنبه 31 شهریور 1394, 17:58 عصر
با سلام
خب اگر در دلفی عکس ها رو میاری با فرمان extractFilename نامش و پسوندش رو بگیر در یک آرایه بریز و یک حلقه به اندازه آرایه های موجود بنویس و فرمان copy رو در حلقه اجرا کن.
فقط تعداد ارایه هات مشخص باشه که اگر بیشتر شد توی حلقه پیغام access vioulation (ببخشید اگر اشتباه نوشتم)بهت میده
به همین سادگی

soft-c
سه شنبه 31 شهریور 1394, 21:34 عصر
ببینید من می خوام با opendialog هم زمان چند تا عکس را انتخاب کنم و بعد که ok را زد همه اون عکس ها در یک فولدر ذخیره بشه . یعنی نخواد تک تک عکس ها را انتخاب بکنه .

hamedjim
سه شنبه 31 شهریور 1394, 22:28 عصر
باید خاصیت 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 رو با مسیر مقصد پر کن.

soft-c
چهارشنبه 01 مهر 1394, 10:52 صبح
نمیدونم مشکل از کجا است ولی فایل را کپی نمیکنه ولی پیغام خطایی هم نمی دهد .
یعنی اگر از دستور
if copyfile then showmesage ('true') استفاده کنیم پیغامی مبنی بر اینکه عملیات موفقیت آمیز بوده است را نمی دهد

hamedjim
چهارشنبه 01 مهر 1394, 11:14 صبح
من همین الان کدی رو که نوشته‌م تست کردم و مشکلی نداشت.
متغیر Dest رو به این شکل مقدار دهی کردم:



Dest:='D:\' + ExtractFileName(OpenDialog1.Files.Strings[i]);

hamedjim
چهارشنبه 01 مهر 1394, 12:14 عصر
دستور Execute در صورتی اجرا میشه که دکمه Open زده شده باشه. اگر Cancel انتخاب بشه، مقدار Execute معادل False میشه و وارد دستور if نمیشه.