القنـاص المصرى
15-09-2013, 12:34 AM
السلام عليكم ورحمة الله وبركاته
بسم الله الرحمن الرحيم
اخوانى الكرااام انا عارف انى دوشتكم باستفساراتى الكثيرة المريرة
واعرف ان الحمل عليكم زائد وما فى المنتدى من محترفين الا ومعدودين واعلم ان الحمل عليئكم زائد فسامحونى
اما عن اسفسارى هذا فانا لا اعلم اهو خطأ برمجى ام عيب فى البرنامج نفسه
طيب تعالو نشوف الخطأ
------------------------------
اولا هذا كود مشترك فى صفحات المشروع
-- الثور على كل الملفات بداخل المجلد Actions
files = File.Find("AutoPlay\\Docs\\Actions", "*.*", true, true, nil, nil);
-----------------------------------------------------------------------------------
if files == nil then
Dialog.Message("تنبيه", "لايوجد ملفات لنسخها", MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
else
-- حساب الحجم الكلى للملفات
total_size = 0
for x,y in pairs (files) do
get_size = File.GetSize(y);
total_size = total_size + get_size
end
total_size = String.GetFormattedSize(total_size, FMTSIZE_AUTOMATIC, true);
Label.SetText("sz", total_size);
-----------------------------------------------------------------------------------
-- ÍÓÇÈ ÚÏÏ ÇáãáÝÇÊ Çáßáí
count = Table.Count(files);
Label.SetText("all", count);
-----------------------------------------------------------------------------------
-- ÅÌÑÇÁ ÚãáíÉ ÇáäÓÎ ÈÚÏ ÇáÊÍÞÞ ãä ÇáãÓÇÑ ÇáåÏÝ
path = Input.GetText("Input1");
if path == "Choose Target Folder to Copy Actions" then
Dialog.Message("ÊäÈíå", "ÍÏÏ ÇáãÓÇÑ ÇáÐí ÊÑíÏ äÓÎ ÇáãáÝÇÊ Åáíå", MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
else
Folder.Create(path.."\\Actions");
path = path.."\\Actions"
for x,y in pairs (files) do
File.Copy(y, path, false, true, false, false, nil);
Label.SetText("current_num", x);
Progress.SetCurrentPos("Progress1", x * 100 / count);
end -- for x,y in pairs (files) do
Dialog.Message("Notice", "Done !!", MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
end -- if path == "" then
-----------------------------------------------------------------------------------
end -- if files ~= nil then
لايختلف هذا الكود من صفحة لصفحة الا المسار
فالكود المطروح هو مسار ملفات الاكشنز الخاصة بالفوتوشوب وهو فى زر التنصيب الخاص بصفحة الاكشنز
واما الصفحات الاخرى فيختلف المسار اللى هو Autoplay\\Docs\\Actions
فيتم تغيره الى مسار اخر حسب الملف اللى واضعه فى التجميعة
المشكلة هو انى لايمكننى استخدام الكود الا مرة واحدة
مثلا :
عندى صفحتين واحدة خاصة بالصور والثانية خاصة بالاكشنز
اذا دخلت الى صفحة الاكشنز ووضعت مسار النسخ فى Input 1 يتم النسخ ثم اذا ضغط على زر الرجوع الى الصفحة الرئيسية ثم التنقل
الى صفحة الصور وانفذ عملية النسخ فتظهر رسالة "لاتوجد ملفات لنسخها" واذا راجعت الكود المذكور بالاعلى ستجد انها لن تظهر
الا فى حالة ان تؤل قيمة File.Find الى القيمة Nill
مع العلم انه نفس الكود اللى فى صفحة الاكشنز باختلاف المسار
اما اذا قمت بأغلاق التجميعة والبدأ بتنصيب الصور يتم التنصيب بنفس الطريقة
وعند العودة الى تنصيب الاكشنز يحدث نفس الخطأ
وهذا فيديو توضيحى للمشكلة
http://www.youtube.com/watch?v=QTnGq_dbTUc
ارجو ان تفيديونى فهذه المشكلة غرريبة جدا
بسم الله الرحمن الرحيم
اخوانى الكرااام انا عارف انى دوشتكم باستفساراتى الكثيرة المريرة
واعرف ان الحمل عليكم زائد وما فى المنتدى من محترفين الا ومعدودين واعلم ان الحمل عليئكم زائد فسامحونى
اما عن اسفسارى هذا فانا لا اعلم اهو خطأ برمجى ام عيب فى البرنامج نفسه
طيب تعالو نشوف الخطأ
------------------------------
اولا هذا كود مشترك فى صفحات المشروع
-- الثور على كل الملفات بداخل المجلد Actions
files = File.Find("AutoPlay\\Docs\\Actions", "*.*", true, true, nil, nil);
-----------------------------------------------------------------------------------
if files == nil then
Dialog.Message("تنبيه", "لايوجد ملفات لنسخها", MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
else
-- حساب الحجم الكلى للملفات
total_size = 0
for x,y in pairs (files) do
get_size = File.GetSize(y);
total_size = total_size + get_size
end
total_size = String.GetFormattedSize(total_size, FMTSIZE_AUTOMATIC, true);
Label.SetText("sz", total_size);
-----------------------------------------------------------------------------------
-- ÍÓÇÈ ÚÏÏ ÇáãáÝÇÊ Çáßáí
count = Table.Count(files);
Label.SetText("all", count);
-----------------------------------------------------------------------------------
-- ÅÌÑÇÁ ÚãáíÉ ÇáäÓÎ ÈÚÏ ÇáÊÍÞÞ ãä ÇáãÓÇÑ ÇáåÏÝ
path = Input.GetText("Input1");
if path == "Choose Target Folder to Copy Actions" then
Dialog.Message("ÊäÈíå", "ÍÏÏ ÇáãÓÇÑ ÇáÐí ÊÑíÏ äÓÎ ÇáãáÝÇÊ Åáíå", MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
else
Folder.Create(path.."\\Actions");
path = path.."\\Actions"
for x,y in pairs (files) do
File.Copy(y, path, false, true, false, false, nil);
Label.SetText("current_num", x);
Progress.SetCurrentPos("Progress1", x * 100 / count);
end -- for x,y in pairs (files) do
Dialog.Message("Notice", "Done !!", MB_OK, MB_ICONINFORMATION, MB_DEFBUTTON1);
end -- if path == "" then
-----------------------------------------------------------------------------------
end -- if files ~= nil then
لايختلف هذا الكود من صفحة لصفحة الا المسار
فالكود المطروح هو مسار ملفات الاكشنز الخاصة بالفوتوشوب وهو فى زر التنصيب الخاص بصفحة الاكشنز
واما الصفحات الاخرى فيختلف المسار اللى هو Autoplay\\Docs\\Actions
فيتم تغيره الى مسار اخر حسب الملف اللى واضعه فى التجميعة
المشكلة هو انى لايمكننى استخدام الكود الا مرة واحدة
مثلا :
عندى صفحتين واحدة خاصة بالصور والثانية خاصة بالاكشنز
اذا دخلت الى صفحة الاكشنز ووضعت مسار النسخ فى Input 1 يتم النسخ ثم اذا ضغط على زر الرجوع الى الصفحة الرئيسية ثم التنقل
الى صفحة الصور وانفذ عملية النسخ فتظهر رسالة "لاتوجد ملفات لنسخها" واذا راجعت الكود المذكور بالاعلى ستجد انها لن تظهر
الا فى حالة ان تؤل قيمة File.Find الى القيمة Nill
مع العلم انه نفس الكود اللى فى صفحة الاكشنز باختلاف المسار
اما اذا قمت بأغلاق التجميعة والبدأ بتنصيب الصور يتم التنصيب بنفس الطريقة
وعند العودة الى تنصيب الاكشنز يحدث نفس الخطأ
وهذا فيديو توضيحى للمشكلة
http://www.youtube.com/watch?v=QTnGq_dbTUc
ارجو ان تفيديونى فهذه المشكلة غرريبة جدا