PDA

View Full Version : راهنمایی درمورد ساخت اسکرین سیور در دلفی



Football Land
پنج شنبه 23 اردیبهشت 1389, 14:45 عصر
با عرض سلام و وقت بخیر خدمت اساتید محترم

در مورد نحوه ی ساخت اسکرین سیور در دلفی سوالاتی داشتم .


من برنامه ای گرافیکی در دلفی نوشتم که شامل دو تا فرم هست . یکی برای اسکرین سیور و دیگری برای قسمت setting



چطوری باید به برنامه بگم که چه زمانی فرم screen saver و چه زمانی فرم setting اجرا بشه ؟
همچنین اگر میشه توضیحاتی در مورد c\ و s\ ارائه بدید . ( دیدم که از اینها استفاده میشه )

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


با تشکر فراوان
موفق باشید

Felony
پنج شنبه 23 اردیبهشت 1389, 16:00 عصر
قبلا هم همچین سوالی پرسیده شده بود ، جست و جو کنید خود من سایتی رو معرفی کرده بودم که به طور کامل در این مورد توضیح داده بود .

Football Land
پنج شنبه 23 اردیبهشت 1389, 18:45 عصر
قبلا هم همچین سوالی پرسیده شده بود ، جست و جو کنید خود من سایتی رو معرفی کرده بودم که به طور کامل در این مورد توضیح داده بود .

با تشکر از پاسخ شما دوست گرامی

بنده قبل از ایجاد این تاپیک در سایت جستجو کردم ولی چیزی که مد نظرم باشه پیدا نکردم !
اون لینکی هم که شما داده بودید این هست (http://www.crashcodes.com/ScreenSaver.htm) که متاسفانه خرابه و باز نمیشه .


در یکی از فایل هایی که دانلود کردم اگه اشتباه نکنم از این کد برای اینکار استفاده کرده ولی من مفهوم این کد را متوجه نمیشم !
اگه امکانش هست توضیح بدید ممنون میشم .




procedure ShowScreenSaver;
begin
Application.Title := 'Color Lines Screen Saver';
Application.CreateForm(TForm1, Form1);
end;

procedure ShowSettings;
begin
Application.CreateForm(TForm2, Form2);
end;

procedure ShowPreview;
begin
// Do nothing
end;


begin

Windows.CreateMutex(nil, True, '');
if (Windows.GetLastError <> Windows.ERROR_ALREADY_EXISTS) then
begin
Application.Initialize;
if ParamCount > 0 then
begin

Option := LowerCase(Copy(ParamStr(1), 1, 2));
if Option = '/c' then
ShowSettings
else if Option = '/p' then
ShowPreview
else if Option = '/s' then
ShowScreenSaver
else
ShowMessage('ParamStr(1)=' + ParamStr(1));
end
else
ShowSettings;
Application.Run;
end;
end.





با تشکر

Felony
جمعه 24 اردیبهشت 1389, 01:52 صبح
کد که خیلی ساده نوشته شده ، وقتی شما از طریق پنجره ScreenSaver Setting دکمه Preview یا Setting رو میزنید پارامترهایی به فایل محافظ صفحه نمایش شما فرستاده میشه و برنامتون با اون پارامتر اجرا میشه ، حالا کد بالا اومده و چک کرده که اگر پارامتر P بود یعنی دکمه Previw زده شده و فرم preview برنامتون رو نمایش میده و اگر C بود یعنی دکمه Setting زده شده و فرم Setting نمایش داده میشه و اگر S بود یعنی زمان مورد نظر برای نمایش محافظ فرا رسیده و فرم اصلی اسکرین سیور رو نمایش بده .

Football Land
جمعه 24 اردیبهشت 1389, 09:12 صبح
من این کد را توی برنامه خودم وارد کردم ولی کامپایلر به دستورات زیر ایراد میگیره :

Windows.CreateMutex(nil, True, '')

Windows.GetLastError <> Windows.ERROR_ALREADY_EXISTS


کلا این دو دستور چه کاری انجام میدن ؟


مرسی

Felony
جمعه 24 اردیبهشت 1389, 10:17 صبح
چه پیغام خظایی میده ؟
در خط اول یک Mutex ساخته میشه و در خط دوم چک میشه که برنامه قبلا اجرا نشده باشه ( برنامه 2 بار اجرا نشه )

اگر میخواهید بیشتر در مورد این دستورات بدونید کلید واژه Mutex رو در سایت جست و جو کنید.