PDA

View Full Version : ایجاد خوش آمد گویی در برنامه



ahmadbadpey
سه شنبه 16 مهر 1387, 13:05 عصر
با سلام
من یه کامپوننت می خوام که قبل از اجرای برنامه مون یه معرفی از برنامه به همره خوش آمد گویی به کاربر داشته باشه مثل خود دلفی که در ابتداش لوگوی خودش رو نشون میده !!!!

hajibandeh
سه شنبه 16 مهر 1387, 13:11 عصر
کامپوننت نمیخواد
شما میتوانی فرم اول برنامت رو به همین شکل طراحی کنی

zman123456
سه شنبه 16 مهر 1387, 13:19 عصر
splash رو جستجو کنید.

omid_delphi2
چهارشنبه 17 مهر 1387, 08:20 صبح
کامپوننتهای دیگری نمیخواهید؟ مثل کامپوننت خوابیدن ، نفس کشیدن ، آب خوردن و غیره
باباجان همه چیز که کامپوننت نیست بعضی چیزها را هم باید خودت بنویسی

pad_kay
چهارشنبه 17 مهر 1387, 16:25 عصر
کامپوننتهای دیگری نمیخواهید؟ مثل کامپوننت خوابیدن ، نفس کشیدن ، آب خوردن و غیره
باباجان همه چیز که کامپوننت نیست بعضی چیزها را هم باید خودت بنویسی

دوست عزیز شما عادت دارید که همه رو بکوبید
چرا کامپوننت ندارد اگر یک سری به کامپوننت ها lmd بزنی بد نیست
در هر حال نوشتن یک کامپوننت برای اینکار بهتر از کپی کردن سورس ها نیست
موفق باشید

دنیای دلفی
چهارشنبه 17 مهر 1387, 18:13 عصر
بيا اين هم كدش اينقدر توي سر هم نكوبيد (اگر دوست داشتيد كامپوننتش كنيد):

Splash Screen چيست؟
Splash Screen تصويری است که در ابتدای برنامه نمايش داده ميشود. اين تصوير معمولا شامل نماد برنامه و نام و ورژن برنامه است. تقريبا تمام برنامه های مهم Splash Screen دارند. در اين مقاله می آموزيد که چگونه يک Splash Screen برای برنامه خود بسازيد.
آيا برنامه شما واقعا به Splash Screen نياز دارد؟
معمولا برنامه هايی Splash Screen دارند که دير لود(load) می شوند. يعنی زمانی که برنامه در حال لود شدن است اين تصوير نمايش داده ميشود. مثل فتوشاپ، دلفی، آفيس و ... . ولی برنامه های کوچکی مثل ماشين حساب ويندوز ، notepad و ... SplashScreen ندارند.
وجود Splash Screen برای برنامه های حجيم چند تا مزيت داره. يک اينکه باعث زيبايی برنامه ميشه. دوم اينکه مدتی طول ميکشه تا برنامه لود بشه و اگر اين تصوير نمايش داده نشه ممکنه کاربر فکر کنه برنامه اجرا نشده و برنامه رو مجددا اجرا کنه بنابراين نمايش Splash Screen مانع از بروز اين مشکل ميشه.
ولی ايجاد Splash Screen برای برنامه های کوچيک که لود شدنشون زياد طول نميکشه ضروری نيست چون اين تصوير جز اينکه باعث افزايش حجم برنامه ميشه سود ديگه ای نداره.
ايجاد Splash Screen برای برنامه هايی که زياد استفاده ميشن اصلا پيشنهاد نميشه زيرا باعث تنفر کاربر از برنامه ميشه برای مثال فرض کنيد اينترنت اکسپلورر قبل از اجرا تصويری رو به مدت دو ثانيه نمايش ميداد يعنی بايد قبل از باز کردن هر پيج دو ثانيه صبر ميکرديد که واقعا کسل کننده است.
چگونه Splash Screen بسازيم؟
بريم سر اصل مطلب. ابتدا پروژه برنامه خود را باز کنيد. حالا يک فرم جديد ايجاد کنيد(منوی File>New>Form). نام فرم را به SplashForm تغيير دهيد(از قسمت ObjectInspector خصوصيت Name را به SplashForm تغيير دهيد). خصوصيت BorderStyle رو هم به bsNone تغيير دهيد. حالا يک شی TImage از پالت Additional روی فرم بگذاريد و خصوصيت های زير رو تنظيم کنيد :


مقدار
خصوصيت(Property)
تصوير مورد نظر
Picture
True
AutoSize
0
Top
0
Left

حالا سايز فرم رو تغيير بدين تا اندازه تصوير بشه.
از منو Project>Options رو انتخاب کنيد. به تب Forms رفته و SplashFrom رو از ليست Auto-create forms به ليست Available forms با زدن کليد "<" انتقال دهيد و OK رو کليک کنيد.
حالا به منوی Project > View Source برويد تا سورس پروژه نمايش داده شود و در ابتدای برنامه بعد از begin سه خط زير را قرار دهيد :





SplashForm:=TSplashForm.Create(SplashForm);
SplashForm.Show;
SplashForm.Update;


و قبل از Application.Run خط زير را قرار دهيد :


SplashForm.Free;

برنامه شما آمادست. آنرا اجرا کنيد و اگر مدت زمان نمايش عکس کوتاه بود. دوباره به سورس پروژه برويد و يونيت SysUtils رو به قسمت uses اضافه کنيد و خط زير را قبل از Splash.Free قرار دهيد :



Sleep(2000);


اين کار باعث ميشه مدت زمان نمايش تصوير 2 ثانيه افزايش پيدا کنه.

ahmadbadpey
چهارشنبه 17 مهر 1387, 18:33 عصر
با تشکر از دنیای دلفی
از راهنمایی شما متشکرم . با کدهایی که شما برای ما قرار دادین پروژه خوب کار می کنه ولی مشکلی که هست اینه که اون فرم splash تا زمان اجرای برنامه فعاله و با لود شدن فرم اصلی بسته نمی شه . اگه در این مورد هم راهنمایی کنی ازت ممنون می شم.

بابک.م.
چهارشنبه 17 مهر 1387, 19:43 عصر
تو منوی پروژه گزینه view source رو انتخاب کن، اینو بنویس



Application.Initialize;
try
Application.CreateForm(TfrmSplash, frmSplash);
frmSplash.Show;
frmSplash.Update;
Application.CreateForm(TfrmMain, frmMain);
//ُSleep
frmSplash.Free;
Application.Run;
except
// Show Error Message
end



فرم main باید آخرین کلاسی باشه که create می شه.