مشاهده نسخه کامل
: قرار دادن Progressbar برای لود ؟
shadmehrshadow1
09-11-2010, 16:50
ما دوتا لیست ویو با نام های lvWallPapers و ListView_thumb داریم . و دو تا دکمه و یه openfiledialog با نام dialogWallPapers و یه imagelist با نام ImageList1 .
حالا
این کد ها رو در قسمت لود فرم قرار بدید :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
کد دکمه ی اولی برای قرار گرفتن تعدادی آدرس عکس در lvWallPapers :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
کد دکمه دوم برای ایجاد حالت thumb در ListView_thumb :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
با این کد میشه تصاویر درون لیت ویو اولی رو به صورت Thumb در لیست ویو دومی دید . روش خوبی ولی به شرطی که تعداد آیتم ها در لیست ویو اول کم باشه و اگه تعداد آیتم ها زیاد باشه باید خیلی صبر کرد .
من میخوام وقتی روی دکمه ی دومی کلیک میکنم (دکمه ای که حالت thumb رو درست میکنه ) یه پنجره کوچیک باز بشه و توش یه پروگرس بار باشه که نشون بده چقدر دیگه مونده تا حالت thumb و لود عکس ها طول می کشه و یه دکمه که اگه حوصلمون سر رفت بطونیم عملیات رو Cancle کنیم و دیگه نمونیم . ممنون میشم اگه کمکم کنید .
البته من این طور که فهمیدم میشه از Threadها استفاده کرد . اگه درست فهمیده باشم . اگه نه که خوب یه روش بهتر بگید .
Lordmaster
09-11-2010, 23:36
شما باید داخل For کدی بنویسید که درصد پیشرفت کار رو محاسبه کنه
مثلا prc=i*100/ListCount
حالا prc رو به ProgresBar میدیم!
shadmehrshadow1
10-11-2010, 16:21
ممنون
یه سوال دیگه هم دارم اونم اینه که نمیشه فاصله بین آیتم های ListView_thumb رو کم کرد تا در یه سطر تعداد بیشتری عکس دیده بشه ؟
و برای
یه دکمه که اگه حوصلمون سر رفت بطونیم عملیات رو Cancle کنیم و دیگه نمونیم
چیکار کنم . چه طور میتونم یه پنجره بزارم که بتونه کنسلش کنه؟
Lordmaster
10-11-2010, 19:56
ممنون
یه سوال دیگه هم دارم اونم اینه که نمیشه فاصله بین آیتم های ListView_thumb رو کم کرد تا در یه سطر تعداد بیشتری عکس دیده بشه ؟
و برای
چیکار کنم . چه طور میتونم یه پنجره بزارم که بتونه کنسلش کنه؟
شما یک GroupBox رو فرمت بگذار ProgressBar و دکمه ی کنسل رو هم به GroupBox اضافه کن.
بعد یک Flag تعریف کن .
تو دکمه کنسل بنویس Flag=1
حالا تو For چک کن ببین اگه Flag=1 شده بود Exit For کن.
قبل از For حتما Flag=0 رو بنویس.
Visible گروپ باکس روهم False کن و وقتی دکمه دوم کلیک شد اونو true کن و بعد از For هم اونو false کن.
shadmehrshadow1
11-11-2010, 11:10
منظورتون از فلگ درست كنم چيه ؟
ميشه جواب رو به صورت كد بزاريد ؟
و
اگه خاصیت checkbox لیست ویویی رو که عکس ها رو نشون میده رو برابر True قرار بدیم کنار هر عکس یه چک باکس قرار میگیره . چه جوری میشه کاری کرد که وقتی رو دکمه کلیک می کنیم اون خونه هایی که چک باکسشون تیک خورده حذف بشن . هم آیتم های لیست باکس اول و هم دوم .
Lordmaster
11-11-2010, 14:08
منظورتون از فلگ درست كنم چيه ؟
ميشه جواب رو به صورت كد بزاريد ؟
تو هدر تعریف کن
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
اگه خاصیت checkbox لیست ویویی رو که عکس ها رو نشون میده رو برابر True قرار بدیم کنار هر عکس یه چک باکس قرار میگیره . چه جوری میشه کاری کرد که وقتی رو دکمه کلیک می کنیم اون خونه هایی که چک باکسشون تیک خورده حذف بشن . هم آیتم های لیست باکس اول و هم دوم .
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
یا
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
lstmat اسم لیست ویو
Lordmaster
11-11-2010, 14:37
ممنون
یه سوال دیگه هم دارم اونم اینه که نمیشه فاصله بین آیتم های ListView_thumb رو کم کرد تا در یه سطر تعداد بیشتری عکس دیده بشه ؟
یه خاصیتی هست به نام Padding اون رو کمش کن!
shadmehrshadow1
11-11-2010, 18:48
1- خیلی ممنون از راهنماییتون فقط چندتا مشکل وجود داره . اونم اینه که من کد مقدار Prc رو به Value پروگرس بار دادم و 21 تا عکس رو
انتخاب کردم ولی درصد تا 95 بیشتر پیش نرفت .
2- و اون کدی که برای حذف گزینه هایی که چک مارک شدن رو گذاشتین خودم داشتم . اگه به سوال دقت کنید میخواستم که علاوه بر این که
گزینه هایی که در لیست دوم چک مارک شدن حذف بشن همون گزینه ها نیز از لیست ویو دوم هم حذف بشن . مثلا اگه آیتم های 2 و 5 و6 از
لیست ویو دوم چک مارک شدن گزینه های 2و5و6 از هر دو لیست ویو حذف بشن . البته فکر کنم اگه بشه کاری کرد که وقتی یک گزینه ای رو از
لیست ویو دوم چک مارک می کنیم مثلا آیتم دوم اونوقت آیتم دوم از لیست ویو اول چک مارک بشه ، راحت بشه مسئله رو حل کرد ولی من
نمیدونم چه جوری میشه ؟
3- و اینکه وقتی داره حل ها لود میشه کلا بخش های برنامه غیر فعال میمونه و نمیشه روی دکمه Cancle کلیک کرد چون غیر فعاله .
4- و اینکه من اصلا خاصیتی به نام Padding ندیدم . میشه بگین کجاست .
lordsoroosh
11-11-2010, 19:37
دوست عزیز چرا از فرم های خود ویندوز برای مشاهده ی عکس ها استفاده نمی کنی ؟دیگه این دردسر ها را هم نداره!
Lordmaster
11-11-2010, 22:17
1-شما -1 رو هم باید اضافه کنی
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
2-نمیدونم:13:اگر تعداد سطرها مساویه میتونید در رویداد چک شدن سطری از لیست اول ::همون سطر از لیست دوم رو هم چک کنید!با Index
3-منظورتون رو نمی فهمم چرا غیر فعاله؟
4-شما درست میگید من اشتباه کردم البته Padding در msdn ListView Properties اومده!:18:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
شاید این بتونه کمکتون بکنه!
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
shadmehrshadow1
12-11-2010, 10:00
ممنون
1- دوست عزیر با گزاشتن -1 هم درست نمیشه . در ضمن این کد شما از اصل مشکل داره. چون مثلا وقتی تعداد آیتم ها 14 تا باشه تا 93 درصد میره و وقتی مثلا 21 باشه تا 95 در صد میره . راه بهتری بلد نیستید .
2- گفتید که : " رویداد چک شدن سطر "
این کجاست . راستش مشکل همینجاست که از کجا بفمیم که یه آیتم چک مارک شده . تعداد سطر ها هم مساویه
3- شما خودتون یه بار اون کدی رو که اول گذاشتمو روش امتحان کنید . متوجه می شید.
چون داره عکس ها لود میشه تمام برنامه از کار می افته تا عکس ها لودبشه
shadmehrshadow1
14-11-2010, 16:00
کسی نیست.
............
shadmehrshadow1
16-11-2010, 10:11
خواهش میکنم کمکم کنید .فوریه. خیلی وقته که گیر اینم
shadmehrshadow1
18-11-2010, 11:08
يعني كسي بلد نيست.
بابا خيلي وقته گيرشم
shadmehrshadow1
21-11-2010, 18:27
تا کی باید صبر کنم . خوبه گفتم فوریه . :41:
از یکی پرسیدم گفت :
براي ايجاد يه نوار پيشرفت بايد مقدار ماكزيمم نوار رو برابر با تعداد عكس ها قرار بديد و در حلقه اي كه اينجا گذاشتيد بايد Vaule نوار پيشرفت رو يكي يكي زياد كنيد.
براي لغو عمليات هاي حلقه (Break) بايد از Threading استفاده كنيد يعني حلقه رو در يك تابع قرار بديد و اون تابع رو به يك ريسمان متصل كنيد. قكر كنم نمونه هايي ازش اينجا باشه.
براي تغيير اندازه ي Thumb ها بايد عكس ها رو وارد يه ImageList با اندازه دلخواه كنيد و بعد اون ليست رو به ListView نسبت بديد. بازم فكر كنم نمونه اش رو گذاشتم.
براي تشخيص آيتم هاي چك شده هم مي تونيد از رويدادش استفاده كنيد و هم ميتونيد روي دكمه اجراي عمليات حذف يه دكمه بذاريد و خاصيت Checked آيتم ها رو چك كنيد. براي عناصري با مقدار True مي تونيد عمل Remove رو اعمال كنيد.
کسی میتونه این رو به صورت کد بگه . اینم یه کمک . بر عکس شده
shadmehrshadow1
26-11-2010, 01:13
اعصابم خورد شد . هیچ کس نیست کمک کنه؟:41:
کارایی که باید انجام بده، و پروگرس بار زیاد شه رو بذار تو به تابع مث do :
delegate void dele();
Initialize()
{
dele o = new dele(do);
this.BeginInvoke(o);
}
void do()
{
//dastooooooooooooooorat
}
احتمالا کار میده :دی
shadmehrshadow1
27-11-2010, 01:06
ممنون از توجهتون.
ولی من کد VS 2008 میخوام . چیزی هم از کد شما سر در نیاوردم.
اگه بتونید اون چیزی رو رو که به عنوان راهنمایی در چن پست قبل گفتم رو به صورت کد VS 2008 بگید خیلی خوب میشه
shadmehrshadow1
04-12-2010, 22:27
چند وقته من این موضوع رو مطرح کردم ولی کسی کمک درستو حسابی به ما نکرده .
سلام.
این نمونه سورس خودته:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
موفق باشید.
shadmehrshadow1
07-12-2010, 17:19
ممنونم .
ولی این به زبانه سی فکر کنم باشه.
من برنمه ای ندارم که سی رو باز کنه . و از ویبی 2008 استفاده میکنم.
سلام.
برنامه با vb 2010 نوشته شده....
میتونید کدهاشو ببینید یا 2010 نصب کتید چون من 2008 ندارم:31:.
همش کدهای خودتونه من فقط چندتا چیز اضافه کردم.
shadmehrshadow1
08-12-2010, 15:16
ویبی 2008 بازش نمیکنه . میتونید کد 2008 رو بزارید.ممنون میشم.
راستی 2010 با 2008 فرق میکنه . میشه راحت از 2008 به 2010 رفت ؟
shadmehrshadow1
08-12-2010, 19:13
با notepad بازش کردم درست شد .
وقتی برنامه رو توی پروژه جدا اجرا میکنم درست کار میکنه ولی وقتی توی پروژه ی خودم اجرا می کنم اجرا میکنم در خط :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
خطا میده خطای زیر :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
سلام.
توی فرم اصلیتون در قسمت لود فرم این کد یادتون رفت:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
البته روش درستی نیست این کار.
راستی 2010 با 2008 فرق میکنه . میشه راحت از 2008 به 2010 رفت ؟
معمولاً ورژن جدید با ورژن قبلی کاملاً فرق میکنه مخصوصاً اگه دو سال اختلاف سنی داشته باشن:31:.
حتماً بگیر.
امکانات بسیاری اضافه شده.از جمله پایین اومدن حجم دات نت.
shadmehrshadow1
09-12-2010, 17:35
بازم خطا میده نمیدونم چرا توی این پروژه خطا میده ولی توی پروژه دیگه خطا نمیده :
در خط زیر :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
خطای زیر رو میده :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
سلام.
راستش نمیدونم چون من که اجرا میکنم جواب میده.
با 2010 تست کردین؟
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
ArashMiniStar
11-12-2010, 14:02
معمولاً ورژن جدید با ورژن قبلی کاملاً فرق میکنه مخصوصاً اگه دو سال اختلاف سنی داشته باشن:31:.
حتماً بگیر.
امکانات بسیاری اضافه شده.از جمله پایین اومدن حجم دات نت.
میشه بفرمایید به جز کم شدن حجم چه چیزهایی عوض شده؟
Database و ASP.NET ورژن جدید خیلی تغییر کرده؟ به مشکلی بر نمی خوریم؟
میشه بفرمایید به جز کم شدن حجم چه چیزهایی عوض شده؟
Database و ASP.NET ورژن جدید خیلی تغییر کرده؟ به مشکلی بر نمی خوریم؟
راستش فکر نکنم کار مایکروسافت هم باشه که بتونه امکانات ویژوال استادیو رو توصیف کنه:31:!.
مثلاً من شنیدم توی دات نت 4 میشه کدها رو تنبل کرد!!!مثلاً یه قسمت کد یکم تنبلی کنه:31:.البته من هنوز دارم بابت این قضیه میخندم.
به مشکل که مطمعناً بعدها بر میخورید ولی نه به اون صورت.البته اینم بگم که صد در صد از دات نت های قدیمی بهتر شده.
shadmehrshadow1
11-12-2010, 15:08
راستش من هنوز 2010 رو نگرفتم .اگرهم بگیرم باید کلی وایستم تا کمی با 2010 پروژمو تنظیم کنم .مشکل هم از 2008 یا 2010 نیست . همون طور که گفتم توی پروژهجدا که تست میکنم کار میکنه ولی توی پروژه ی دیگه که دارم کار نمیکنه . از روی پیغام خطا نمیتونید کمکم کنید و بفهمید چرا این طور میشه ؟
آخه برای من خطا نمیده.
شما پروژه ی خودتون که خطا داره رو آپلود کنید ببینم چیه.
shadmehrshadow1
11-12-2010, 16:25
راستش اول به زهن خودم هم رسید که آپلود کنم ولی هجم پروژم خیلی خیلی زیاده .
از روی پیغام خطا نمیتونید حدس بزنید مشکا از کجاست ؟
shadmehrshadow1
11-12-2010, 21:57
hamishebahar جون :40:دستت درد نکنه .:11:بالا خره درست شد .:20:
واقعا ممنون . بدون کمکت نمیتونستم .:10:
فقط یه مشکل دیگه هست .
وقتی یه بار روی دکمه کلیک میکنیم و پروگرس بار راه میفته و تموم میشه . بعدش دوباره روی دکمه کلیک میکنیم تا همین کار اتفاق بیفته توی خط :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
خطا ی زیر رو میده :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
البته من مقدار Me.Dispose() رو از توی Property Value() حذف کردم . چون بعد از پر شدن پروگرس بار فرم برنامه غیر فعال میشد و نمیشد باهاش کاری کرد . چی کار کنم به نظرت .
این خطا هم فقط توی پروژه دومی اتفاق میفته و توی اولی مشکل نداره .
سلام.
hamishebahar جون [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]دستت درد نکنه .[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]بالا خره درست شد .[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
واقعا ممنون . بدون کمکت نمیتونستم .[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
هدف ما موفقیت شماست:20:.
البته من مقدار Me.Dispose() رو از توی Property Value() حذف کردم . چون بعد از پر شدن پروگرس بار فرم برنامه غیر فعال میشد و نمیشد باهاش کاری کرد . چی کار کنم به نظرت .
کار درستی کردی.
به جای Close هم بذار Hide درست میشه...
رویداد Close فرم هم کاری کن که فرم بسته نشه و به جای بسته شدن Hide بشه:46:.
shadmehrshadow1
12-12-2010, 15:21
خیلی خیلی ممنون.
کاملا درست شد.
vBulletin , Copyright ©2000-2025, Jelsoft Enterprises Ltd.