ورود

View Full Version : سوال: ذخيره تنظيمات رو ي فرم مانند(فونت - رنگ و ...)



MohammadGh2011
دوشنبه 30 خرداد 1390, 14:22 عصر
سلام عليكم دوستان
من چگونه ميتونم رنگ رو ذخيره كنم.
يعني فرمم كه اجرا شد من با commondialog مثلا رنگ رو باز ميكنم ورنگ فرم رو عوض ميكنم و فقط اون موقع ذخيره ميكنه رنگ رو.
بعدش كه برنامه رو ميبندي و دوباره باز ميكني رنگ فرم اون رنگ نميشه يعني ذخيره نميشه؟
چگونه ميتونم اين رنگ و يا فونت رو ذخيره بكنم با خود ويژوال بيسيك بايد اين كار رو كرد يا بايد با Access
ارتباطش بديم؟
دوستان جفتش رو هم توضيح بديد كه چگونه ميشه اين كا رو كرد؟

Mr'Jamshidy
دوشنبه 30 خرداد 1390, 14:45 عصر
2 روش وجود داره که عمئمیت از اون استفاده میکنن و بقیه روش ها مثل Access که خودتون اشاره کردید معمولا استفاده نمیشه چون برای همچین کاری عملا بیهودس

روش اول ذخیره در یک فایل در هارد
روش دوم ذخیره تو رجیستری ویندوز

در مورد هر دو روش هم زیاد بحث شده

بعد از ذخیره در اول اجرای برنامه تنظیمات دلخواه رو ایجاد میکنید

returnx
دوشنبه 30 خرداد 1390, 15:04 عصر
این یک نمونه کوچیک که قبلا برای یکی از کاربرای این سایت گذاشته بودم:

p30rex
چهارشنبه 01 تیر 1390, 13:47 عصر
این یک نمونه کوچیک که قبلا برای یکی از کاربرای این سایت گذاشته بودم:

این که بهتره!!!

SaveSetting "setting", "SettingForm", "name","value"


و اینطوری هم میشه اطلاعات رو بازیابی کرد


GetSetting("setting", "SettingForm", "name")

returnx
چهارشنبه 01 تیر 1390, 17:35 عصر
این که بهتره!!!

شاید راحت تر باشه اما خیلی امن نیست ، شما فرض کنید که رجیستری آسیب ببینه ، اونوقت اطلاعات شما هم ممکن آسیب ببینه...
در ضمن نوشتن چندین مقدار فکر کنم استفاده از فایل جالب تر و منطقی تر هست ، در اکثر سورس هایی هم که من تا حالا دیدم برای Config اسکین (Skin) فرم یا از فایل ترتیبی با ساختار های شخصی یا با فایل های ترتیبی INI یا از فایل های XML یا فایل تصادفی استفاده شده...
نمونه بارزش Yahoo که از XML استفاده میکنه...

Mr'Jamshidy
پنج شنبه 02 تیر 1390, 02:07 صبح
شاید راحت تر باشه اما خیلی امن نیست ، شما فرض کنید که رجیستری آسیب ببینه ، اونوقت اطلاعات شما هم ممکن آسیب ببینه...
در ضمن نوشتن چندین مقدار فکر کنم استفاده از فایل جالب تر و منطقی تر هست ، در اکثر سورس هایی هم که من تا حالا دیدم برای Config اسکین (Skin) فرم یا از فایل ترتیبی با ساختار های شخصی یا با فایل های ترتیبی INI یا از فایل های XML یا فایل تصادفی استفاده شده...
نمونه بارزش Yahoo که از XML استفاده میکنه...

البته حرف شما متین و در جای خود کاملا درسته اما باید بسته به نیاز مشخص بشه اگر قرار باشه رجیستری آسیب ببینه!!! پس یعنی شما هارد دیسکی داری که اصلا آسیب نمیبینه درسته؟ چون با توجه به صحبت های شما برداشت دیگه ای نمیشه از این موضوع کرد

اما آره منم موافقم برای ذخیره اسکین عمومی ترین کار استفاده از فایله اما نه به دلیل امن بودن و ...
به خاطر اینه که رجیستری ویندوز جزو حساسترین قسمت های ویندوزه که به جرات میشه گفت تو هر قسمتی دخالت داره

حالا اگر شما به خاطر کار کوچکی مثل همین موضوع قرار باشه حجم رجیستری رو ببری بالا خیلی مشکل ها پیش میاد که یکیش پایین اومدن سرعته
برای همین برنامه های Optimizer میان و قسمت های الکی یا خالی رجیستری رو پاک میکنن

به شنر من هم شما از همون فایل های INI استفاده کنی بهتره

بازم نظر نظره خودته ببین کدوم بیشتر به نیازت نزدیکه و مشکلت رو حل میکنه

MohammadGh2011
پنج شنبه 02 تیر 1390, 11:42 صبح
سلام به همه ي دوستان گرامي
نميخواستم اين سوال رو بپرسم ديدم كه اين تاپيكي كه من زدم تا اينجا اومده گفتم بپرسم بهتره!!




این یک نمونه کوچیک که قبلا برای یکی از کاربرای این سایت گذاشته بودم: http://barnamenevis.org/images/misc/paperclip.png فایل های ضمیمه

http://barnamenevis.org/images/attach/zip.gif Save Setting.zip‏ (http://barnamenevis.org/attachment.php?attachmentid=71401&d=1308567877) (1.9 کیلوبایت, 17 دیدار)

جناب ms2222 يك نمونه سورسي رو ضميمه كردن كه خيلي عالي بود من از ايشون تشكر ميكنم فقط سوالي كه هست اينه كه اين سورس آيا ميشه از چند شئ هم ازش استفاده كرد يعني مثلا هم براي فونت ها و هم براي تغيير پس زمينه فورم و تغيير پس زمينه ليبل و... رو ازش فقط اون فايلي كه خروجي setting.set ميده استفاده كنيم من هركار كردم براش شرط گذاشتم و... نشد فقط ميتونه تنظيمات يك شي رو ذخيره بكنه!دوستان و جناب ms2222 راهنمايي بفرمايند

و


این که بهتره!!!

1
SaveSetting "setting", "SettingForm", "name","value"





و اینطوری هم میشه اطلاعات رو بازیابی کرد


1
GetSetting("setting", "SettingForm", "name")




جناب P30rex پيشنهاد اين كد رو دادن ميخوام در موردش توضيح بدين كه چگونه كار ميكنه و من چگونه باهاش كار كنم؟؟؟؟!

از تمامي عزيزان ممنونم

Mr'Jamshidy
پنج شنبه 02 تیر 1390, 12:56 عصر
سلام به همه ي دوستان گرامي
نميخواستم اين سوال رو بپرسم ديدم كه اين تاپيكي كه من زدم تا اينجا اومده گفتم بپرسم بهتره!!


جناب ms2222 يك نمونه سورسي رو ضميمه كردن كه خيلي عالي بود من از ايشون تشكر ميكنم فقط سوالي كه هست اينه كه اين سورس آيا ميشه از چند شئ هم ازش استفاده كرد يعني مثلا هم براي فونت ها و هم براي تغيير پس زمينه فورم و تغيير پس زمينه ليبل و... رو ازش فقط اون فايلي كه خروجي setting.set ميده استفاده كنيم من هركار كردم براش شرط گذاشتم و... نشد فقط ميتونه تنظيمات يك شي رو ذخيره بكنه!دوستان و جناب ms2222 راهنمايي بفرمايند

و


جناب P30rex پيشنهاد اين كد رو دادن ميخوام در موردش توضيح بدين كه چگونه كار ميكنه و من چگونه باهاش كار كنم؟؟؟؟!

از تمامي عزيزان ممنونم

اول از همه کار نشد نداره ولی من سورس رو ندیدم که بگم باید چه کاری انجام بدید که چیزی که میخواید عملی بشه
دوم کدی که جناب P30rex به شما پیشنهاد دادن اینه که داخل رجیستری ویندوز اطلاعاتی که میخواید رو ذخیره میکنه و در مواقع نیاز باز میتونید مقدار رو فراخوانی کنید

که البته برای استفاده از رجیستری کد های فوق پیشنهاد نمیشه بهتره که از توابع API استفاده بشه

MohammadGh2011
پنج شنبه 02 تیر 1390, 13:50 عصر
اگه اون سورس جناب ms2222 رو دانلود ميكردين خيلي خوب بود بهتر ميتونستيد راهنمايي كنيد جناب Mr`Jamshidy:متفکر:

returnx
پنج شنبه 02 تیر 1390, 19:24 عصر
فقط سوالي كه هست اينه كه اين سورس آيا ميشه از چند شئ هم ازش استفاده كرد يعني مثلا هم براي فونت ها و هم براي تغيير پس زمينه فورم و تغيير پس زمينه ليبل و... رو ازش فقط اون فايلي كه خروجي setting.set ميده استفاده كنيم من هركار كردم براش شرط گذاشتم و... نشد فقط ميتونه تنظيمات يك شي رو ذخيره بكنه!دوستان و جناب ms2222 راهنمايي بفرمايند

این هم نمونه چند شی ای (براتون سورس رو ضمیمه کردم)
البته چند نکته رو باید بگم:
1-من در این سورس فایل رو از حالت ترتیبی به حالت Random در اوردم برای اینکه تو هر رکورد یک داده ذخیره کنم البته میشه با همون فایل ترتیبی هم این کار رو کرد ، اما من این ترجیح میدم...
2-تو این سورس من خاصیت Underline روبرای label نذاشتم (متاسفانه حوصله نداشتم) ، خودتون میتونید اظافه کنید، پس اگه شما underlIne واسه label بزارید رو Label نمایش داده نمیشه...
3-باید دقت داشته باشید که در این روش داده ها با همون ترتیبی که نوشته شده اند خونده هم شده اند اما شما با مشخص کردن شماره رکورد مورد نظر میتونید به هر روشی که خواستید بنویسید و بخونید...
4-اگه سوالی بود ، در خدمتم...

Restlesa
پنج شنبه 02 تیر 1390, 19:27 عصر
سلام
بله میشه
نمونه رو دانلود کن

MohammadGh2011
پنج شنبه 02 تیر 1390, 19:50 عصر
سلام عليكم اساتيد محترم
سورس دومي كه جناب ms2222 عزيز لطف كردن گذاشتن خوب بود همه رو ذخيره ميكرد به جز backcolor فرم رو سياه ميكرد هر دفعه، و فقط پس زمينه فرم رو نميتونست ذخيره كنه.

و جناب Restlesa هم برنامش ارور ميداد موقع اجرا از ايشون هم ممنونم.

به نظر من اين جور ذخيره تغييرات بهتر از ذخيره در ريجستري ويندوز كدي كه جناب P30rex گذاشتن در پست جهارم است. و از ايشون و جناب Mr`Jamshidy هم ممنونم

returnx
پنج شنبه 02 تیر 1390, 21:02 عصر
همه رو ذخيره ميكرد به جز backcolor فرم رو سياه ميكرد هر دفعه، و فقط پس زمينه فرم رو نميتونست ذخيره كنه.


بله ، بخاطر اشتباه در صدا زدن متغیر بود ، متاسفانه اسم متغیر رو اشتباه نوشته بودم برای اینکه این مشکل حل شه یا اسم متغیر bg_color رو به bgcolor تغییر بدید یا هر جا bgcolor دیدید به bg_color تغییر بدید...

به نظر من اين جور ذخيره تغييرات بهتر از ذخيره در ريجستري ويندوز كدي كه جناب P30rex گذاشتن در پست جهارم است
ولی من هنوز مخالفم...

MohammadGh2011
پنج شنبه 02 تیر 1390, 23:06 عصر
سلام عليكم جناب Ms2222

بله ، بخاطر اشتباه در صدا زدن متغیر بود ، متاسفانه اسم متغیر رو اشتباه نوشته بودم برای اینکه این مشکل حل شه یا اسم متغیر bg_color رو به bgcolor تغییر بدید یا هر جا bgcolor دیدید به bg_color تغییر بدید...

بله خودم تشخيص دادم كه مشكل از متغير، يه اسم ديگه باسه متغير اون از نوع String گذاشته بودم درست شد.

ولی من هنوز مخالفم...
خوب دوست عزيز نظر هركس با كس ديگه متفاوت. من خودم چون از برنامه هاي پاك كننده ي ريجستري استفاده ميكنم و همچين برنامه هايي ريجستري رو تميز و پاك ميكنند گفتم شايد اين بهتر باشه كه هست چون خودش يك فايل داره كه تو اون ذخيره ميشه و ربطي به چيزهاي ديگه مثل ريجستري نداره.
ممنونم جناب ms2222

p30rex
جمعه 03 تیر 1390, 15:24 عصر
ولی من هنوز مخالفم...

دوست عزیز
هربرنامه ی معتبری چه بخواید چه نخواید یه جاهایی بنا به نیازش از ریجستری استفاده می کنه
ریجستری یا استفاده از فایل هرکدوم مزایای خاص خودشون رو دارند
vb هم الکی این دستور رو ایجاد نکرده
مثلا همون یاهو که گفته بودید: آیدی هایی که باهاش لاگین میشیم رو تو ریجستری نگهداری میکنه
یعنی بعضی جاها مجبوریم (بهتره) از ریجستری استفاده کنیم

حالا دوست عزیزم mohammadgh_2010 (http://barnamenevis.member.php?189627-mohammadgh_2010) با توجه به نیازش هم میتونه از ریجستری و هم از فایل کمک بگیره