PDA

View Full Version : طراحی فرمهایی با تعداد کنترلهای زیاد



omid_Ahmadi
پنج شنبه 23 شهریور 1385, 16:46 عصر
سلام،
می خواستم بدونم در طراحی فرمهایی مثل فرم مربوط به قسمت Options برنامه ها، فرضا قسمتی مثل Options مربوط به Office، فرم رو به چه روشی طراحی کنیم که سرعت حرکت بین تب پیج ها حداکثر باشه؟

oVERfLOW
شنبه 25 شهریور 1385, 14:06 عصر
روش طراحی به سرعت ارتباطی نداره
هر چی تعداد اشیاء بیشتر باشه
سرعت پایین تره

بنابراین باید تعداد اشیاء رو پایین بیارید و تا حد امکان از اشیاء غیر استاندارد و عکس استفاده نکنید

اشیاء استاندارد هم منظورم اشیاء پیش‌فرض موجود در ویندوزه

omid_Ahmadi
شنبه 25 شهریور 1385, 14:53 عصر
روش طراحی به سرعت ارتباطی نداره
هر چی تعداد اشیاء بیشتر باشه
سرعت پایین تره


منظورم از طراحی این نبود که فقط با ماوس کنترل ها رو روی فرم قرار بدیم و بگیم که فرم طراحی شد. در بعضی مواقعی کنترلهایی که مقدار ریسورسهای اشغال شده به وسیله اونها زیاد هست رو بهتره هر بار از بین ببریم و مجددا موقع نیاز ایجاد کنیم.


بنابراین باید تعداد اشیاء رو پایین بیارید و تا حد امکان از اشیاء غیر استاندارد و عکس استفاده نکنید


به این قسمت از نوشته ی اصلی من دقت کنید:


فرضا قسمتی مثل Options مربوط به Office،

من از طراحی فرمی مشابه، به سرعتی مشابه نرسیدم، به همین علت می خواستم بدونم بقیه دوستان برای حداکثر سرعت از چه روشی استفاده می کنن.

oVERfLOW
یک شنبه 26 شهریور 1385, 14:09 عصر
اون چیزی هم که شما می‌گی می‌شه

می‌تونید هر سربرگ رو توی یه دایلوگ قرار بدید و با کلیک شدن روی سربرگ مورد نظر همون دایلوگ رو توی پنجره‌ی اصلی Load کنید
فقط می‌مونه ذخیره‌ سازی تنظیمات که با هر بار Load کردن بعدش هم باید تنظیمات رو از یه جایی بخونید و دوباره توی اشیاء ذخیره کنید که برنامه‌نویسی‌ش یه کم مشکل می‌شه...

omid_Ahmadi
یک شنبه 26 شهریور 1385, 15:28 عصر
با کلیک شدن روی سربرگ مورد نظر همون دایلوگ رو توی پنجره‌ی اصلی Load کنید
فقط می‌مونه ذخیره‌ سازی تنظیمات که با هر بار Load کردن بعدش هم باید تنظیمات رو از یه جایی بخونید و دوباره توی اشیاء ذخیره کنید که برنامه‌نویسی‌ش یه کم مشکل می‌شه...


این روش روش منطقی نیست، چون به این ترتیب مقدار زیادی از زمان پروسسور صرف ایجاد و از بین بردن کنترلها میشه.

یکی از روشهای پیشنهادی این بود که کنترلهای موجود در یه فرم رو در قالب یه UserControl طراحی کنیم و بعد برای اولین بار که روی یه تب کلیک شد، اون کنترل رو لود کنیم و اون رو توی حافظه قرار بدیم تا زمانی که فرم بسته بشه.
مشکل این روش در ارتباط بین کنترلهای قرار گرفته توی UserControl و فرم اصلیه، که به خصوص در فرم هایی که توی اونها از DataBinding استفاده شده یه مقدار مشکل میشه،

oVERfLOW
سه شنبه 28 شهریور 1385, 14:49 عصر
به نظر شما این روش که شما می‌گی کار رو راحت تر می‌کنه یا سخت‌تر و آیا اصلا فایده‌ای داره؟

omid_Ahmadi
چهارشنبه 29 شهریور 1385, 07:23 صبح
مسلما کد نویسی مشکل تری داره اما این طور که من متوجه شدم سرعت رو مقداری بالاتر میبره.

oVERfLOW
پنج شنبه 30 شهریور 1385, 14:36 عصر
سرعت رو اگه پایین تر از روش عادی نکنه بالاتر نمی‌بره

مگه اشیاء داخل یه User Control باشن یا داخل پنجره‌ی اصلی باشن حافظه‌ی اشغال شده توسط اونا و پردازش‌ها شون کم و زیاد می‌شه

تازه با استفاده از User Control یه حافظه و یه پردازش هم به قبلیا اضافه می‌شه.

omid_Ahmadi
پنج شنبه 30 شهریور 1385, 15:31 عصر
سرعت رو بالا تر نمی بره اما می شه به این وسیله کاری کرد که تمام کنترل های فرم یک مرتبه لود و initialize نشن، بلکه هر بار که روی یه تب کلیک شد کنترلهای اون لود بشن و در حافظه بمونن. به این ترتیب مقداری صفحه در ابتدا سریعتر لود میشه.
البته برای این کار به جز یوزر کنترل از روشهای دیگه ای هم میشه استفاده کرد.