PDA

View Full Version : طول کشیدن Load شدن تصویر در اول نمایش فرم



shaghayegh_6113
یک شنبه 22 بهمن 1385, 23:55 عصر
سلام
یکی از فرمهای برنامه من از نوع Full Screen هست و روی Task bar رو هم می گیره . روی این فرم یه Image گذاشتم که Align اش Client هست .
هروقت این فرم رو Show میکنم تقریبا 1 ثانیه طول میکشه تا عکسی رو که روی Image انداختم ببینم .
یعنی اول 1 ثانیه به من تصویر یک فرم خالی رو نشون میده و بعد عکس اصلی رو .
می خواستم بدونم چه طور می شه این مشکل رو برطرف کرد ؟؟؟
ممنون

babak869
دوشنبه 23 بهمن 1385, 01:31 صبح
سلام
حجم فایل گرافیکی شما بالاست . در فوتوشاپ سایز اونو کم کنید تا سریعتر در برنامه لود بشه . یا اینکه میتونید از روش ریسورس استفاده کرده و عکس رو از ریسورس فراخوانی کنید
موفق باشید

shaghayegh_6113
دوشنبه 23 بهمن 1385, 21:32 عصر
سلام
منظورتون رو از ریسورس متوجه نمی شم
منظورتون اینکه عکس رو دوباره Load کنم ؟؟

babak869
دوشنبه 23 بهمن 1385, 22:06 عصر
سلام
نه منظورم اینه که شما عکس رو بصورت مخفی در برنامه ذخیره کنید اینطور سرعت خوندن اون بیشتره و حافظه کمتری اشغال میشه.از مثال زیر استفاده کنید و به کدنویسی اون توجه کنید

vcldeveloper
سه شنبه 24 بهمن 1385, 02:04 صبح
اگه عکس در زمان طراحی برنامه در Image لود شده، ذخیره آن در برنامه بصورت Resource و فراخوانی آن از Resource فایده ایی نداره و فقط حجم فایل EXE رو بیشتر میکنه. استفاده از Resource موقعی تاثیر داره که در زمان Run time عکس از یک فایل در Image لود بشه.

shaghayegh_6113
سه شنبه 24 بهمن 1385, 11:34 صبح
آقای کشاورز شما چه راهی رو پیشنهاد می کنید ؟

vcldeveloper
چهارشنبه 25 بهمن 1385, 09:02 صبح
برای مشکل بالا بهترین راه حل همونه که از یک فایل گرافیکی با حجم کمتر استفاده کنید. اگر هم در برنامه از اتصالات بانک اطلاعاتی استفاده می کنید، چک کنید که بالافاصله با شروع اجرای برنامه اتصال به بانک صورت نگیره، مثلا اولین باری که درخواستی برای کار با داده های بانک اطلاعاتی ایجاد شد، اتصال به بامک هم صورت بگیره. اینطوری زمان لازم برای لود شدن برنامه کمتر میشه. بطور کلی سعی کنید پردازش های سنگین را در OnCreate یا OnShow فرم اصلی انجام ندید تا برنامه سریعتر لود بشه.

حرفه ای
چهارشنبه 25 بهمن 1385, 10:06 صبح
دوست خوبم !:قلب:

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

به مثال زیر که من در یکی از برنامه ها استفاده کردم توجه کنید که F_Splash فرم اسپلش من و TF_Pass فرم رمز عبور برنامه من می باشد که باید در فایل منبع برنامه تون استفاده کنید .
امیدوارم مورد استفاده شما قرار بگیره :لبخندساده:



F_Splash:=TF_Splash.Create(Application);
F_Splash.Show;
F_Splash.Update;
Application.Initialize;
Application.Title := '';
Application.HelpFile := '';
Application.CreateForm(TF_Pass, F_Pass);
// Other Form
F_Splash.Hide;
F_Splash.Free;
Application.Run;

shaghayegh_6113
چهارشنبه 25 بهمن 1385, 17:10 عصر
فرم Splash رو به غیر از اول برنامه در وسط برنامه (برای فرم هایی که وسط برنامه Show می شوند ) میشه استفاده کرد ؟؟

sorrowdancer
جمعه 20 مهر 1386, 14:04 عصر
F_Splash:=TF_Splash.Create(Application);
F_Splash.Show;
F_Splash.Update;
Application.Initialize;
Application.Title := '';
Application.HelpFile := '';
Application.CreateForm(TF_Pass, F_Pass);
// Other Form
F_Splash.Hide;
F_Splash.Free;
Application.Run;



این دستورات را باید در چه رویدادی و چگونه نوشت؟

vcldeveloper
جمعه 20 مهر 1386, 15:49 عصر
این دستورات را باید در چه رویدادی و چگونه نوشت؟
در رویداد خاصی نوشته نمی شند، اینا رو باید در فایل DPR پروژه خودتون بنویسید. برای مشاهده این فایل می تونید از منوی Project گزینه View Source را انتخاب کنید.