PDA

View Full Version : گفتگو: شما چه ایده ای برای حفظ اندازه فرم ها دارید؟



mousa1992
پنج شنبه 24 مرداد 1392, 02:09 صبح
سلام
وقت بخیر
ایده شما در مورد ذخیره اندازه و خواص فرم ها و بازیابی اون در موقع نیاز چیه ؟ (دنبال ی نتیجه کم زحمت هستیم)

منتظر نظراتتون هستم

arefba
پنج شنبه 24 مرداد 1392, 02:45 صبح
اطلاعات در درون یک Setting ثبت کن و هر وقت خواستی ازشون استفاده کن

FastCode
پنج شنبه 24 مرداد 1392, 02:57 صبح
باور کن از این ساده تر به ذهنم نمیرسه.(اگر ببینی خودم برای این کار چقدر نوشتم دقیقا متوجه عمق معنی کلمه 'ساده' میشی)

abstract class MyForm : Form
{
static object lock_open = new ...;
static SortedSet<Type> openForms = new ...;
bool MainInstance = false;
class Config
{
public int width;
public int height;

}
string GetConfigName()
{
return GetEnvironmentVariable("%UserProfile%") + DirSeparator + $MyApplicationName + DirSeparator + System.Security.Cryptography.Sha1Managed.Create.Co mputeHash(System.Text.Encoding.Unicode.GetBytes( GetType().FullyQualifiedName ));
}
override OnShow(...)
{
Config conf = ReadXML(GetConfigName(), () => { return new Config() { width = this.Width, height = this.Height, ... } });
lock(lock_open)
{
openForms.Add(GetType());
MainInstance = true;
}
}
override OnClose(...)
{
if(MainInstance)
{
lock(lock_open)
{
WriteXML(GetConfigName(), new Config(){width = this.Width, height= this.Height, ... });
openForms.Remove(GetType());
}
}
}
}

mousa1992
پنج شنبه 24 مرداد 1392, 03:06 صبح
باور کن از این ساده تر به ذهنم نمیرسه.(اگر ببینی خودم برای چقدر نوشتم دقیقا متوجه عمق معنی کلمه 'ساده' میشی)
نظر خودم همین بود - البته من روی دو راه فکر مکیردم که همین چیزی که شما گفتی بهتره و راحت تر
اما دو راه پیشنهادی من
1 - نوشتن کلاس مجردی و بازنویسی رویداد ها و ذخیره و بازیابی اندازه ها
2- استفاده از توابع توسعه برای ذخیره سازی و بازیابی تنظیمات

ممنون از نظراتتون و اگه دوستان بازم نظری دارن بگن و میتونین از روش های پیشنهادی استفاده کنید

FastCode
پنج شنبه 24 مرداد 1392, 08:40 صبح
نظر خودم همین بود - البته من روی دو راه فکر مکیردم که همین چیزی که شما گفتی بهتره و راحت تر
اما دو راه پیشنهادی من
1 - نوشتن کلاس مجردی و بازنویسی رویداد ها و ذخیره و بازیابی اندازه ها
2- استفاده از توابع توسعه برای ذخیره سازی و بازیابی تنظیمات

ممنون از نظراتتون و اگه دوستان بازم نظری دارن بگن و میتونین از روش های پیشنهادی استفاده کنید
یک کار دیگه که میتونی بکنی یک کلاس static ه که یک متود Show داشته باشه و این کارها رو انجام بده و خودش Show اصلی Form رو صدا بزنه.

توی روشی که من جای دیگه استفاده کردم فرمها میتونن خودشون Config رو ارائه بدن و هر چیزی که میخوان توش بریزن و هر چیزی که میخوان رو از توش بخونن.قابلیت reset تکی و به ازای کاربر تنظیمات رو داره و برای 3 یا 4 نوع از کنترل های داخل فرم هم لود شدن تنظیمات رو مدیریت میکنه.
اون هم جالبه.اگر بخوای میتونم برات توضیح بدم که چطوری یه سری از این امکانات رو اضافه کنی ولی گفتی 'ساده' باشه.

shahryari
پنج شنبه 24 مرداد 1392, 09:36 صبح
سلام
حرفه ای ترین روش برای این قبیل کارها ، استفاده از فایل های ini هستش که میتونید این مقادیر را به راحتی و با دقت 100% در این فایلها ذخیره کنید و در مواقع لزوم ازش استفاده کنید
علاوه بر مقادیر سایز و لوکیشن فرم ، میتوانید سایر مقادیر از قبیل رنگ و استایل و اندازه فونت و خیلی چیزهای دیگه رو در انجا ذخیره و از ش استفاده کنید
اگر تمایل داشتید یک نمونه مثال همراه با دی ال ال مربوطه براتون بذارم
مثال برای قالب فایل های ini

[FormSize]
W=150
H=150
[FormLocation]
X=120
Y=70

FastCode
پنج شنبه 24 مرداد 1392, 09:41 صبح
سلام
حرفه ای ترین روش برای این قبیل کارها ، استفاده از فایل های ini هستش که میتونید این مقادیر را به راحتی و با دقت 100% در این فایلها ذخیره کنید و در مواقع لزوم ازش استفاده کنید
علاوه بر مقادیر سایز و لوکیشن فرم ، میتوانید سایر مقادیر از قبیل رنگ و استایل و اندازه فونت و خیلی چیزهای دیگه رو در انجا ذخیره و از ش استفاده کنید
اگر تمایل داشتید یک نمونه مثال همراه با دی ال ال مربوطه براتون بذارم
قالب فایل های ini

[FormSize]
W=150
H=150
[FormLocation]
X=120
Y=70
اولش ترسیدم.فکر کرم یک چیز جدید اومده خبر ندارم.بعدش متوجه شدم flat-file بعد از ۴۰ سال دوباره مد شده.
من الان دارم تنظیماتم و یک سری چیزهای دیگه رو میبرم روی این سیستم:
http://dailyjs.com/2013/04/19/leveldb-and-node-1/
و fork خودم برای وقتی که علاقه مند شدید و خواستید توی DB فارسی بنویسید:https://github.com/Behrooz-Amoozad/leveldb-sharp
البته از NodeJS استفاده نمیکنم فقط چون خوب توضیح داده این لینک رو دادم.

mousa1992
جمعه 25 مرداد 1392, 00:58 صبح
اگر بخوای میتونم برات توضیح بدم که چطوری یه سری از این امکانات رو اضافه کنی ولی گفتی 'ساده' باشه.
چراکه نه ! ممنون میشم لطف کنید و توضیح بدید ؛ منتظرتون هستم



اگر تمایل داشتید یک نمونه مثال همراه با دی ال ال مربوطه براتون بذارم


ممنون از حضورتون دوست عزیز - خالی از لطف نیست بیانش - ممنون میشم روشتونو توضیح بدید شاید دوستان مایل باشن استفاده کنن