-
شروع پروژه بازی آنلاین - Delphi XE5 & Intaweb 14.0.32 & TMS Intraweb Component & SQL Server - علاقمندان به ما بپیوندند
با سلام
پروژه تمرینی : تولید یک وب اپلیکیشن توسط اینتراوب و دلفی با محتوای بازی کلمات
مواد لازم:
Delphi XE5
Intraweb 14.0.32
TMS IntraWeb Components Pro v5.4.1.1
SQL Server 2008R2 or 2012 or 2014
----------------------------
Host & Domain :
OS : Windows
Disk Space : 100 MB
Traffic : 2 GB
One DB SQL : 2008 R2 or 2012 or 2014 Min 10 MB
برای نام دامین لطفا پیشنهاد دهید
----------------------------
مستندات پروژه
----------------------------
تیم کاری شامل:
تعدادی برنامه نویس دلفی
تعدادی گرافیست
تعدادی طراح صفحات وب (صرفا آشنا به HTML , CSS)
----------------------------
فعلا برای شروع همینا کافیه . ببینیم کیا میان جلو و یا علی میگن!
-
پاسخ : شروع پروژه بازی آنلاین - Delphi XE5 & Intaweb 14.0.32 & TMS Intraweb Component & SQL Server - علاقمندان به ما بپیوندند
تا این لحظه 18 بار این موضوع مشاهده شده . و از این 18 بازدید هیچ کس ابراز علاقه نکرده . لطفا اگه کسی به این موضوع علاقه داره به مشاهده اکتفا نکنه و یه نظری ، انتقادی ، پیشنهادی ، اعتراضی ، دادی فریادی چیزی بکنه ما بفهمیم اینجا تنها نیستیم!
-
پاسخ : شروع پروژه بازی آنلاین - Delphi XE5 & Intaweb 14.0.32 & TMS Intraweb Component & SQL Server - علاقمندان به ما بپیوندند
سلام و درود.
ابتدا تشکر از وقتی که گذاشتید و همچنین ایده ی زیبای پروژه رو مطرح کردید.
بحث بازی آنلاین ، بحث سنگینیه، ولی امکان پذیر...
نام دامین رو به نظر من طوری انتخاب کنید که حداقل Intra داخلش باشه ...
بچه ها عادت دارند ابتدا قسمتی از کار رو ببینند، بعدا بیان جلو ;) اگه امکان داره ابتدا خودتون پروژه رو استارت بزنید تا بقیه هم راغب بشوند ...
بازم تشکر از ایده ی خوبتون
-
پاسخ : شروع پروژه بازی آنلاین - Delphi XE5 & Intaweb 14.0.32 & TMS Intraweb Component & SQL Server - علاقمندان به ما بپیوندند
سلام
اگه کسی باشه که بتونه در زمینه هاست کمکمون کنه خیلی عالی میشه. دامنه را هم میتونیم به صورت subdomain از همین هاست کمک شده استفاده کنیم. البته اگه کسی پیدا نشه مجبوریم برای خرید هاست پول جمع کنیم (که فکر میکنم تقریبا محال باشه)
ضمنا با Intraweb 14.0.32 نیازی نیست حتما سراغ ISAPI بریم
سرور های معمولی که دات نت را هم ساپورت میکنند پشتیبانی میشوند
اینجا رو ببینید :
[برای مشاهده لینک ها شما باید عضو سایت باشید برای عضویت در سایت بر روی اینجا کلیک بکنید]
-
پاسخ : شروع پروژه بازی آنلاین - Delphi XE5 & Intaweb 14.0.32 & TMS Intraweb Component & SQL Server - علاقمندان به ما بپیوندند
هزینه هاست و دامنه تقریبا چقدرمیشه ؟ بعد حتما اول باید هاست و دومین باشه بعد پروژه شروع بشه !؟ یا میشه شروع کرد بعد به سرور انتقال داد ؟؟
-
1 فایل پیوست
پاسخ : شروع پروژه بازی آنلاین - Delphi XE5 & Intaweb 14.0.32 & TMS Intraweb Component & SQL Server - علاقمندان به ما بپیوندند
من از دو جا قیمت گرفتم که لینکشو میذارم شما هم برید ببینید :
[برای مشاهده لینک ها شما باید عضو سایت باشید برای عضویت در سایت بر روی اینجا کلیک بکنید]
پلن W001 از همش ارزون تره قیمیت سالانه اش 48 هزار تومان و قیمت شش ماهه اش هم 24 هزار تومانه
قیمت های ایران هاست هم که خیلی بالا بود و امکان تغییر به دلخواه کاربر را نداشت . واسه همین هم سراغ ایران هاست نرفتم.
یک قیمت هم از رادکام گرفتم که تصویرشو براتون میذارم :
[برای مشاهده لینک ها شما باید عضو سایت باشید برای عضویت در سایت بر روی اینجا کلیک بکنید]
شما هم از جاهایی که سراغ دارید قیمت بگیرید ببینیم کی ارزون تر میده
دقت داشته باشید که هاست نباید لینوکس باشه . ممکنه ارزونتر باشه ولی به کار ما نمیاد.
ضمنا در مورد الزامی بودن هاست و دامین باید خدمتتون عرض کنم که هیچ الزامی برای وجود هاست و دامین در ابتدا وجود نداره . فقط داشتنشون باعث تسریع در پیشرفت پروژه میشه . فرض کنید هر کدام از اعضاء گروه که بخواد میتونه توی فولدر خودش با کد خودش تست هایی انجام بده و با سرعت بیشتری نتیجه را در اختیار هم تیمی هاش بذاره ضمن اینکه اینطوری افراد جدیدی که مایل باشند نتیجه کار ما رو ببینند دیگه نیازی نیست که سورس پروژه را در اختیار داشته باشند و مثلا دنبال حل کردن مشکلاتی باشند که هر کدام از ما ممکنه درگیرشون بشیم . ضمنا ممکنه این وسط هم کسی پیدا بشه که از کار تیمی ما خوشش بیاد و سفارش یه پروژه قابل توجه بهمون بده . البته محسنات دیگه ای هم داره که الان وقتش نیست دربارش حرف بزنیم . ولی در هر حال تصمیم گیری باید با خرد جمعی باشه و بنده فقط نظر خودمو گفتم .
-
پاسخ : شروع پروژه بازی آنلاین - Delphi XE5 & Intaweb 14.0.32 & TMS Intraweb Component & SQL Server - علاقمندان به ما بپیوندند
خب ظاهرا دیگه کسی پا پیش نمیذاره . خرید یا هدیه هاست هم به نظر میاد که منتفی باشه .
اشکالی نداره یه خورده دیگه صبر میکنیم ببینیم واقعا این بحث چقدر طرفدار داره . اگه موضوع انتخاب شده طرفدار نداشته باشه دلیلی برای کلید خوردن وجود نداره .
-
پاسخ : شروع پروژه بازی آنلاین - Delphi XE5 & Intaweb 14.0.32 & TMS Intraweb Component & SQL Server - علاقمندان به ما بپیوندند
سلام -
اگه اشتباه نکنم با ایران سرور 6 ماهه و دومین حدود 30 هزار هزینش بشه که فک کنم بین 3 یا 4 نفری که عضو شدن تا حالا رقم بالایی نباشه .
من موافق شروع پروژه ام - حتی اگه 2 نفری هم باشه !
-
پاسخ : شروع پروژه بازی آنلاین - Delphi XE5 & Intaweb 14.0.32 & TMS Intraweb Component & SQL Server - علاقمندان به ما بپیوندند
نقل قول:
سلام -
اگه اشتباه نکنم با ایران سرور 6 ماهه و دومین حدود 30 هزار هزینش بشه که فک کنم بین 3 یا 4 نفری که عضو شدن تا حالا رقم بالایی نباشه .
من موافق شروع پروژه ام - حتی اگه 2 نفری هم باشه !
ممنون که همراهی می کنید . اگه اجازه بدید چند روز دیگه هم صبر کنیم شاید گرافیست و وب دیزاینر هم پیدا شد. اینطوری سرعت و کیفیت پیشرفت پروژه خیلی بهتر میشه.
ضمنا میتونیم خرید هاست و دامنه را هم به زمانی موکول کنیم که پروژه به مرحله قابل قبولی رسیده باشه .
بنده هم تو این فرصت سعی میکم مستندات پروژه را آماده کرده و در پست های بعدی قرار بدم.
راستی در مورد ورژن دلفی و اینتراوب و ... که مشکلی ندارید؟ منظورم اینه که بهتره تمام اعضاء روی یک محیط مشترک فعالیت کنند . اگه نرم افزار ها یکسان نباشند ممکنه در آینده به مشکلاتی برخورد کنیم که بازگشتن به نقطه قبلی کمی سخت باشه.
-
پاسخ : شروع پروژه بازی آنلاین - Delphi XE5 & Intaweb 14.0.32 & TMS Intraweb Component & SQL Server - علاقمندان به ما بپیوندند
سلام
به نظر من اینتراوب بیشتر برای اتوماسیون های اداری و وب اپلیکیشن هایی مناسب است که کار با دیتابیس دارند . حالا کسی هم بتونه بازی آنلاین بنویسه جالبه
در مورد هزینه سرور اصلا سراغ این هاست ها نرید . اولا شما در این هاست ها دسترسی کامل به iis ندارید که بتونید تغییرات انجام بدید . و اونها هم چنین اجازه ای به شما نخواهند داد . باید سرور مجازی یا اختصاصی اجاره کنید که هزینه اش بالاست . برای یه پروژه با 20 نفر کاربر آنلاین یه سرور با رم یک گیگ می خواد که هزینه سالیانه اشت 500 هزار تومان است . حالا کاربر ها برن بالا هزینه اش نجومی می شه . من خودم سرور تا 2 میلیون هم اجاره کرده ام .
در کل برای بازی آنلاین شاید انتراوب مناسب نباشد . شاید هم من اطلاع ندارم .
پیشنهاد من اینه بچه ها با هم جمع بشید یه اتوماسیون اداری دبیرخانه بدون کاغذ ویا برنامه هتل داری یا .... بنویسید برای آموزش
با تشکر
-
پاسخ : شروع پروژه بازی آنلاین - Delphi XE5 & Intaweb 14.0.32 & TMS Intraweb Component & SQL Server - علاقمندان به ما بپیوندند
منم با اتوماسیون بیشتر موافقم چون چیزی هست که احتمال هست که روزی سفارش داده بشه - اما بازی رو فک نکنم : البته بازی حتما باید گرافیست و خیلی تخصص های دیگه هم باشه تا چیز خوبی دربیاد .
درضمن اگه به جنبه آموزش نگاه داشته باشیم فک کنم بشه با آی پی استاتیک یه کارایی کرد ! و احتیاجی به سرور و دومین نباشه -
-
پاسخ : شروع پروژه بازی آنلاین - Delphi XE5 & Intaweb 14.0.32 & TMS Intraweb Component & SQL Server - علاقمندان به ما بپیوندند
نقل قول:
سلام
به نظر من اینتراوب بیشتر برای اتوماسیون های اداری و وب اپلیکیشن هایی مناسب است که کار با دیتابیس دارند . حالا کسی هم بتونه بازی آنلاین بنویسه جالبه
در مورد هزینه سرور اصلا سراغ این هاست ها نرید . اولا شما در این هاست ها دسترسی کامل به iis ندارید که بتونید تغییرات انجام بدید . و اونها هم چنین اجازه ای به شما نخواهند داد . باید سرور مجازی یا اختصاصی اجاره کنید که هزینه اش بالاست . برای یه پروژه با 20 نفر کاربر آنلاین یه سرور با رم یک گیگ می خواد که هزینه سالیانه اشت 500 هزار تومان است . حالا کاربر ها برن بالا هزینه اش نجومی می شه . من خودم سرور تا 2 میلیون هم اجاره کرده ام .
در کل برای بازی آنلاین شاید انتراوب مناسب نباشد . شاید هم من اطلاع ندارم .
پیشنهاد من اینه بچه ها با هم جمع بشید یه اتوماسیون اداری دبیرخانه بدون کاغذ ویا برنامه هتل داری یا .... بنویسید برای آموزش
با تشکر
سلام و ممنون که نظر دادید
قصد ما از اجرای پروژه بازی آنلاین ، فقط کسب یک تجربه هست . ممکنه با اجرای این پروژه یک تیم خوب و یکدست تشکیل بشه که بتونه پروژه های بزرگتری را هم اجرا کنه . البته شاید هم همه چیز طوری که دلمون میخواد پیش نره ولی به هر حال قصد داریم با یک پروژه تمرینی کوچک تلاش کنیم تا اولا از هم چیزی یاد بگیریم و دوما اگه شد یک تیم تشکیل بدیم . به امید خدا اگه همه چیز خوب پیش بره بعد از این پروژه میریم سراغ یه پروژه بزرگتر.
در مورد هزینه های هاست که فرمودید حق با شماست . در نسخه های قبلی اینتراوب ، برای انتشار یک وب اپلیکیشن باید سروری در اختیار می بود که حتما از ISAPI پشتیبانی میکرد .و تمامی گفته های شما در مورد IIS , دسترسی ها و هزینه های سرور اختصاصی درسته. اما در نسخه های جدید تر امکان Intraweb Library اضافه شده که ادعا میکنه نیازی به ISAPI نداره و میشه مثل فایل های DLL که حاصل پابلیش یک پروژه C#.net است روی یک هاست معمولی ویندوز اجرا بشه.
لطفا لینک زیر را مطالعه کنید
[برای مشاهده لینک ها شما باید عضو سایت باشید برای عضویت در سایت بر روی اینجا کلیک بکنید]
در همون دو سطر اول توضیح داده که موضوع چیه
فکر میکنم اگه این موضوع صحت داشته باشه و در عمل هم بشه اثباتش کرد دیگه برای اجرای یک وب اپلیکیشن با کیفیت نیازی نیست سراغ سی شارپ و محصولات مایکروسافت رفت . بنده معتقدم امکاناتی که دلفی در اختیار برنامه نویس میذاره قابل قیاس با محصولات مایکروسافت نیست . بنده مدتی (حدودا 2 تا 3 سال) با Visual Studio کلنجار رفتم و چند تا پروژه هم انجام دادم . اما به دلیل فرسایشی بودن کار با محصولات مایکروسافت به دلفی برگشتم و حالا که اینتروب مشکل وابستگی خودشو به ISAPI برطرف کرده دیگه دلیلی نمیبینم که برای اجرای یک وب اپلیکیشن سراغ سی شارپ برم . البته با تواضع کامل به همه برنامه نویسان سی شارپ احترام میذارم . فکر میکنم عده زیادی از دلفی کارها به همین دلیل مدتی را صرف کار با ویژوال استودیو کردند و ممکنه تجربیاتی شبیه بنده داشته باشند . امیدوارم علاقمندان به این موضوع به جمع ما ملحق بشوند.
-
پاسخ : شروع پروژه بازی آنلاین - Delphi XE5 & Intaweb 14.0.32 & TMS Intraweb Component & SQL Server - علاقمندان به ما بپیوندند
اگه مستندات یک پروژه اتوماسیون را دارید لطفا منتشر کنید تا برای پروژه بعدی درباره اش تصمیم گیری کنیم .
البته اگه عمری بود و اگه تیم شکل گرفت و اگه به مشکل اساسی برخورد نکردیم و ............
-
پاسخ : شروع پروژه بازی آنلاین - Delphi XE5 & Intaweb 14.0.32 & TMS Intraweb Component & SQL Server - علاقمندان به ما بپیوندند
یه خرده در مورد خود بازی توضیح میدین !؟ چطوریه ؟
-
پاسخ : شروع پروژه بازی آنلاین - Delphi XE5 & Intaweb 14.0.32 & TMS Intraweb Component & SQL Server - علاقمندان به ما بپیوندند
عنوان پروژه : بازی آنلاین کلمات
عناصر بازی :
1- کلمه رمز
2- کاربر یا کاربرانی که تلاش میکنند رمز را پیدا کنند
3- کلمات پیشنهادی کاربران
4- امتیازی که بازی به کلمات کاربران میدهد
هدف :
کاربران در این بازی برای یافتن کلمه رمز با یکدیگر رقابت میکنند . در صورتیکه کاربری کلمه رمز را پیدا کند بازی امتیازی را به حساب کاربر اضافه میکند .
روش بازی :
کاربران پس از ثبت نام در بازی (ثبت نام سریع و بدون نیاز به تایید ایمیل) وارد بازی میشوند . کاربران در هنگام ثبت نام نمیتوانند از نام های ثبت شده ی قبلی استفاده کنند . در صورتیکه قبلا ثبت نام کرده باشند میتوانند با وارد کردن نام کاربری و رمز عبور وارد بازی شوند .
پس از ورود به بازی جدولی را مشاهده میکنند که دارای 3 ستون است :
ستون اول نام کاربر
ستون دوم کلمه پیشنهادی
ستون سوم امتیاز کلمه
---------------------------------------
در بالای جدول قسمتی قرار دارد که کاربر میتواند کلمه پیشنهادی خود را در آن وارد کرده و از این لحظه وارد بازی شود.
بازی به کلمه پیشنهادی هر کاربر با یک امتیاز دو قسمتی پاسخ میدهد و کاربر باید با بررسی امتیازات دریافت شده حدس بزند که چه حروفی در کلمه رمز وجود دارد و در نهایت حدس بزند کلمه رمز چیست.
درصورتیکه رمز توسط کاربری پیدا شد ابتدا امتیاز جایزه به حساب کابر پیدا کننده ی رمز واریز میشود و سپس بازی به صورت خودکار رمز دیگری را انتخاب میکند و بازی با رمز جدید ادامه پیدا خواهد کرد و از این لحظه کاربران باید بدنبال رمز جدید باشند.
مثال
کلمه رمز : دلفی
توضیح اینکه : د ل ف ی - چهار حرف کلمه رمز هستند . کلمه رمز نباید حروف تکراری داشته باشد . مثال های غلط : لک لک ، فلفل ، دلیل . وجود حروف تکراری باعث گمراه شدن کاربران خواهد شد. از این رو تمام کلماتی که به عنوان رمز یا کلمه پیشنهادی در بازی استفاده خواهند شد حروف غیر تکراری دارند.
کلمه رمز از یک جدول فراخوانی می شود (این جدول هم اکنون موجود است)
کلمه پیشنهادی یکی از کاربران بطور مثال : دانش
بازی حروف کلمه پیشنهادی (د ا ن ش) را با کلمه رمز (د ل ف ی) مقایسه میکند و امتیازی که بازی به کلمات پیشنهادی کاربران میدهد به شرح زیر است:
1+0
که عدد اول یعنی 1 نشان دهنده ی تعداد حروف مشترک دو کلمه است و عدد دوم یعنی 0 نشان دهنده ی تعداد حروف مشترکی است که سر جای خود قرار گرفته اند.
مثال پیشنهادی دوم : فیله
بازی حروف کلمه پیشنهادی (ف ی ل ه) را با کلمه رمز (د ل ف ی) مقایسه میکند و امتیازی که بازی به کلمات پیشنهادی کاربران میدهد به شرح زیر است:
3+0
مثال پیشنهادی سوم : دلیر
بازی حروف کلمه پیشنهادی (د ل ی ر) را با کلمه رمز (د ل ف ی) مقایسه میکند و امتیازی که بازی به کلمات پیشنهادی کاربران میدهد به شرح زیر است:
3+2
نکته 1 : ممکن است بعضی کلمات امتیاز 0+0 بگیرند . در این صورت کاربرمیتواند حروف کلمه پیشنهادی خود را از دامنه حروف احتمالی رمز حذف کرده و در کلمات پیشنهادی بعدی خود از آنها استفاده نکند
نکته 2 : کاربر میتواند برای خود حروف الفبای فارسی را در محلی یادداشت کرده و پس از برخورد به کلماتی که امتیاز 0+0 گرفته اند حروف مورد نظر را علامت بزند.
نکته 3 : کلمات پیشنهادی کابران نیز نباید حروف تکراری داشته باشد.
نکته 4 : طول کلمه پیشنهادی نباید بیشتر یا کمتر از طول کلمه رمز باشد.
نکته 5 : فاصله (space) جزء کاراکتر های غیر مجاز در کلمات پیشنهادی است .
امتیازات :
امتیاز هر کلمه پیشنهادی به صورت خودکار به حساب کاربر واریز میشود
مثال : کلمه دلیر در مثال سوم (2+3) 5 امتیاز را به حساب کاربر واریز خواهد کرد
امتیاز پیدا کردن رمز 500 است
-------------------------------------------------
کلمه رمز میتواند 3 حرفی ، 4 حرفی و یا 5 حرفی باشد که این مورد باید در سطح بازی انتخاب شود . یعنی می توان بازی را مثلا در سه سطح ساده (رمز 3 حرفی) ، متوسط (رمز 4 حرفی) و سخت (رمز 5 حرفی) طراحی و در اختیار کاربر قرار داد
و به همین نسبت هم امتیازات رمز پیدا شده میتواند برای 3 حرفی 200 امتیاز ، 4 حرفی 500 امتیاز و 5 حرفی 800 امتیاز باشد
-------------------------------------------------
می توان محیطی برای کابران در حین بازی در نظر گرفت که با هم گفتگو کنند . چیزی شبیه چت هیجان بیشتری به بازی خواهد داد.
-------------------------------------------------
این خلاصه ای از مستندات پروژه بازی آنلاین کلمات بود که تقدیم شد . البته مطالب فوق میتواند بنا بر خلاقیت شما هر تغییری که لازم داشته باشد را بپذیرد
-
پاسخ : شروع پروژه بازی آنلاین - Delphi XE5 & Intaweb 14.0.32 & TMS Intraweb Component & SQL Server - علاقمندان به ما بپیوندند
امروز خودم Windowes Server 2008 R2 نصب کردم و مراحل گفته شده در لینک [برای مشاهده لینک ها شما باید عضو سایت باشید برای عضویت در سایت بر روی اینجا کلیک بکنید] را انجام دادم . نتیجه قابل قبول بود.
فقط یک نکته باقی مونده . اونم اینکه آیا تنظیمات خواسته شده در لینک بالا توسط فروشندگان یا بخش پشتیبانی هاست ها انجام میشه یا باید برای انجام این کارها هزینه ای جدا گانه پرداخت کرد و یا شاید هم اصلا با زدن یک تیکت براحتی و بدون درد سر برامون انجامش میدن؟
پاسخ این سوال را فقط در عمل میشه فهمید!
-
پاسخ : شروع پروژه بازی آنلاین - Delphi XE5 & Intaweb 14.0.32 & TMS Intraweb Component & SQL Server - علاقمندان به ما بپیوندند
من روزی چند بار به اینجا سر میزنم ببینم نظری حرفی انتقادی پیشنهادی یا هر چیز جدیدی اضافه شده یا نه!
ولی متاسفانه پست های جدید خیلی کمه. شاید دلیلش این باشه که دلفی کاران عزیز سرشون خیلی شلوغه.
به هر حال من هنوز دلسرد نشدم . امیدوارم اشتیاق بیشتری (وقت آزاد بیشتری برای سر شلوغ ها) بوجود بیاد .
-
پاسخ : شروع پروژه بازی آنلاین - Delphi XE5 & Intaweb 14.0.32 & TMS Intraweb Component & SQL Server - علاقمندان به ما بپیوندند
با سلام
از همه اعضا مخصوصا مدیران عزیز خواهش میکنم که شرکت کنند - حتی اگرم وقت ندارند که تو خود پروژه باشند یه نظری پیشنهادی و.... بدهند که این سایت که تنها فروم اختصاصی دلفیه از رونق نیافته .
-
پاسخ : شروع پروژه بازی آنلاین - Delphi XE5 & Intaweb 14.0.32 & TMS Intraweb Component & SQL Server - علاقمندان به ما بپیوندند
طرح بازی جالب بود - از جایی دیدین یا خلاقیت خودشماست ؟
-
پاسخ : شروع پروژه بازی آنلاین - Delphi XE5 & Intaweb 14.0.32 & TMS Intraweb Component & SQL Server - علاقمندان به ما بپیوندند
نقل قول:
طرح بازی جالب بود - از جایی دیدین یا خلاقیت خودشماست ؟
راستش این بازی خیلی وقت پیش توی یه مسابقه تلوزیونی انجام میشد .
-
پاسخ : شروع پروژه بازی آنلاین - Delphi XE5 & Intaweb 14.0.32 & TMS Intraweb Component & SQL Server - علاقمندان به ما بپیوندند
یک هفته از آخرین پست میگذره و تا الان 496 بازدید از این موضوع انجام شده . جالب اینجاست اغلب بازدید های این موضوع توسط کاربران میهمان انجام میشه و از بین این همه بازدید گروه Intraweb فقط 4 عضو گرفته
تا این لحظه بنده به همراه 3 عزیز دیگر ( meyti و admin و mrtr0101 ) عضو این گروه هستیم. از اعضاء گروه خواهشمندم اگر امکان داره به دوستان و همکاران خودشون اطلاع رسانی کنند. جای گرافیست و طراح وب تو گروه خالیه.
به امید خدا سعی میکنم هفته آینده یک تحلیل سر پایی از پروژه بذارم .
-
پاسخ : شروع پروژه بازی آنلاین - Delphi XE5 & Intaweb 14.0.32 & TMS Intraweb Component & SQL Server - علاقمندان به ما بپیوندند
[برای مشاهده لینک ها شما باید عضو سایت باشید برای عضویت در سایت بر روی اینجا کلیک بکنید]
-
پاسخ : شروع پروژه بازی آنلاین - Delphi XE5 & Intaweb 14.0.32 & TMS Intraweb Component & SQL Server - علاقمندان به ما بپیوندند
سلام دوستان منهم موافق هستم اما باید عرض کنم که خیلی آشنایی نداشته و همینکه وقت زیادی هم ندارم اما تا آنجایی که بتوانم و توان داشته باشم در خدمت شما هستم
دوستان یک پیشنهاد
تقریبا همه جا اتوماسین اداری وجود دارد .
من یک پیشنهاد دارم و اون اینکه برنامه بودجه (تامین اعتبار - درخواست وجه - هزینه و ...) چراکه فقط مورد استفاده ادارات دولتی میباشد و کمتر شرکتی به آن پرداخته .
اگه شد کمی در موردش فکر کنید شاید خوب بود؟؟؟؟!!!!!!
-
پاسخ : شروع پروژه بازی آنلاین - Delphi XE5 & Intaweb 14.0.32 & TMS Intraweb Component & SQL Server - علاقمندان به ما بپیوندند
نقل قول:
سلام دوستان منهم موافق هستم اما باید عرض کنم که خیلی آشنایی نداشته و همینکه وقت زیادی هم ندارم اما تا آنجایی که بتوانم و توان داشته باشم در خدمت شما هستم
دوستان یک پیشنهاد
تقریبا همه جا اتوماسین اداری وجود دارد .
من یک پیشنهاد دارم و اون اینکه برنامه بودجه (تامین اعتبار - درخواست وجه - هزینه و ...) چراکه فقط مورد استفاده ادارات دولتی میباشد و کمتر شرکتی به آن پرداخته .
اگه شد کمی در موردش فکر کنید شاید خوب بود؟؟؟؟!!!!!!
سلام و ممنون که نظر دادید
تخصص های مورد نیاز ما شامل :
- برنامه نویس دلفی
- گرافیست (آشنا به فتوشاپ و سایر برنامه های گرافیکی و ...)
- طراح وب (آشنا به HTML و CSS و ...)
- مدیر تیم تولید جهت هماهنگی بین اعضاء
- مدیر روابط عمومی (در صورت نیاز به گفتگو با مشتریان احتمالی نظیر شرکت های دولتی و ...)
حالا شما ببینید تو کدام یک از این موارد میتونید به ما کمک کنید.
البته ممکنه تخصص های دیگری هم مورد نیاز باشه که بنده حضور ذهن ندارم .
در مورد پیشنهادتون هم قبل از هر چیز باید گردش کار یا همون Workflow (لطفا [برای مشاهده لینک ها شما باید عضو سایت باشید برای عضویت در سایت بر روی اینجا کلیک بکنید] و یا [برای مشاهده لینک ها شما باید عضو سایت باشید برای عضویت در سایت بر روی اینجا کلیک بکنید] را ببینید) سیستم مورد نظرتون را به صورت مستندات در اختیار داشته باشید تا بتونیم بررسیش کنیم و در موردش تصمیم گیری کنیم . این اصطلاحاتی که شما فرمودید (تامین اعتبار و درخواست بودجه و هزینه و ... ) برای بنده نا آشناست و هر چقدر هم که دربارشون فکر کنم حاصلش چیزی نمیشه . اگه شما مستندات یا مطالبی دارید که برای درک سیستم مورد نظر مفیده لطفا بعد از عضویت توی گروه [برای مشاهده لینک ها شما باید عضو سایت باشید برای عضویت در سایت بر روی اینجا کلیک بکنید]منتشر کنید تا بقیه هم اطلاعات هم سطح شما داشته باشند.
با تشکر فراوان
-
4 فایل پیوست
پاسخ : شروع پروژه بازی آنلاین - Delphi XE5 & Intaweb 14.0.32 & TMS Intraweb Component & SQL Server - علاقمندان به ما بپیوندند
سلام
چند توصیه و پیشنهاد دارم که فکر میکنم ممکنه برای دوستان مفید باشه . البته حرف جدیدی نیست . فقط جهت هماهنگی بیشتر عرض میکنم.
پیشنهاد اول (بهینه سازی IDE دلفی) : نرم افزار [برای مشاهده لینک ها شما باید عضو سایت باشید برای عضویت در سایت بر روی اینجا کلیک بکنید] را دانلود و نصب کنید.
پیشنهاد دوم (تهیه تصاویر همراه با توضیحات از محیط کاری شامل فرم ها ، دیاگرام ها ، خطا ها و ...) : نرم افزار [برای مشاهده لینک ها شما باید عضو سایت باشید برای عضویت در سایت بر روی اینجا کلیک بکنید] را دانلود و نصب کنید.
پیشنهاد سوم (یکسان سازی IDE دلفی) : برای استفاده بیشتر از دسکتاپ دلفی در زمان کار بهتر است تغییراتی در محیط آن داده شود . بنده تغییرات دلخواه خود را روی دلفی تنظیم کردم و فایل config آنرا ضمیمه همین پست میکنم . استفاده از یک محیط کاری بین اعضاء یک گروه باعث هماهنگی بیشتر خواهد شد . مثلا فایل های کدی که بین اعضا رد و بدل خواهد شد شکل و شمایل متحدی خواهد داشت و کاربران نیازی ندارند که کد های یکدیگر را فرمت کنند تا برایشان خوانا تر شود . این موضوع در formatting سورس کد بسیار به چشم می آید.
فایل دیگری که ضمیه شده است را باید پس از نصب نرم افزار cnPack استفاده کنید . این فایل یک Backup از محیط دلفی بنده است که توسط cnPack تهیه شده و پس از Restore کردن آن محیط دلفی شما شبیه به دلفی بنده خواهد شد.
-
8 فایل پیوست
پاسخ : شروع پروژه بازی آنلاین - Delphi XE5 & Intaweb 14.0.32 & TMS Intraweb Component & SQL Server - علاقمندان به ما بپیوندند
سلام
امروز رسما پروژه استارت میخوره
امیدوارم همه چیز خوب پیش بره و اعضاء گروه هم کمک کنند تا سریعتر به نتیجه برسیم
برای شروع تصاویر فرم های پیش بینی شده را بوسیله نرم افزار SnagIt که در پست های قبلی معرفی شد تهیه کردم که به شرح زیر نمایش داده میشوند :
و در انتها هم تصویری از دیاگرام دیتابیس بازی
حالا از دوستان عزیز خواهش میکنم برای ساخت فرم ها پا پیش بگذارند و هر طوری که میتونند یه گوشه کار را بگیرند
در این مرحله هیچ کدی در فرم ها نوشته نمیشه و فقط باید عناصر فرم شامل TIWEdit ها و TIWGradButton ها در فرم ها قرار بگیرند
میتونید یک BaseForm بسازید و تمام فرم ها را از اون ارث بری کنید . اینطوری فرم ها یکدست خواهند بود . البته همه اساتید به این مسائل وارد تر از بنده هستند .
بنده هم سعی میکنم کلاس های مربوط به بازی را آماده کنم و در پست های بعدی تقدیم کنم .
بعد از این مرحله وارد کد نویسی فرم ها و عناصر آنها میشیم.
-
9 فایل پیوست
پاسخ : شروع پروژه بازی آنلاین - Delphi XE5 & Intaweb 14.0.32 & TMS Intraweb Component & SQL Server - علاقمندان به ما بپیوندند
سلام
این پست اختصاص داره به طرز ساخت کلاس TUser که در بازی ازش استفاده خواهیم کرد.
دلفی را اجرا کرده و یک پروژه جدید اینتراوب ایجاد کنید
بعدش این شکلی میشه
حالا روی IntraWeb_WordGame کلیک راست کنید و از منویی که ظاهر میشه Add و از منوی بعدی Namespace را انتخاب کنید
با استفاده از Modeling میتونیم کلاس ها را ایجاد کنیم . البته بدون استفاده از این ابزار هم میشه کلاس درست کرد ولی هم سخت تر است و هم ضریب خطا در حین کار بالا میره . در کل این ابزار بسیار مفید هست . اگه تا حالا سراغش نرفتین حتما تستش کنید .
Namespace1 را به WordGame_Namespace تغییر بدهید
روی WordGame_Namespace دبل کلیلک کنید تا محیط ایجاد کلاس باز شود
سپس در فضای خالی کلیک راست کرده و از منویی که ظاهر میشود Add و سپس Class را انتخاب کنید.
ادامه در پست بعد
-
10 فایل پیوست
پاسخ : شروع پروژه بازی آنلاین - Delphi XE5 & Intaweb 14.0.32 & TMS Intraweb Component & SQL Server - علاقمندان به ما بپیوندند
Class1 ایجاد میشه . در همین مرحله نام Class1 را به TUser تغییر بدید
روی کلاس TUser کلیلک راست کنید و از منویی که ظاهر میشود Add و سپس Property را انتخاب کنید
Property ها در زمان کد نویسی در اختیار شما خواهند بود و میتوانید مقادیر آنها را تغییر دهید . همچنین میتوانید آنها را با مقادیر متناظر خود در بانک اطلاعاتی مقدار دهی کنید
Property1 را به UserID تغییر دهید
دقت کنید که مقدار SetProperty1 در تصویر بالا تبدیل به SetUserID در تصویر پایین شد.
همچنین مقدار FProperty1 در تصویر بالا تبدیل به FUserID در تصویر پایین شد
دلفی وظیفه این تغییرات را به عهده میگیرد تا خطای کاربر به حداقل برسد.
حالا وقت آن رسیده که نگاهی به کد ایجاد شده بیاندازیم
روی کلاس TUser دبل کلیک کنید تا فایل کد آن باز شود :
همانطور که میبینید بین Begin و End در procedure TUser.SetUserID هیچ کدی نوشته نشده است
اینجا شما باید وارد عمل شوید و کد دلخواه خود را وارد کنید
در این مثال دستور زیر را وارد میکنیم :
FUserID := val;
کار این پروسیجر مقدار دهی به فیلد FUserID است و با کدی که وارد آن کردیم این عملیات تکمیل میشود . توجه داشته باشید که اگر این کد ها را وارد نکنید کلاس به درستی عمل نخواهد کرد.
به همین ترتیب Property های دیگر را نیز اظافه میکنیم :
به نوع Property ها دقت کنید . بعضی عددی و بعضی رشته ای هستند. تغییر نوع Property ها را میتوانید در زمان تغییر نام آنها انجام دهید
ادامه در پست بعد
-
5 فایل پیوست
پاسخ : شروع پروژه بازی آنلاین - Delphi XE5 & Intaweb 14.0.32 & TMS Intraweb Component & SQL Server - علاقمندان به ما بپیوندند
هر کلاس میتواند دو پروسیجر Create و Destroy داشته باشه . این دو پروسیجر به ترتیب در زمان ساخت و حذف از حافظه ، فراخوانی میشوند . میتوانید در Create مقادیر اولیه برای فیلد ها در نظر بگیرید .
نکته : فیلد ها همان قسمتهایی از کلاس هستند که با Property ها هم نام هستند و با حرف F شروع میشوند مانند Property UserID = Field FUserID
Peroperty ها مقادیر خود را در فیلد ها نگهداری میکنند و از آنها فراخوانی میکنند. به بیانی دیگر Property ها واسطه ای میان کاربر و فیلد ها هستند
برای ساخت پروسیجر Create روی کلاس کلیک راست کرده و از منویی که ظاهر میشود Add و سپس Constructor را انتخاب کنید
و
برای ساخت پروسیجر Destroy روی کلاس کلیک راست کرده و از منویی که ظاهر میشود Add و سپس Destructor را انتخاب کنید
حالا در کد مربوط به پروسیجر Create فیلد های کلاس را با مقادیر پیشفرض مقدار دهی میکنیم . پروسیجر Destroy در این کلاس بدون تغییر باقی خواهد ماند
در این مرحله توابع مورد نیاز را به کلاس اضافه میکنیم
و در انتها هم یک ADOConnection به ServerController اضافه میکنیم و به دیتابیس SQL وصلش میکنیم
نام ADOConnection را به ADOConnectionMain تغییر بدید و خصوصیاتشو هم مثل تصویر تنظیم کنید
و در انتها کد کلاس به شکل زیر خواهد شد . البته با کمی تغییر که خودتون متوجه میشید
کد:
type
TUser = class
public
private
var
FUserID : Integer;
FUsername : string;
FPassword : string;
FFullName : string;
FTotalPoint : Integer;
FEMail : string;
procedure SetUserID(val: Integer);
procedure SetUsername(val: string);
procedure SetPassword(val: string);
procedure SetFulName(val: string);
procedure SetTotalPoint(val: Integer);
procedure SetEMail(val: string);
function SendMail(aSMTP: TIdSMTP; aMailMessage: TIdMessage; aSubject, aBody: WideString): string;
public
property UserID : Integer read FUserID write SetUserID;
property Username : string read FUsername write SetUsername;
property Password : string read FPassword write SetPassword;
property FullName : string read FFullName write SetFulName;
property TotalPoint : Integer read FTotalPoint write SetTotalPoint;
property EMail : string read FEMail write SetEMail;
constructor Create;
destructor Destroy; override;
function Login: TUser;
function GetUserInfo(aUsername: string; aUserID: Integer = 0; aEMail: string = ''): TUser;
function RegisterUser: TUser;
function UpdateUser: boolean;
function ChangePassword(NewPassword: string): boolean;
procedure SendNewPasswordEmail(aSMTP: TIdSMTP; aMailMessage: TIdMessage);
end;
procedure TUser.SetUserID(val: Integer);
begin
FUserID := val;
end;
procedure TUser.SetUsername(val: string);
begin
FUsername := val;
end;
procedure TUser.SetPassword(val: string);
begin
FPassword := val;
end;
procedure TUser.SetFulName(val: string);
begin
FFullName := val;
end;
procedure TUser.SetTotalPoint(val: Integer);
begin
FTotalPoint := val;
end;
procedure TUser.SetEMail(val: string);
begin
FEMail := val;
end;
constructor TUser.Create;
begin
inherited Create;
FUserID := 0;
FUsername := '';
FPassword := '';
FFullName := '';
FTotalPoint := 0;
FEMail := '';
end;
destructor TUser.Destroy;
begin
inherited Destroy;
end;
function TUser.Login: TUser;
var
V: Integer;
begin
Result := nil;
V := fOpenReturnInt('Select Count(*) from Users where Username = ' + QuotedStr(Username) + ' and Password = ' +
QuotedStr(Password));
if V > 0 then
Result := GetUserInfo(Username);
end;
function TUser.GetUserInfo(aUsername: string; aUserID: Integer = 0; aEMail: string = ''): TUser;
var
WHR_Clause: String;
V : TADOQuery;
I : Integer;
begin
Result := nil;
if aUserID <> 0 then
WHR_Clause := ' UserID = ' + IntToStr(aUserID)
else if aUsername <> '' then
WHR_Clause := ' Username = ' + QuotedStr(aUsername)
else if aEMail <> '' then
WHR_Clause := ' EMail = ' + QuotedStr(aEMail);
V := fOpen('Select * from Users where ' + WHR_Clause);
if V.RecordCount > 0 then
begin
Result := TUser.Create;
with Result do
begin
UserID := V.FieldByName('UserID').AsInteger;
FullName := V.FieldByName('FullName').AsString;
Username := V.FieldByName('Username').AsString;
Password := V.FieldByName('Password').AsString;
TotalPoint := V.FieldByName('TotalPoint').AsInteger;
EMail := V.FieldByName('EMail').AsString;
end;
end;
FreeAndNil(V);
end;
function TUser.RegisterUser: TUser;
var
V: Integer;
begin
Result := nil;
V := fOpenReturnInt('Select Count(*) from Users where Username = ' + QuotedStr(Username));
if V = 0 then
begin
V := fOpenReturnInt('INSERT INTO Users (Username, Password, FullName, TotalPoint, EMail) VALUES (' +
QuotedStr(Username) + ',' + QuotedStr(Password) + ', N' + QuotedStr(FullName) + ',0,' +
QuotedStr(EMail) + '); Select Scope_Identity();');
if V > 0 then
begin
Result := Self.GetUserInfo(Self.Username);
Self := Result;
end;
end;
end;
function TUser.UpdateUser: boolean;
var
V: Integer;
begin
Result := False;
V := fRun('Update Users SET FullName = N' + QuotedStr(FullName) + ' where UserID = ' + IntToStr(UserID));
if V > 0 then
Result := True;
end;
function TUser.ChangePassword(NewPassword: string): boolean;
var
V: Integer;
begin
Result := False;
V := fRun('Update Users set Password = ' + QuotedStr(NewPassword) + ' where UserID = ' + IntToStr(UserID));
if V > 0 then
Result := True;
end;
procedure TUser.SendNewPasswordEmail(aSMTP: TIdSMTP; aMailMessage: TIdMessage);
var
Subject, Body: WideString;
NewPass : String;
begin
NewPass := RandomPassword(10);
Subject := ':: ' + IWServerController.AppName + ' :: تغییر رمز عبور ::';
Body := 'کاربر گرامی ، ' + FullName + 'اقدام به درخواست رمز عبور جدید کرده اید . ' + IWServerController.AppName +
' شما از طریق کنترل پنل خود در سایت <br>' +
'رمز عبور جدید شما : ' + NewPass;
Self.ChangePassword(NewPass);
SendMail(aSMTP, aMailMessage, Subject, Body);
end;
function TUser.SendMail(aSMTP: TIdSMTP; aMailMessage: TIdMessage; aSubject, aBody: WideString): string;
var
S: String;
begin
// setup SMTP
aSMTP.Host := 'smtp.gmail.com';
aSMTP.Port := 25; // for smtp.gmail.com
// setup mail message
aMailMessage.From.Address := 'Email@gmail.com';
aMailMessage.Recipients.EMailAddresses := EMail;
aMailMessage.ContentType := 'text/html';
aMailMessage.Subject := 'Subject Email';
S := '<table style="FONT-SIZE: 12px; font-name: Tahoma" dir="rtl" border="1" cellspacing="1" cellpadding="1" width="100%">';
S := S + '<tr><td>' + aBody + '</td></tr>';
S := S + '</table>';
aMailMessage.CharSet := 'UTF-8';
aMailMessage.Body.Text := S;
// send mail
try
try
aSMTP.Connect;
aSMTP.Send(aMailMessage);
except
on E: Exception do
// Error Handling
end;
finally
if aSMTP.Connected then
aSMTP.Disconnect;
end;
end;
اگر عمری بود در پست های بعدی کلاس های دیگر برنامه را قرار میدم
-
10 فایل پیوست
پاسخ : شروع پروژه بازی آنلاین - Delphi XE5 & Intaweb 14.0.32 & TMS Intraweb Component & SQL Server - علاقمندان به ما بپیوندند
سلام
امروز کلاس TUserProfile را میسازیم
روی قسمت خالی محیط دیاگرام کلیک راست کرده و از منویی که ظاهر میشود Add و سپس Structure را انتخاب کنید .
یک Structure ایجاد میشود
نام Structure1 را به TUserProfile تغییر بدید
مانند کلاس TUser خصوصیات (Peroperty ها) را به کلاس اضافه میکنیم
Point3 و Count3 برای امتیاز بازی و تعداد رمز های پیدا شده در سطح ساده
Point4 و Count4 برای امتیاز بازی و تعداد رمز های پیدا شده در سطح متوسط
Point5 و Count5 برای امتیاز بازی و تعداد رمز های پیدا شده در سطح سخت
به کلاس TUser یک Property با نام UserProfile از نوع TUserProfile اضافه میکنیم
به ارتباطی که بین دوکلاس برقرار شده است توجه کنید
یک Procedure به کلاس TUserProfile اضافه کنید و نام آن را Initial بگذارید
و بدنه Procedure را به شکل زیر کد نویسی کنید
مانند شکل زیر کلاس TUser را ویرایش کنید
کلاس TUserProfile اطلاعات مربوط به امتیازات و تعداد رمز های پیدا شده توسط کاربر را در اختیار شما میگذارد
کد:
unit WordGame_Namespace;
interface
uses
IdComponent,
IdTCPConnection,
IdTCPClient,
IdSSLOpenSSL,
IdIOHandler,
IdIOHandlerSocket,
IdIOHandlerStack,
IdSSL,
IdMessageClient,
IdSMTP,
IdBaseComponent,
IdMessage,
IdExplicitTLSClientServerBase,
IdSMTPBase,
Forms,
System.Classes,
ServerController,
StrUtils,
Data.DB,
Data.Win.ADODB,
SysUtils;
type
TUserProfile = record
private
FPoint3: Integer;
FPoint4: Integer;
FPoint5: Integer;
FCount3: Integer;
FCount4: Integer;
FCount5: Integer;
procedure SetPoint3(val: Integer);
procedure SetPoint4(val: Integer);
procedure SetPoint5(val: Integer);
procedure SetCount3(val: Integer);
procedure SetCount4(val: Integer);
procedure SetCount5(val: Integer);
procedure Initial(aUserID: Integer);
public
property Point3: Integer read FPoint3 write SetPoint3;
property Point4: Integer read FPoint4 write SetPoint4;
property Point5: Integer read FPoint5 write SetPoint5;
property Count3: Integer read FCount3 write SetCount3;
property Count4: Integer read FCount4 write SetCount4;
property Count5: Integer read FCount5 write SetCount5;
end;
TUser = class
public
private
var
FUserID : Integer;
FUsername : string;
FPassword : string;
FFullName : string;
FTotalPoint : Integer;
FEMail : string;
FUserProfile: TUserProfile;
procedure SetUserID(val: Integer);
procedure SetUsername(val: string);
procedure SetPassword(val: string);
procedure SetFulName(val: string);
procedure SetTotalPoint(val: Integer);
procedure SetEMail(val: string);
function SendMail(aSMTP: TIdSMTP; aMailMessage: TIdMessage; aSubject, aBody: WideString): string;
procedure SetUserProfile(val: TUserProfile);
public
property UserID : Integer read FUserID write SetUserID;
property Username : string read FUsername write SetUsername;
property Password : string read FPassword write SetPassword;
property FullName : string read FFullName write SetFulName;
property TotalPoint : Integer read FTotalPoint write SetTotalPoint;
property EMail : string read FEMail write SetEMail;
property UserProfile: TUserProfile read FUserProfile write SetUserProfile;
constructor Create;
destructor Destroy; override;
function Login: TUser;
function GetUserInfo(aUsername: string; aUserID: Integer = 0; aEMail: string = ''): TUser;
function RegisterUser: TUser;
function UpdateUser: boolean;
function ChangePassword(NewPassword: string): boolean;
procedure SendNewPasswordEmail(aSMTP: TIdSMTP; aMailMessage: TIdMessage);
end;
function RandomPassword(PLen: Integer): string;
function fOpen(aQry: WideString): TADOQuery;
function fOpenReturnInt(aQry: WideString): Integer;
function fOpenReturnStr(aQry: WideString): String;
function fRun(aQry: WideString): Integer;
implementation
function RandomPassword(PLen: Integer): string;
var
str: string;
begin
Randomize;
str := '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
Result := '';
repeat
Result := Result + str[Random(Length(str)) + 1];
until (Length(Result) = PLen);
end;
function fOpen(aQry: WideString): TADOQuery;
var
A: TADOQuery;
begin
try
A := TADOQuery.Create(Application);
A.Connection := IWServerController.ADOConnectionMain;
A.Close;
A.SQL.Text := aQry;
A.Open;
Result := A;
except
on E: Exception do
begin
// Error Handling
end;
end;
end;
function fOpenReturnInt(aQry: WideString): Integer;
var
A: TADOQuery;
begin
try
try
A := TADOQuery.Create(Application);
A.Connection := IWServerController.ADOConnectionMain;
A.Close;
A.SQL.Text := aQry;
A.Open;
Result := A.Fields[0].AsInteger;
except
on E: Exception do
begin
// Error Handling
end;
end;
finally
FreeAndNil(A);
end;
end;
function fOpenReturnStr(aQry: WideString): String;
var
A: TADOQuery;
begin
try
try
A := TADOQuery.Create(Application);
A.Connection := IWServerController.ADOConnectionMain;
A.Close;
A.SQL.Text := aQry;
A.Open;
Result := A.Fields[0].AsString;
except
on E: Exception do
begin
// Error Handling
end;
end;
finally
FreeAndNil(A);
end;
end;
function fRun(aQry: WideString): Integer;
var
A: TADOQuery;
begin
try
try
A := TADOQuery.Create(Application);
A.Connection := IWServerController.ADOConnectionMain;
A.Close;
A.SQL.Text := aQry;
Result := A.ExecSQL;
except
on E: Exception do
begin
// Error Handling
end;
end;
finally
FreeAndNil(A);
end;
end;
procedure TUserProfile.SetPoint3(val: Integer);
begin
FPoint3 := val;
end;
procedure TUserProfile.SetPoint4(val: Integer);
begin
FPoint4 := val;
end;
procedure TUserProfile.SetPoint5(val: Integer);
begin
FPoint5 := val;
end;
procedure TUserProfile.SetCount3(val: Integer);
begin
FCount3 := val;
end;
procedure TUserProfile.SetCount4(val: Integer);
begin
FCount4 := val;
end;
procedure TUserProfile.SetCount5(val: Integer);
begin
FCount5 := val;
end;
procedure TUserProfile.Initial(aUserID: Integer);
var
V: TADOQuery;
I: Integer;
begin
if aUserID <> 0 then
begin
V := fOpen('Exec sp_UserProfile ' + IntToStr(aUserID));
if V.RecordCount > 0 then
begin
Point3 := V.FieldByName('Point3').AsInteger;
Point4 := V.FieldByName('Point4').AsInteger;
Point5 := V.FieldByName('Point5').AsInteger;
Count3 := V.FieldByName('Count3').AsInteger;
Count4 := V.FieldByName('Count4').AsInteger;
Count5 := V.FieldByName('Count5').AsInteger;
end;
FreeAndNil(V);
end;
end;
procedure TUser.SetUserID(val: Integer);
begin
FUserID := val;
end;
procedure TUser.SetUsername(val: string);
begin
FUsername := val;
end;
procedure TUser.SetPassword(val: string);
begin
FPassword := val;
end;
procedure TUser.SetFulName(val: string);
begin
FFullName := val;
end;
procedure TUser.SetTotalPoint(val: Integer);
begin
FTotalPoint := val;
end;
procedure TUser.SetEMail(val: string);
begin
FEMail := val;
end;
constructor TUser.Create;
begin
inherited Create;
FUserID := 0;
FUsername := '';
FPassword := '';
FFullName := '';
FTotalPoint := 0;
FEMail := '';
FUserProfile.Point3 := 0;
FUserProfile.Point4 := 0;
FUserProfile.Point5 := 0;
FUserProfile.Count3 := 0;
FUserProfile.Count4 := 0;
FUserProfile.Count5 := 0;
end;
destructor TUser.Destroy;
begin
inherited Destroy;
end;
function TUser.Login: TUser;
var
V: Integer;
begin
Result := nil;
V := fOpenReturnInt('Select Count(*) from Users where Username = ' + QuotedStr(Username) + ' and Password = ' +
QuotedStr(Password));
if V > 0 then
Result := GetUserInfo(Username);
end;
function TUser.GetUserInfo(aUsername: string; aUserID: Integer = 0; aEMail: string = ''): TUser;
var
WHR_Clause: String;
V : TADOQuery;
I : Integer;
begin
Result := nil;
if aUserID <> 0 then
WHR_Clause := ' UserID = ' + IntToStr(aUserID)
else if aUsername <> '' then
WHR_Clause := ' Username = ' + QuotedStr(aUsername)
else if aEMail <> '' then
WHR_Clause := ' EMail = ' + QuotedStr(aEMail);
V := fOpen('Select * from Users where ' + WHR_Clause);
if V.RecordCount > 0 then
begin
Result := TUser.Create;
with Result do
begin
UserID := V.FieldByName('UserID').AsInteger;
FullName := V.FieldByName('FullName').AsString;
Username := V.FieldByName('Username').AsString;
Password := V.FieldByName('Password').AsString;
TotalPoint := V.FieldByName('TotalPoint').AsInteger;
EMail := V.FieldByName('EMail').AsString;
UserProfile.Initial(UserID);
end;
end;
FreeAndNil(V);
end;
function TUser.RegisterUser: TUser;
var
V: Integer;
begin
Result := nil;
V := fOpenReturnInt('Select Count(*) from Users where Username = ' + QuotedStr(Username));
if V = 0 then
begin
V := fOpenReturnInt('INSERT INTO Users (Username, Password, FullName, TotalPoint, EMail) VALUES (' +
QuotedStr(Username) + ',' + QuotedStr(Password) + ', N' + QuotedStr(FullName) + ',0,' +
QuotedStr(EMail) + '); Select Scope_Identity();');
if V > 0 then
begin
fRun('INSERT INTO UserProfile (UserID, DifficultyLevel, Point, PasswordCount) VALUES (' + IntToStr(V) +
', 3, 0, 0)');
fRun('INSERT INTO UserProfile (UserID, DifficultyLevel, Point, PasswordCount) VALUES (' + IntToStr(V) +
', 4, 0, 0)');
fRun('INSERT INTO UserProfile (UserID, DifficultyLevel, Point, PasswordCount) VALUES (' + IntToStr(V) +
', 5, 0, 0)');
Result := Self.GetUserInfo(Self.Username);
Self := Result;
end;
end;
end;
function TUser.UpdateUser: boolean;
var
V: Integer;
begin
Result := False;
V := fRun('Update Users SET FullName = N' + QuotedStr(FullName) + ' where UserID = ' + IntToStr(UserID));
if V > 0 then
Result := True;
end;
function TUser.ChangePassword(NewPassword: string): boolean;
var
V: Integer;
begin
Result := False;
V := fRun('Update Users set Password = ' + QuotedStr(NewPassword) + ' where UserID = ' + IntToStr(UserID));
if V > 0 then
Result := True;
end;
procedure TUser.SendNewPasswordEmail(aSMTP: TIdSMTP; aMailMessage: TIdMessage);
var
Subject, Body: WideString;
NewPass : String;
begin
NewPass := RandomPassword(10);
Subject := ':: ' + IWServerController.AppName + ' :: تغییر رمز عبور ::';
Body := 'کاربر گرامی ، ' + FullName + 'اقدام به درخواست رمز عبور جدید کرده اید . ' + IWServerController.AppName +
' شما از طریق کنترل پنل خود در سایت <br>' +
'رمز عبور جدید شما : ' + NewPass;
Self.ChangePassword(NewPass);
SendMail(aSMTP, aMailMessage, Subject, Body);
end;
function TUser.SendMail(aSMTP: TIdSMTP; aMailMessage: TIdMessage; aSubject, aBody: WideString): string;
var
S: String;
begin
// setup SMTP
aSMTP.Host := 'smtp.gmail.com';
aSMTP.Port := 25; // for smtp.gmail.com
// setup mail message
aMailMessage.From.Address := 'Email@gmail.com';
aMailMessage.Recipients.EMailAddresses := EMail;
aMailMessage.ContentType := 'text/html';
aMailMessage.Subject := 'Subject Email';
S := '<table style="FONT-SIZE: 12px; font-name: Tahoma" dir="rtl" border="1" cellspacing="1" cellpadding="1" width="100%">';
S := S + '<tr><td>' + aBody + '</td></tr>';
S := S + '</table>';
aMailMessage.CharSet := 'UTF-8';
aMailMessage.Body.Text := S;
// send mail
try
try
aSMTP.Connect;
aSMTP.Send(aMailMessage);
except
on E: Exception do
// Error Handling
end;
finally
if aSMTP.Connected then
aSMTP.Disconnect;
end;
end;
procedure TUser.SetUserProfile(val: TUserProfile);
begin
FUserProfile := val;
end;
در پست بعدی یک فایل Backup از دیتابیس بازی را قرار میدم تا بتونید نگاه دقیقتری به جزئیات داشته باشید
-
1 فایل پیوست
پاسخ : شروع پروژه بازی آنلاین - Delphi XE5 & Intaweb 14.0.32 & TMS Intraweb Component & SQL Server - علاقمندان به ما بپیوندند
آخرین فایل Backup دیتابیس بازی ضمیمه شده است
-
1 فایل پیوست
پاسخ : شروع پروژه بازی آنلاین - Delphi XE5 & Intaweb 14.0.32 & TMS Intraweb Component & SQL Server - علاقمندان به ما بپیوندند
ایجاد کلاس TWordGame
از این کلاس برای درج رمز جدید ، ثبت کلمه پیشنهادی کاربران در حین بازی و نمایش اطلاعات بازی استفاده میشه
به همان روشی که در پست های قبلی توضیح داده شد یک کلاس جدید ایجاد کرده و نام آن را TWordGame بگذارید
و مانند تصویر متد های مورد نظر را اضافه کنید
[برای مشاهده لینک ها شما باید عضو سایت باشید برای عضویت در سایت بر روی اینجا کلیک بکنید]
کد:
type
TWordGame = class
public
function GetSecretWordID(aDifficultyLevel: Integer): Integer;
function GetSecretWord(aDifficultyLevel: Integer): string;
function GetLastWinner(aDifficultyLevel: Integer): string;
function GetLastFoundSecretWord(aDifficultyLevel: Integer): string;
function AddNewSecretWord(aDifficultyLevel: Integer): Integer;
function AddNewSuggestionWord(aUserID, agsID: Integer; aSuggestionWord: string;
aPoint1, aPoint2, aDifficultyLevel: Integer): boolean;
function GetWordGameData(aDifficultyLevel: Integer): TADOQuery;
end;
کد:
function TWordGame.GetSecretWordID(aDifficultyLevel: Integer): Integer;
begin
Result := fOpenReturnInt('select gsID from GameSecrets where IsFound = 0 and DifficultyLevel = ' +
IntToStr(aDifficultyLevel));
end;
function TWordGame.GetSecretWord(aDifficultyLevel: Integer): string;
begin
Result := fOpenReturnStr('SELECT Word FROM GameSecrets GS inner join Words' + IntToStr(aDifficultyLevel) +
' W on GS.SecretWordID = W.wID where IsFound = 0 and DifficultyLevel = ' +
IntToStr(aDifficultyLevel));
end;
function TWordGame.GetLastWinner(aDifficultyLevel: Integer): string;
begin
Result := fOpenReturnStr('Select FullName from GameSecrets GS '
+ ' inner join GameWords GW on GW.gsID = GS.gsID and GW.DifficultyLevel = GS.DifficultyLevel '
+ ' inner join Users U on U.UserID = GW.UserID '
+ ' where GW.Point1 = GW.Point2 and GW.Point2 = GW.DifficultyLevel and GW.DifficultyLevel = ' +
IntToStr(aDifficultyLevel) + ' Order by GW.gwID Desc ');
end;
function TWordGame.GetLastFoundSecretWord(aDifficultyLevel: Integer): string;
begin
Result := fOpenReturnStr('Select SuggestionWord from GameSecrets GS '
+ ' inner join GameWords GW on GW.gsID = GS.gsID and GW.DifficultyLevel = GS.DifficultyLevel '
+ ' inner join Users U on U.UserID = GW.UserID '
+ ' where GW.Point1 = GW.Point2 and GW.Point2 = GW.DifficultyLevel and GW.DifficultyLevel = ' +
IntToStr(aDifficultyLevel) + ' Order by GW.gwID Desc ');
end;
function TWordGame.AddNewSecretWord(aDifficultyLevel: Integer): Integer;
begin
Result := fOpenReturnInt('declare @Result int;'
+ ' Exec sp_AddNewSecretWord ' + IntToStr(aDifficultyLevel) + ' , @Result output'
+ ' Select @Result;');
end;
function TWordGame.AddNewSuggestionWord(aUserID, agsID: Integer; aSuggestionWord: string;
aPoint1, aPoint2, aDifficultyLevel: Integer): boolean;
var
SuggestedCount: Integer;
aDataSet : TADOQuery;
begin
SuggestedCount := 0;
aDataSet := fOpen('Select SuggestionWord, Count(*) from GameWords '
+ ' where SuggestionWord = N' + QuotedStr(aSuggestionWord) + ' and gsid = ' + IntToStr(agsID)
+ ' Group By SuggestionWord ');
SuggestedCount := aDataSet.Fields[1].AsInteger;
FreeAndNil(aDataSet);
if SuggestedCount = 0 then
fRun('Exec sp_AddNewSuggestionWord ' + IntToStr(aUserID) + ',N' + QuotedStr(aSuggestionWord) + ',' +
IntToStr(aPoint1) +
',' + IntToStr(aPoint2) + ',' + IntToStr(aDifficultyLevel));
Result := SuggestedCount = 0;
end;
function TWordGame.GetWordGameData(aDifficultyLevel: Integer): TADOQuery;
begin
Result := fOpen('Select U.FullName, GW.SuggestionWord, Cast(Point1 as Varchar(1))+'' + ''+Cast(Point2 as Varchar(1)) as Point from GameWords GW '
+ 'inner join GameSecrets GS on GS.gsID = GW.gsID and GS.DifficultyLevel = GW.DifficultyLevel '
+ 'inner join Users U on GW.UserID = U.UserID '
+ 'where GS.IsFound = 0 and GS.DifficultyLevel = ' + IntToStr(aDifficultyLevel)
+ ' Order By GW.gwID Desc ');
end;
این آخرین کلاس بازی بود
در پست های بعدی فرم های بازی طراحی خواهد شد
-
5 فایل پیوست
پاسخ : شروع پروژه بازی آنلاین - Delphi XE5 & Intaweb 14.0.32 & TMS Intraweb Component & SQL Server - علاقمندان به ما بپیوندند
سلام
امروز در این پست ساخت فرم های بازی را انجام خواهیم داد
دلفی را اجرا کرده و پروژه بازی را باز کنید . در لیست Unit های بازی روی Unit3 کلیک راست کرده و گزینه Remove From Project را انتخاب کنید. این Unit به صورت پیش فرض همراه با پروژه ایجاد شده است.
سپس از منوی File گزینه New و سپس از منویی که ظاهر میشود گزینه ...Other را انتخاب کنید .
مانند تصویر گزینه NewForm را از زیر شاخه IntraWeb انتخاب کرده و روی OK کلیلک کنید تا فرم جدیدی به پروژه اضافه شود.
نام فرم جدید را به BaseForm تغییر داده و یک TIWTemplateProcessorHTML به فرم اضافه کنید . خصوصیت LayoutMgr فرم را به IWTemplateProcessorHTML1 تغییردهید.
مانند تصویر Unit1 را به BaseUnit تغییر نام دهید و از منوی File گزینه SaveAll را انتخاب کنید.
-
1 فایل پیوست
پاسخ : شروع پروژه بازی آنلاین - Delphi XE5 & Intaweb 14.0.32 & TMS Intraweb Component & SQL Server - علاقمندان به ما بپیوندند
فرم ثبت عضویت (RegisterForm)
از منوی File گزینه New و سپس ...Other را انتخاب کنید. و مانند تصویر یک فرم جدید که از همان BaseForm ارث بری میکند ایجاد کنید.
نام فرم را به RegisterForm تغییر داده و Unit آنرا با نام RegisterUnit ذخیره کنید.
روی فرم 4 عدد TIWEdit و یک عدد TTIWEmailEdit و یک عدد TIWGradButton قرار دهید و مشخصات آنها را به ترتیب زیر تغییر دهید :
کد:
object IWEditUsername: TIWEdit [0]
Left = 24
Top = 16
Width = 120
Height = 21
Cursor = crAuto
ParentShowHint = False
ShowHint = True
ZIndex = 0
RenderSize = True
Alignment = taLeftJustify
BGColor = clNone
FocusColor = clWebAQUAMARINE
Editable = True
NonEditableAsLabel = False
Font.Color = clNone
Font.Size = 10
Font.Style = []
FriendlyName = 'IWEditUsername'
MaxLength = 0
ReadOnly = False
Required = False
ScriptEvents = <>
SubmitOnAsyncEvent = True
TabOrder = 0
PasswordPrompt = False
end
object IWEmailEdit: TTIWEmailEdit [1]
Left = 24
Top = 43
Width = 121
Height = 21
Cursor = crAuto
ParentShowHint = False
ShowHint = True
ZIndex = 0
RenderSize = True
Alignment = taLeftJustify
BGColor = clNone
FocusColor = clWebAQUAMARINE
Editable = True
NonEditableAsLabel = False
Font.Color = clNone
Font.Size = 10
Font.Style = []
FriendlyName = 'IWEmailEdit'
MaxLength = 0
ReadOnly = False
Required = True
ScriptEvents = <>
SubmitOnAsyncEvent = True
TabOrder = 1
Flat = False
ErrorMessage = #1604#1591#1601#1575' '#1740#1705' '#1570#1583#1585#1587' '#1575#1740#1605#1740#1604' '#1605#1593#1578#1576#1585' '#1608#1575#1585#1583' '#1705#1606#1740#1583'.'
WarnOnly = False
end
object IWEditFullName: TIWEdit [2]
Left = 24
Top = 70
Width = 120
Height = 21
Cursor = crAuto
ParentShowHint = False
ShowHint = True
ZIndex = 0
RenderSize = True
Alignment = taLeftJustify
BGColor = clNone
FocusColor = clWebAQUAMARINE
Editable = True
NonEditableAsLabel = False
Font.Color = clNone
Font.Size = 10
Font.Style = []
FriendlyName = 'IWEditFullName'
MaxLength = 0
ReadOnly = False
Required = False
ScriptEvents = <>
SubmitOnAsyncEvent = True
TabOrder = 2
PasswordPrompt = False
end
object IWEditPassword: TIWEdit [3]
Left = 24
Top = 99
Width = 120
Height = 21
Cursor = crAuto
ParentShowHint = False
ShowHint = True
ZIndex = 0
RenderSize = True
Alignment = taLeftJustify
BGColor = clNone
FocusColor = clWebAQUAMARINE
Editable = True
NonEditableAsLabel = False
Font.Color = clNone
Font.Size = 10
Font.Style = []
FriendlyName = 'IWEditPassword'
MaxLength = 0
ReadOnly = False
Required = False
ScriptEvents = <>
SubmitOnAsyncEvent = True
TabOrder = 3
PasswordPrompt = True
end
object IWEditConfirmPassword: TIWEdit [4]
Left = 24
Top = 126
Width = 120
Height = 21
Cursor = crAuto
ParentShowHint = False
ShowHint = True
ZIndex = 0
RenderSize = True
Alignment = taLeftJustify
BGColor = clNone
FocusColor = clWebAQUAMARINE
Editable = True
NonEditableAsLabel = False
Font.Color = clNone
Font.Size = 10
Font.Style = []
FriendlyName = 'IWEditConfirmPassword'
MaxLength = 0
ReadOnly = False
Required = False
ScriptEvents = <>
SubmitOnAsyncEvent = True
TabOrder = 4
PasswordPrompt = True
end
object IWGradButtonRegister: TIWGradButton [5]
Left = 24
Top = 153
Width = 120
Height = 21
Cursor = crAuto
ParentShowHint = False
ShowHint = True
ZIndex = 0
RenderSize = True
Style.Border.Color = 818394
Style.Border.Width = 1
Style.BorderDisabled.Color = clWebGRAY
Style.BorderDisabled.Width = 1
Style.Button.Alignment = taCenter
Style.Button.Font.Color = clWebWHITE
Style.Button.Font.FontFamily = 'Arial, Sans-Serif, Verdana'
Style.Button.Font.Size = 10
Style.Button.Font.Style = []
Style.Button.FromColor = 1746426
Style.Button.ToColor = 2128628
Style.ButtonHover.Alignment = taCenter
Style.ButtonHover.Font.Color = clWebWHITE
Style.ButtonHover.Font.FontFamily = 'Arial, Sans-Serif, Verdana'
Style.ButtonHover.Font.Size = 10
Style.ButtonHover.Font.Style = []
Style.ButtonHover.FromColor = 1150712
Style.ButtonHover.ToColor = 1401072
Style.ButtonActive.Alignment = taCenter
Style.ButtonActive.Font.Color = clWebWHITE
Style.ButtonActive.Font.FontFamily = 'Arial, Sans-Serif, Verdana'
Style.ButtonActive.Font.Size = 10
Style.ButtonActive.Font.Style = []
Style.ButtonActive.FromColor = 2128628
Style.ButtonActive.ToColor = 1746426
Style.ButtonDisabled.Alignment = taCenter
Style.ButtonDisabled.Font.Color = clWebWHITE
Style.ButtonDisabled.Font.FontFamily = 'Arial, Sans-Serif, Verdana'
Style.ButtonDisabled.Font.Size = 10
Style.ButtonDisabled.Font.Style = []
Style.ButtonDisabled.FromColor = clWebLIGHTGRAY
Style.ButtonDisabled.ToColor = 7368816
Style.ColorScheme = csOrange
Style.BoxShadow.ColorTransparency = 0.500000000000000000
Style.TextShadow.ColorTransparency = 0.500000000000000000
Caption = #1579#1576#1578
Color = clBtnFace
Font.Color = clNone
Font.Size = 10
Font.Style = []
FriendlyName = 'IWGradButtonRegister'
ScriptEvents = <>
TabOrder = 5
OnClick = IWGradButtonRegisterClick
OnAsyncClick = IWGradButtonRegisterAsyncClick
end
-
1 فایل پیوست
پاسخ : شروع پروژه بازی آنلاین - Delphi XE5 & Intaweb 14.0.32 & TMS Intraweb Component & SQL Server - علاقمندان به ما بپیوندند
فرم ورود (LoginForm)
از منوی File گزینه New و سپس ...Other را انتخاب کنید. و مانند تصویر یک فرم جدید که از همان BaseForm ارث بری میکند ایجاد کنید.
نام فرم را به LoginForm تغییر داده و Unit آنرا با نام LoginUnit ذخیره کنید.
روی فرم 2 عدد TIWEdit و 2 عدد TIWLink و یک عدد TIWGradButton قرار دهید و مشخصات آنها را به ترتیب زیر تغییر دهید :
کد:
object IWEditUsername: TIWEdit [0]
Left = 24
Top = 16
Width = 121
Height = 21
Cursor = crAuto
ParentShowHint = False
ShowHint = True
ZIndex = 0
RenderSize = True
Alignment = taLeftJustify
BGColor = clNone
FocusColor = clWebAQUAMARINE
Editable = True
NonEditableAsLabel = False
Font.Color = clNone
Font.Size = 10
Font.Style = []
FriendlyName = 'IWEditUsername'
MaxLength = 0
ReadOnly = False
Required = False
ScriptEvents = <>
SubmitOnAsyncEvent = True
TabOrder = 0
PasswordPrompt = False
end
object IWEditPassword: TIWEdit [1]
Left = 24
Top = 40
Width = 121
Height = 21
Cursor = crAuto
ParentShowHint = False
ShowHint = True
ZIndex = 0
RenderSize = True
Alignment = taLeftJustify
BGColor = clNone
FocusColor = clWebAQUAMARINE
Editable = True
NonEditableAsLabel = False
Font.Color = clNone
Font.Size = 10
Font.Style = []
FriendlyName = 'IWEditPassword'
MaxLength = 0
ReadOnly = False
Required = False
ScriptEvents = <>
SubmitOnAsyncEvent = True
TabOrder = 1
PasswordPrompt = True
end
object IWGradButtonLogin: TIWGradButton [2]
Left = 24
Top = 67
Width = 121
Height = 21
Cursor = crAuto
ParentShowHint = False
ShowHint = True
ZIndex = 0
RenderSize = True
Style.Border.Color = 1213267
Style.Border.Width = 1
Style.BorderDisabled.Color = clWebGRAY
Style.BorderDisabled.Width = 1
Style.Button.Alignment = taCenter
Style.Button.Font.Color = clWebWHITE
Style.Button.Font.FontFamily = 'Arial, Sans-Serif, Verdana'
Style.Button.Font.Size = 10
Style.Button.Font.Style = []
Style.Button.FromColor = 3127165
Style.Button.ToColor = 949582
Style.ButtonHover.Alignment = taCenter
Style.ButtonHover.Font.Color = clWebWHITE
Style.ButtonHover.Font.FontFamily = 'Arial, Sans-Serif, Verdana'
Style.ButtonHover.Font.Size = 10
Style.ButtonHover.Font.Style = []
Style.ButtonHover.FromColor = 2661739
Style.ButtonHover.ToColor = 813891
Style.ButtonActive.Alignment = taCenter
Style.ButtonActive.Font.Color = clWebWHITE
Style.ButtonActive.Font.FontFamily = 'Arial, Sans-Serif, Verdana'
Style.ButtonActive.Font.Size = 10
Style.ButtonActive.Font.Style = []
Style.ButtonActive.FromColor = 949582
Style.ButtonActive.ToColor = 3127165
Style.ButtonDisabled.Alignment = taCenter
Style.ButtonDisabled.Font.Color = clWebWHITE
Style.ButtonDisabled.Font.FontFamily = 'Arial, Sans-Serif, Verdana'
Style.ButtonDisabled.Font.Size = 10
Style.ButtonDisabled.Font.Style = []
Style.ButtonDisabled.FromColor = clWebLIGHTGRAY
Style.ButtonDisabled.ToColor = 7368816
Style.ColorScheme = csGreen
Style.BoxShadow.ColorTransparency = 0.500000000000000000
Style.TextShadow.ColorTransparency = 0.500000000000000000
Caption = #1608#1585#1608#1583
Color = clBtnFace
Font.Color = clNone
Font.Size = 10
Font.Style = []
FriendlyName = 'IWGradButtonLogin'
ScriptEvents = <>
TabOrder = 2
OnClick = IWGradButtonLoginClick
OnAsyncClick = IWGradButtonLoginAsyncClick
end
object IWLinkForgetPassword: TIWLink [3]
Left = 33
Top = 94
Width = 105
Height = 17
Cursor = crAuto
ParentShowHint = False
ShowHint = True
ZIndex = 0
RenderSize = True
Alignment = taLeftJustify
Color = clNone
Font.Color = clWebBLUE
Font.Size = 10
Font.Style = []
ScriptEvents = <>
DoSubmitValidation = False
FriendlyName = 'IWLinkForgetPassword'
OnClick = IWLinkForgetPasswordClick
TabOrder = 3
RawText = False
Caption = #1601#1585#1575#1605#1608#1588#1740' '#1585#1605#1586' '#1593#1576#1608#1585
end
object IWLinkRegister: TIWLink [4]
Left = 69
Top = 110
Width = 49
Height = 17
Cursor = crAuto
ParentShowHint = False
ShowHint = True
ZIndex = 0
RenderSize = True
Alignment = taLeftJustify
Color = clNone
Font.Color = clWebRED
Font.Size = 10
Font.Style = []
ScriptEvents = <>
DoSubmitValidation = False
FriendlyName = 'IWLinkRegister'
OnClick = IWLinkRegisterClick
TabOrder = 4
RawText = False
Caption = #1579#1576#1578' '#1606#1575#1605
end
-
1 فایل پیوست
پاسخ : شروع پروژه بازی آنلاین - Delphi XE5 & Intaweb 14.0.32 & TMS Intraweb Component & SQL Server - علاقمندان به ما بپیوندند
فرم تغییر رمز عبور (ChangePasswordForm)
از منوی File گزینه New و سپس ...Other را انتخاب کنید. و مانند تصویر یک فرم جدید که از همان BaseForm ارث بری میکند ایجاد کنید.
نام فرم را به ChangePasswordForm تغییر داده و Unit آنرا با نام ChangePasswordUnit ذخیره کنید.
روی فرم 3 عدد TIWEdit و یک عدد TIWGradButton قرار دهید و مشخصات آنها را به ترتیب زیر تغییر دهید :
کد:
object IWEditCurrentPassword: TIWEdit [0]
Left = 24
Top = 19
Width = 120
Height = 21
Cursor = crAuto
ParentShowHint = False
ShowHint = True
ZIndex = 0
RenderSize = True
Alignment = taLeftJustify
BGColor = clNone
FocusColor = clWebAQUAMARINE
Editable = True
NonEditableAsLabel = False
Font.Color = clNone
Font.Size = 10
Font.Style = []
FriendlyName = 'IWEditCurrentPassword'
MaxLength = 0
ReadOnly = False
Required = False
ScriptEvents = <>
SubmitOnAsyncEvent = True
TabOrder = 0
PasswordPrompt = True
end
object IWEditNewPassword: TIWEdit [1]
Left = 24
Top = 46
Width = 120
Height = 21
Cursor = crAuto
ParentShowHint = False
ShowHint = True
ZIndex = 0
RenderSize = True
Alignment = taLeftJustify
BGColor = clNone
FocusColor = clWebAQUAMARINE
Editable = True
NonEditableAsLabel = False
Font.Color = clNone
Font.Size = 10
Font.Style = []
FriendlyName = 'IWEditNewPassword'
MaxLength = 0
ReadOnly = False
Required = False
ScriptEvents = <>
SubmitOnAsyncEvent = True
TabOrder = 1
PasswordPrompt = True
end
object IWEditConfirmNewPassword: TIWEdit [2]
Left = 24
Top = 73
Width = 120
Height = 21
Cursor = crAuto
ParentShowHint = False
ShowHint = True
ZIndex = 0
RenderSize = True
Alignment = taLeftJustify
BGColor = clNone
FocusColor = clWebAQUAMARINE
Editable = True
NonEditableAsLabel = False
Font.Color = clNone
Font.Size = 10
Font.Style = []
FriendlyName = 'IWEditConfirmNewPassword'
MaxLength = 0
ReadOnly = False
Required = False
ScriptEvents = <>
SubmitOnAsyncEvent = True
TabOrder = 2
PasswordPrompt = True
end
object IWGradButtonChangePassword: TIWGradButton [3]
Left = 24
Top = 100
Width = 120
Height = 21
Cursor = crAuto
ParentShowHint = False
ShowHint = True
ZIndex = 0
RenderSize = True
Style.Border.Color = 818394
Style.Border.Width = 1
Style.BorderDisabled.Color = clWebGRAY
Style.BorderDisabled.Width = 1
Style.Button.Alignment = taCenter
Style.Button.Font.Color = clWebWHITE
Style.Button.Font.FontFamily = 'Arial, Sans-Serif, Verdana'
Style.Button.Font.Size = 10
Style.Button.Font.Style = []
Style.Button.FromColor = 1746426
Style.Button.ToColor = 2128628
Style.ButtonHover.Alignment = taCenter
Style.ButtonHover.Font.Color = clWebWHITE
Style.ButtonHover.Font.FontFamily = 'Arial, Sans-Serif, Verdana'
Style.ButtonHover.Font.Size = 10
Style.ButtonHover.Font.Style = []
Style.ButtonHover.FromColor = 1150712
Style.ButtonHover.ToColor = 1401072
Style.ButtonActive.Alignment = taCenter
Style.ButtonActive.Font.Color = clWebWHITE
Style.ButtonActive.Font.FontFamily = 'Arial, Sans-Serif, Verdana'
Style.ButtonActive.Font.Size = 10
Style.ButtonActive.Font.Style = []
Style.ButtonActive.FromColor = 2128628
Style.ButtonActive.ToColor = 1746426
Style.ButtonDisabled.Alignment = taCenter
Style.ButtonDisabled.Font.Color = clWebWHITE
Style.ButtonDisabled.Font.FontFamily = 'Arial, Sans-Serif, Verdana'
Style.ButtonDisabled.Font.Size = 10
Style.ButtonDisabled.Font.Style = []
Style.ButtonDisabled.FromColor = clWebLIGHTGRAY
Style.ButtonDisabled.ToColor = 7368816
Style.ColorScheme = csOrange
Style.BoxShadow.ColorTransparency = 0.500000000000000000
Style.TextShadow.ColorTransparency = 0.500000000000000000
Caption = #1579#1576#1578' '#1585#1605#1586' '#1593#1576#1608#1585' '#1580#1583#1740#1583
Color = clBtnFace
Font.Color = clNone
Font.Size = 10
Font.Style = []
FriendlyName = 'IWGradButtonChangePassword'
ScriptEvents = <>
TabOrder = 3
end
----------------------------------------------------------------------------------------------------------------------------
فرم فراموشی رمز عبور (ForgetPasswordForm)
یک بار دیگر از منوی File گزینه New و سپس ...Other را انتخاب کنید. و یک فرم جدید که از همان BaseForm ارث بری میکند ایجاد کنید.
نام فرم را به ForgetPasswordForm تغییر داده و Unit آنرا با نام ForgetPasswordUnit ذخیره کنید.
روی فرم 1 عدد TTIWEmailEdit و یک عدد TIWGradButton قرار دهید و مشخصات آنها را به ترتیب زیر تغییر دهید :
کد:
object IWEmailEdit: TTIWEmailEdit [0]
Left = 24
Top = 19
Width = 161
Height = 21
Cursor = crAuto
ParentShowHint = False
ShowHint = True
ZIndex = 0
RenderSize = True
Alignment = taLeftJustify
BGColor = clNone
FocusColor = clWebAQUAMARINE
Editable = True
NonEditableAsLabel = False
Font.Color = clNone
Font.Size = 10
Font.Style = []
FriendlyName = 'IWEmailEdit'
MaxLength = 0
ReadOnly = False
Required = True
ScriptEvents = <>
SubmitOnAsyncEvent = True
TabOrder = 0
Flat = False
ErrorMessage = #1604#1591#1601#1575' '#1740#1705' '#1570#1583#1585#1587' '#1575#1740#1605#1740#1604' '#1605#1593#1578#1576#1585' '#1608#1575#1585#1583' '#1705#1606#1740#1583'.'
WarnOnly = False
end
object IWGradButtonSendPassword: TIWGradButton [1]
Left = 25
Top = 46
Width = 160
Height = 21
Cursor = crAuto
ParentShowHint = False
ShowHint = True
ZIndex = 0
RenderSize = True
Style.Border.Color = 818394
Style.Border.Width = 1
Style.BorderDisabled.Color = clWebGRAY
Style.BorderDisabled.Width = 1
Style.Button.Alignment = taCenter
Style.Button.Font.Color = clWebWHITE
Style.Button.Font.FontFamily = 'Arial, Sans-Serif, Verdana'
Style.Button.Font.Size = 10
Style.Button.Font.Style = []
Style.Button.FromColor = 1746426
Style.Button.ToColor = 2128628
Style.ButtonHover.Alignment = taCenter
Style.ButtonHover.Font.Color = clWebWHITE
Style.ButtonHover.Font.FontFamily = 'Arial, Sans-Serif, Verdana'
Style.ButtonHover.Font.Size = 10
Style.ButtonHover.Font.Style = []
Style.ButtonHover.FromColor = 1150712
Style.ButtonHover.ToColor = 1401072
Style.ButtonActive.Alignment = taCenter
Style.ButtonActive.Font.Color = clWebWHITE
Style.ButtonActive.Font.FontFamily = 'Arial, Sans-Serif, Verdana'
Style.ButtonActive.Font.Size = 10
Style.ButtonActive.Font.Style = []
Style.ButtonActive.FromColor = 2128628
Style.ButtonActive.ToColor = 1746426
Style.ButtonDisabled.Alignment = taCenter
Style.ButtonDisabled.Font.Color = clWebWHITE
Style.ButtonDisabled.Font.FontFamily = 'Arial, Sans-Serif, Verdana'
Style.ButtonDisabled.Font.Size = 10
Style.ButtonDisabled.Font.Style = []
Style.ButtonDisabled.FromColor = clWebLIGHTGRAY
Style.ButtonDisabled.ToColor = 7368816
Style.ColorScheme = csOrange
Style.BoxShadow.ColorTransparency = 0.500000000000000000
Style.TextShadow.ColorTransparency = 0.500000000000000000
Caption = #1575#1585#1587#1575#1604' '#1585#1605#1586' '#1593#1576#1608#1585' '#1576#1607' '#1575#1740#1605#1740#1604
Color = clBtnFace
Font.Color = clNone
Font.Size = 10
Font.Style = []
FriendlyName = 'IWGradButtonSendPassword'
ScriptEvents = <>
TabOrder = 1
end
-
1 فایل پیوست
پاسخ : شروع پروژه بازی آنلاین - Delphi XE5 & Intaweb 14.0.32 & TMS Intraweb Component & SQL Server - علاقمندان به ما بپیوندند
فرم پروفایل کاربر (UserProfileForm)
از منوی File گزینه New و سپس ...Other را انتخاب کنید. و مانند تصویر یک فرم جدید که از همان BaseForm ارث بری میکند ایجاد کنید.
نام فرم را به UserProfileForm تغییر داده و Unit آنرا با نام UserProfileUnit ذخیره کنید.
روی فرم 9 عدد TIWLabel قرار دهید و مشخصات آنها را به ترتیب زیر تغییر دهید :
کد:
object IWLabelUsername: TIWLabel [0]
Left = 40
Top = 16
Width = 114
Height = 16
Cursor = crAuto
ParentShowHint = False
ShowHint = True
ZIndex = 0
RenderSize = True
Alignment = taLeftJustify
BGColor = clNone
Font.Color = clNone
Font.Size = 10
Font.Style = []
NoWrap = False
ConvertSpaces = False
HasTabOrder = False
FriendlyName = 'IWLabelUsername'
Caption = 'IWLabelUsername'
RawText = False
end
object IWLabelTotalPoint: TIWLabel [1]
Left = 40
Top = 48
Width = 113
Height = 16
Cursor = crAuto
ParentShowHint = False
ShowHint = True
ZIndex = 0
RenderSize = True
Alignment = taLeftJustify
BGColor = clNone
Font.Color = clNone
Font.Size = 10
Font.Style = []
NoWrap = False
ConvertSpaces = False
HasTabOrder = False
FriendlyName = 'IWLabelTotalPoint'
Caption = 'IWLabelTotalPoint'
RawText = False
end
object IWLabelEMail: TIWLabel [2]
Left = 40
Top = 32
Width = 83
Height = 16
Cursor = crAuto
ParentShowHint = False
ShowHint = True
ZIndex = 0
RenderSize = True
Alignment = taLeftJustify
BGColor = clNone
Font.Color = clNone
Font.Size = 10
Font.Style = []
NoWrap = False
ConvertSpaces = False
HasTabOrder = False
FriendlyName = 'IWLabelEMail'
Caption = 'IWLabelEMail'
RawText = False
end
object IWLabelPoint3: TIWLabel [3]
Left = 40
Top = 64
Width = 89
Height = 16
Cursor = crAuto
ParentShowHint = False
ShowHint = True
ZIndex = 0
RenderSize = True
Alignment = taLeftJustify
BGColor = clNone
Font.Color = clNone
Font.Size = 10
Font.Style = []
NoWrap = False
ConvertSpaces = False
HasTabOrder = False
FriendlyName = 'IWLabelPoint3'
Caption = 'IWLabelPoint3'
RawText = False
end
object IWLabelPoint4: TIWLabel [4]
Left = 40
Top = 80
Width = 89
Height = 16
Cursor = crAuto
ParentShowHint = False
ShowHint = True
ZIndex = 0
RenderSize = True
Alignment = taLeftJustify
BGColor = clNone
Font.Color = clNone
Font.Size = 10
Font.Style = []
NoWrap = False
ConvertSpaces = False
HasTabOrder = False
FriendlyName = 'IWLabelPoint4'
Caption = 'IWLabelPoint4'
RawText = False
end
object IWLabelPoint5: TIWLabel [5]
Left = 40
Top = 96
Width = 89
Height = 16
Cursor = crAuto
ParentShowHint = False
ShowHint = True
ZIndex = 0
RenderSize = True
Alignment = taLeftJustify
BGColor = clNone
Font.Color = clNone
Font.Size = 10
Font.Style = []
NoWrap = False
ConvertSpaces = False
HasTabOrder = False
FriendlyName = 'IWLabelPoint5'
Caption = 'IWLabelPoint5'
RawText = False
end
object IWLabelCount3: TIWLabel [6]
Left = 40
Top = 112
Width = 94
Height = 16
Cursor = crAuto
ParentShowHint = False
ShowHint = True
ZIndex = 0
RenderSize = True
Alignment = taLeftJustify
BGColor = clNone
Font.Color = clNone
Font.Size = 10
Font.Style = []
NoWrap = False
ConvertSpaces = False
HasTabOrder = False
FriendlyName = 'IWLabelCount3'
Caption = 'IWLabelCount3'
RawText = False
end
object IWLabelCount4: TIWLabel [7]
Left = 40
Top = 128
Width = 94
Height = 16
Cursor = crAuto
ParentShowHint = False
ShowHint = True
ZIndex = 0
RenderSize = True
Alignment = taLeftJustify
BGColor = clNone
Font.Color = clNone
Font.Size = 10
Font.Style = []
NoWrap = False
ConvertSpaces = False
HasTabOrder = False
FriendlyName = 'IWLabelCount4'
Caption = 'IWLabelCount4'
RawText = False
end
object IWLabelCount5: TIWLabel [8]
Left = 40
Top = 144
Width = 94
Height = 16
Cursor = crAuto
ParentShowHint = False
ShowHint = True
ZIndex = 0
RenderSize = True
Alignment = taLeftJustify
BGColor = clNone
Font.Color = clNone
Font.Size = 10
Font.Style = []
NoWrap = False
ConvertSpaces = False
HasTabOrder = False
FriendlyName = 'IWLabelCount5'
Caption = 'IWLabelCount5'
RawText = False
end
-
1 فایل پیوست
پاسخ : شروع پروژه بازی آنلاین - Delphi XE5 & Intaweb 14.0.32 & TMS Intraweb Component & SQL Server - علاقمندان به ما بپیوندند
فرم انتخاب سطح دشواری بازی (SelectDifficultyLevelForm)
از منوی File گزینه New و سپس ...Other را انتخاب کنید. و مانند تصویر یک فرم جدید که از همان BaseForm ارث بری میکند ایجاد کنید.
نام فرم را به SelectDifficultyLevelForm تغییر داده و Unit آنرا با نام SelectDifficultyLevelUnit ذخیره کنید.
روی فرم 3 عدد TIWGradButton قرار دهید و مشخصات آنها را به ترتیب زیر تغییر دهید :
کد:
object IWGradButtonEasy: TIWGradButton [0]
Left = 24
Top = 20
Width = 130
Height = 21
Cursor = crAuto
ParentShowHint = False
ShowHint = True
ZIndex = 0
RenderSize = True
Style.Border.Color = 105166
Style.Border.Width = 1
Style.BorderDisabled.Color = clWebGRAY
Style.BorderDisabled.Width = 1
Style.Button.Alignment = taCenter
Style.Button.Font.Color = clWebBLACK
Style.Button.Font.FontFamily = 'Arial, Sans-Serif, Verdana'
Style.Button.Font.Size = 10
Style.Button.Font.Style = []
Style.Button.FromColor = 6215423
Style.Button.ToColor = 311294
Style.ButtonHover.Alignment = taCenter
Style.ButtonHover.Font.Color = clWebWHITE
Style.ButtonHover.Font.FontFamily = 'Arial, Sans-Serif, Verdana'
Style.ButtonHover.Font.Size = 10
Style.ButtonHover.Font.Style = []
Style.ButtonHover.FromColor = 105166
Style.ButtonHover.ToColor = 2869759
Style.ButtonActive.Alignment = taCenter
Style.ButtonActive.Font.Color = clWebWHITE
Style.ButtonActive.Font.FontFamily = 'Arial, Sans-Serif, Verdana'
Style.ButtonActive.Font.Size = 10
Style.ButtonActive.Font.Style = []
Style.ButtonActive.FromColor = 311294
Style.ButtonActive.ToColor = 6215423
Style.ButtonDisabled.Alignment = taCenter
Style.ButtonDisabled.Font.Color = clWebWHITE
Style.ButtonDisabled.Font.FontFamily = 'Arial, Sans-Serif, Verdana'
Style.ButtonDisabled.Font.Size = 10
Style.ButtonDisabled.Font.Style = []
Style.ButtonDisabled.FromColor = clWebLIGHTGRAY
Style.ButtonDisabled.ToColor = 7368816
Style.ColorScheme = csYellow
Style.BoxShadow.ColorTransparency = 0.500000000000000000
Style.TextShadow.ColorTransparency = 0.500000000000000000
Caption = #1587#1575#1583#1607' - '#1587#1607' '#1581#1585#1601#1740
Color = clBtnFace
Font.Color = clNone
Font.Size = 10
Font.Style = []
FriendlyName = 'IWGradButtonEasy'
ScriptEvents = <>
TabOrder = 0
end
object IWGradButtonMiddle: TIWGradButton [1]
Left = 24
Top = 44
Width = 130
Height = 21
Cursor = crAuto
ParentShowHint = False
ShowHint = True
ZIndex = 0
RenderSize = True
Style.Border.Color = 818394
Style.Border.Width = 1
Style.BorderDisabled.Color = clWebGRAY
Style.BorderDisabled.Width = 1
Style.Button.Alignment = taCenter
Style.Button.Font.Color = clWebWHITE
Style.Button.Font.FontFamily = 'Arial, Sans-Serif, Verdana'
Style.Button.Font.Size = 10
Style.Button.Font.Style = []
Style.Button.FromColor = 1746426
Style.Button.ToColor = 2128628
Style.ButtonHover.Alignment = taCenter
Style.ButtonHover.Font.Color = clWebWHITE
Style.ButtonHover.Font.FontFamily = 'Arial, Sans-Serif, Verdana'
Style.ButtonHover.Font.Size = 10
Style.ButtonHover.Font.Style = []
Style.ButtonHover.FromColor = 1150712
Style.ButtonHover.ToColor = 1401072
Style.ButtonActive.Alignment = taCenter
Style.ButtonActive.Font.Color = clWebWHITE
Style.ButtonActive.Font.FontFamily = 'Arial, Sans-Serif, Verdana'
Style.ButtonActive.Font.Size = 10
Style.ButtonActive.Font.Style = []
Style.ButtonActive.FromColor = 2128628
Style.ButtonActive.ToColor = 1746426
Style.ButtonDisabled.Alignment = taCenter
Style.ButtonDisabled.Font.Color = clWebWHITE
Style.ButtonDisabled.Font.FontFamily = 'Arial, Sans-Serif, Verdana'
Style.ButtonDisabled.Font.Size = 10
Style.ButtonDisabled.Font.Style = []
Style.ButtonDisabled.FromColor = clWebLIGHTGRAY
Style.ButtonDisabled.ToColor = 7368816
Style.ColorScheme = csOrange
Style.BoxShadow.ColorTransparency = 0.500000000000000000
Style.TextShadow.ColorTransparency = 0.500000000000000000
Caption = #1605#1578#1608#1587#1591' - '#1670#1607#1575#1585' '#1581#1585#1601#1740
Color = clBtnFace
Font.Color = clNone
Font.Size = 10
Font.Style = []
FriendlyName = 'IWGradButtonMiddle'
ScriptEvents = <>
TabOrder = 1
end
object IWGradButtonHard: TIWGradButton [2]
Left = 24
Top = 68
Width = 130
Height = 21
Cursor = crAuto
ParentShowHint = False
ShowHint = True
ZIndex = 0
RenderSize = True
Style.Border.Color = 1051800
Style.Border.Width = 1
Style.BorderDisabled.Color = clWebGRAY
Style.BorderDisabled.Width = 1
Style.Button.Alignment = taCenter
Style.Button.Font.Color = clWebWHITE
Style.Button.Font.FontFamily = 'Arial, Sans-Serif, Verdana'
Style.Button.Font.Size = 10
Style.Button.Font.Style = []
Style.Button.FromColor = 2366701
Style.Button.ToColor = 1512362
Style.ButtonHover.Alignment = taCenter
Style.ButtonHover.Font.Color = clWebWHITE
Style.ButtonHover.Font.FontFamily = 'Arial, Sans-Serif, Verdana'
Style.ButtonHover.Font.Size = 10
Style.ButtonHover.Font.Style = []
Style.ButtonHover.FromColor = 1775049
Style.ButtonHover.ToColor = 1380769
Style.ButtonActive.Alignment = taCenter
Style.ButtonActive.Font.Color = clWebWHITE
Style.ButtonActive.Font.FontFamily = 'Arial, Sans-Serif, Verdana'
Style.ButtonActive.Font.Size = 10
Style.ButtonActive.Font.Style = []
Style.ButtonActive.FromColor = 1512362
Style.ButtonActive.ToColor = 2366701
Style.ButtonDisabled.Alignment = taCenter
Style.ButtonDisabled.Font.Color = clWebWHITE
Style.ButtonDisabled.Font.FontFamily = 'Arial, Sans-Serif, Verdana'
Style.ButtonDisabled.Font.Size = 10
Style.ButtonDisabled.Font.Style = []
Style.ButtonDisabled.FromColor = clWebLIGHTGRAY
Style.ButtonDisabled.ToColor = 7368816
Style.ColorScheme = csRed
Style.BoxShadow.ColorTransparency = 0.500000000000000000
Style.TextShadow.ColorTransparency = 0.500000000000000000
Caption = #1587#1582#1578' - '#1662#1606#1580' '#1581#1585#1601#1740
Color = clBtnFace
Font.Color = clNone
Font.Size = 10
Font.Style = []
FriendlyName = 'IWGradButtonHard'
ScriptEvents = <>
TabOrder = 2
end
-
1 فایل پیوست
پاسخ : شروع پروژه بازی آنلاین - Delphi XE5 & Intaweb 14.0.32 & TMS Intraweb Component & SQL Server - علاقمندان به ما بپیوندند
فرم بازی (WordGameForm)
از منوی File گزینه New و سپس ...Other را انتخاب کنید. و مانند تصویر یک فرم جدید که از همان BaseForm ارث بری میکند ایجاد کنید.
نام فرم را به WordGameForm تغییر داده و Unit آنرا با نام WordGameUnit ذخیره کنید.
روی فرم 3 عدد TIWLabel
و 1 عدد TIWEdit
و 1 عدد TIWGradButton
و 1 عدد TTIWDBAdvWebGrid
و 1 عدد TDataSource
و 1 عدد TIWAJAXNotifier
و 1 عدد TIWTimer قرار دهید و مشخصات آنها را به ترتیب زیر تغییر دهید :
کد:
object IWLabelDifficultyLevel: TIWLabel [0]
Left = 16
Top = 16
Width = 135
Height = 16
Cursor = crAuto
ParentShowHint = False
ShowHint = True
ZIndex = 0
RenderSize = True
Alignment = taLeftJustify
BGColor = clNone
Font.Color = clNone
Font.Size = 10
Font.Style = []
NoWrap = False
ConvertSpaces = False
HasTabOrder = False
FriendlyName = 'IWLabelDifficultyLevel'
Caption = 'IWLabelDifficultyLevel'
RawText = False
end
object IWEditSuggestionWord: TIWEdit [1]
Left = 16
Top = 38
Width = 121
Height = 21
Cursor = crAuto
ParentShowHint = False
ShowHint = True
ZIndex = 0
RenderSize = True
Alignment = taLeftJustify
BGColor = clNone
FocusColor = clWebAQUAMARINE
Editable = True
NonEditableAsLabel = False
Font.Color = clNone
Font.Size = 10
Font.Style = []
FriendlyName = 'IWEditSuggestionWord'
MaxLength = 0
ReadOnly = False
Required = False
ScriptEvents = <>
SubmitOnAsyncEvent = True
TabOrder = 0
OnAsyncKeyDown = IWEditSuggestionWordAsyncKeyDown
PasswordPrompt = False
end
object TIWDBAdvWebGridGame: TTIWDBAdvWebGrid [2]
Left = 191
Top = 11
Width = 322
Height = 377
Cursor = crPointer
ParentShowHint = False
ShowHint = True
ZIndex = 0
RenderSize = True
ActiveRowColor = clNone
ActiveRowFontColor = clNone
AdvanceOnReturn = False
AutoEdit = False
AutoHTMLAdapt = False
Background.GradientDirection = gdHorizontal
Background.Gradient1 = clNone
Background.Gradient2 = clNone
Background.Picture.Stretch = False
Background.Picture.Frame = 0
Bands.Active = True
Bands.PrimaryColor = clInfoBk
Bands.SecondaryColor = clWebWHITE
Borders.Inner = ibColumns
Borders.Outer = obVertical
Borders.Padding = 0
Borders.Spacing = 0
Borders.Width = 1
Borders.Collapsed = True
Borders.Color = clNone
Borders.ColorDark = clNone
Borders.ColorLight = clNone
CellComment.BorderColor = 14263350
CellComment.Color = 15784080
CellComment.DisplayType = dtMouseOver
CellComment.Font.Color = 9330453
CellComment.Font.Size = 10
CellComment.Font.Style = []
CheckTruePicture.Stretch = False
CheckTruePicture.Frame = 1
CheckTruePictureURL = '/True.png'
CheckFalsePicture.Stretch = False
CheckFalsePicture.Frame = 1
CheckFalsePictureURL = '/False.png'
Color = clNone
Columns = <
item
Alignment = taCenter
CanSort = False
CheckTrue = 'true'
CheckFalse = 'false'
ColumnHeaderAlignment = taCenter
ColumnHeaderClick = False
ColumnHeaderFont.Color = clNone
ColumnHeaderFont.Size = 10
ColumnHeaderFont.Style = []
DefaultDynEdit = '0'
DefaultDynText = '0'
DetailFont.Color = clNone
DetailFont.Size = 10
DetailFont.Style = []
Font.Color = clNone
Font.Size = 10
Font.Style = []
FooterFormat = '%g'
SpinEditMaxValue = 100
SpinEditMinValue = 0
Title = #1575#1605#1578#1610#1575#1586
Width = 80
DataField = 'Point'
end
item
Alignment = taCenter
CanSort = False
CheckTrue = 'true'
CheckFalse = 'false'
ColumnHeaderAlignment = taCenter
ColumnHeaderClick = False
ColumnHeaderFont.Color = clNone
ColumnHeaderFont.Size = 10
ColumnHeaderFont.Style = []
DataButtonType = dbtLink
DefaultDynEdit = '0'
DefaultDynText = '0'
DetailFont.Color = clNone
DetailFont.Size = 10
DetailFont.Style = []
Font.Color = clNone
Font.Size = 10
Font.Style = []
FooterFormat = '%g'
SpinEditMaxValue = 100
SpinEditMinValue = 0
Title = #1705#1604#1605#1607' '#1662#1610#1588#1606#1607#1575#1583#1740
Width = 100
DataField = 'SuggestionWord'
end
item
Alignment = taCenter
CanSort = False
CheckTrue = 'true'
CheckFalse = 'false'
ColumnHeaderAlignment = taCenter
ColumnHeaderClick = False
ColumnHeaderFont.Color = clNone
ColumnHeaderFont.Size = 10
ColumnHeaderFont.Style = []
DefaultDynEdit = '0'
DefaultDynText = '0'
DetailFont.Color = clNone
DetailFont.Size = 10
DetailFont.Style = []
Font.Color = clNone
Font.Size = 10
Font.Style = []
FooterFormat = '%g'
SpinEditMaxValue = 100
SpinEditMinValue = 0
Title = #1705#1575#1585#1576#1585
Width = 135
DataField = 'FullName'
end>
ColumnHeaderColor = clWebGOLD
ColumnHeaderFont.Color = clNone
ColumnHeaderFont.Size = 10
ColumnHeaderFont.Style = []
ColumnHeaderBorders.Inner = ibAll
ColumnHeaderBorders.Outer = obAll
ColumnHeaderBorders.Padding = 0
ColumnHeaderBorders.Spacing = 0
ColumnHeaderBorders.Width = 1
ColumnHeaderBorders.Collapsed = True
ColumnHeaderBorders.Color = clNone
ColumnHeaderBorders.ColorDark = clNone
ColumnHeaderBorders.ColorLight = clNone
ColumnSizing = True
Controller.Alignment = taCenter
Controller.Borders.Inner = ibAll
Controller.Borders.Outer = obAll
Controller.Borders.Padding = 0
Controller.Borders.Spacing = 0
Controller.Borders.Width = 0
Controller.Borders.Collapsed = True
Controller.Borders.Color = clNone
Controller.Borders.ColorDark = clNone
Controller.Borders.ColorLight = clNone
Controller.Color = clWebMISTYROSE
Controller.Font.Color = clWebBLACK
Controller.Font.FontName = 'Tahoma'
Controller.Font.Size = 10
Controller.Font.Style = []
Controller.Gradient1 = clWebWHITE
Controller.Gradient2 = clWebGREEN
Controller.GradientDirection = gdVertical
Controller.Height = 24
Controller.MaxPages = 10
Controller.Position = cpTop
Controller.Pager = cpPrevNextFirstLast
Controller.PagerType = cptLink
Controller.IndicatorFormat = '%d of %d'
Controller.IndicatorType = itNone
Controller.TextPrev = #1589#1601#1581#1607' '#1602#1576#1604
Controller.TextNext = #1589#1601#1581#1607' '#1576#1593#1583
Controller.TextFirst = #1589#1601#1581#1607' '#1575#1608#1604
Controller.TextLast = #1589#1601#1581#1607' '#1570#1582#1585
Controller.ImgPrev.Stretch = False
Controller.ImgPrev.Frame = 0
Controller.ImgNext.Stretch = False
Controller.ImgNext.Frame = 0
Controller.ImgFirst.Stretch = False
Controller.ImgFirst.Frame = 0
Controller.ImgLast.Stretch = False
Controller.ImgLast.Frame = 0
Controller.RowCountSelect = False
Controller.HintFind = 'Find'
Controller.ShowPagersAlways = False
DateSeparator = '/'
DateFormat = gdEU
DecimalPoint = '.'
DefaultColumnHeaderHeight = 22
DefaultRowHeight = 22
DetailRowHeight = 22
DetailRowShow = dsNormal
EditColor = clNone
EditSelectAll = False
FooterBorders.Inner = ibAll
FooterBorders.Outer = obAll
FooterBorders.Padding = 0
FooterBorders.Spacing = 0
FooterBorders.Width = 1
FooterBorders.Collapsed = True
FooterBorders.Color = clNone
FooterBorders.ColorDark = clNone
FooterBorders.ColorLight = clNone
FooterColor = clBtnFace
FooterFont.Color = clNone
FooterFont.Size = 10
FooterFont.Style = []
Font.Color = clNone
Font.Size = 10
Font.Style = []
Glyphs.EditButton.Data = {
36050000424D3605000000000000360400002800000010000000100000000100
0800000000000001000000000000000000000001000000000000000000000000
80000080000000808000800000008000800080800000C0C0C000C0DCC000F0CA
A6000020400000206000002080000020A0000020C0000020E000004000000040
20000040400000406000004080000040A0000040C0000040E000006000000060
20000060400000606000006080000060A0000060C0000060E000008000000080
20000080400000806000008080000080A0000080C0000080E00000A0000000A0
200000A0400000A0600000A0800000A0A00000A0C00000A0E00000C0000000C0
200000C0400000C0600000C0800000C0A00000C0C00000C0E00000E0000000E0
200000E0400000E0600000E0800000E0A00000E0C00000E0E000400000004000
20004000400040006000400080004000A0004000C0004000E000402000004020
20004020400040206000402080004020A0004020C0004020E000404000004040
20004040400040406000404080004040A0004040C0004040E000406000004060
20004060400040606000406080004060A0004060C0004060E000408000004080
20004080400040806000408080004080A0004080C0004080E00040A0000040A0
200040A0400040A0600040A0800040A0A00040A0C00040A0E00040C0000040C0
200040C0400040C0600040C0800040C0A00040C0C00040C0E00040E0000040E0
200040E0400040E0600040E0800040E0A00040E0C00040E0E000800000008000
20008000400080006000800080008000A0008000C0008000E000802000008020
20008020400080206000802080008020A0008020C0008020E000804000008040
20008040400080406000804080008040A0008040C0008040E000806000008060
20008060400080606000806080008060A0008060C0008060E000808000008080
20008080400080806000808080008080A0008080C0008080E00080A0000080A0
200080A0400080A0600080A0800080A0A00080A0C00080A0E00080C0000080C0
200080C0400080C0600080C0800080C0A00080C0C00080C0E00080E0000080E0
200080E0400080E0600080E0800080E0A00080E0C00080E0E000C0000000C000
2000C0004000C0006000C0008000C000A000C000C000C000E000C0200000C020
2000C0204000C0206000C0208000C020A000C020C000C020E000C0400000C040
2000C0404000C0406000C0408000C040A000C040C000C040E000C0600000C060
2000C0604000C0606000C0608000C060A000C060C000C060E000C0800000C080
2000C0804000C0806000C0808000C080A000C080C000C080E000C0A00000C0A0
2000C0A04000C0A06000C0A08000C0A0A000C0A0C000C0A0E000C0C00000C0C0
2000C0C04000C0C06000C0C08000C0C0A000F0FBFF00A4A0A000808080000000
FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000707E4E4E4E4
E4E4E4E4E4E4E4E4E4070707EDF609090909090909090909E4070707EDF60707
0707070707070709E4070707EDF6F6090909090909090909E4070707EDFFF609
0909095A09090909E4070707F5FF07070707075200070709E4070707F5FFFFF6
F609095A00000709E407070707FFFFFFF6F6095AFB360007E407070707FF0707
070707A4FB360007ED07070709FFFFFFFFF6F6F65BFB3600ED07070709FFFFFF
FFFFF6F6ACFB36000707070709FF070707070707F652FB360007070709FFFFFF
FFFFFFFF079A7F360007070709FFFFFFFFFFFFFF08EC51000200070709FFFFFF
FFFFFFFF07EC9A0202410707090909090909090907E407838307}
Glyphs.EditHint = 'Edit'
Glyphs.PostButton.Data = {
36050000424D3605000000000000360400002800000010000000100000000100
0800000000000001000000000000000000000001000000000000000000000000
80000080000000808000800000008000800080800000C0C0C000C0DCC000F0CA
A6000020400000206000002080000020A0000020C0000020E000004000000040
20000040400000406000004080000040A0000040C0000040E000006000000060
20000060400000606000006080000060A0000060C0000060E000008000000080
20000080400000806000008080000080A0000080C0000080E00000A0000000A0
200000A0400000A0600000A0800000A0A00000A0C00000A0E00000C0000000C0
200000C0400000C0600000C0800000C0A00000C0C00000C0E00000E0000000E0
200000E0400000E0600000E0800000E0A00000E0C00000E0E000400000004000
20004000400040006000400080004000A0004000C0004000E000402000004020
20004020400040206000402080004020A0004020C0004020E000404000004040
20004040400040406000404080004040A0004040C0004040E000406000004060
20004060400040606000406080004060A0004060C0004060E000408000004080
20004080400040806000408080004080A0004080C0004080E00040A0000040A0
200040A0400040A0600040A0800040A0A00040A0C00040A0E00040C0000040C0
200040C0400040C0600040C0800040C0A00040C0C00040C0E00040E0000040E0
200040E0400040E0600040E0800040E0A00040E0C00040E0E000800000008000
20008000400080006000800080008000A0008000C0008000E000802000008020
20008020400080206000802080008020A0008020C0008020E000804000008040
20008040400080406000804080008040A0008040C0008040E000806000008060
20008060400080606000806080008060A0008060C0008060E000808000008080
20008080400080806000808080008080A0008080C0008080E00080A0000080A0
200080A0400080A0600080A0800080A0A00080A0C00080A0E00080C0000080C0
200080C0400080C0600080C0800080C0A00080C0C00080C0E00080E0000080E0
200080E0400080E0600080E0800080E0A00080E0C00080E0E000C0000000C000
2000C0004000C0006000C0008000C000A000C000C000C000E000C0200000C020
2000C0204000C0206000C0208000C020A000C020C000C020E000C0400000C040
2000C0404000C0406000C0408000C040A000C040C000C040E000C0600000C060
2000C0604000C0606000C0608000C060A000C060C000C060E000C0800000C080
2000C0804000C0806000C0808000C080A000C080C000C080E000C0A00000C0A0
2000C0A04000C0A06000C0A08000C0A0A000C0A0C000C0A0E000C0C00000C0C0
2000C0C04000C0C06000C0C08000C0C0A000F0FBFF00A4A0A000808080000000
FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF0007070707071D
1D1D1D1D1D0707070707070707271E1F2727271F1E1D1D07070707071E276FB7
F6F6F6BF6F271E1D0707072727B7F6FFF6F6F6FFFFBF271E1D070727B7FFF6B7
6FBF276FF6FFBF271D07276FF6FF6F27F6FF6F1F27F6FF6F1E1D27B7FFBF6FF6
FFF6B7271F6FFFBF1F1D27B7FFB7BFFFAF6FF6672727F6F6271E67BFFFB76F6F
2727B7B72727F6F6271E6F08FFB76F6F6F676FB72727F6F6271E67BFFFF66F6F
6F6F676F6FB7FFB7271D076FF6FFBF6F6F6F6727B7F6F66F1E07076FF6F6FFF6
B7B7B7BFFFFFB7271E070707AFF6FFFFFFFFFFFFF6B7271F07070707076FBFF6
F6F6F6B76F272707070707070707076FAFAF6F67270707070707}
Glyphs.PostHint = 'Post'
Glyphs.CancelButton.Data = {
36050000424D3605000000000000360400002800000010000000100000000100
0800000000000001000000000000000000000001000000000000000000000000
80000080000000808000800000008000800080800000C0C0C000C0DCC000F0CA
A6000020400000206000002080000020A0000020C0000020E000004000000040
20000040400000406000004080000040A0000040C0000040E000006000000060
20000060400000606000006080000060A0000060C0000060E000008000000080
20000080400000806000008080000080A0000080C0000080E00000A0000000A0
200000A0400000A0600000A0800000A0A00000A0C00000A0E00000C0000000C0
200000C0400000C0600000C0800000C0A00000C0C00000C0E00000E0000000E0
200000E0400000E0600000E0800000E0A00000E0C00000E0E000400000004000
20004000400040006000400080004000A0004000C0004000E000402000004020
20004020400040206000402080004020A0004020C0004020E000404000004040
20004040400040406000404080004040A0004040C0004040E000406000004060
20004060400040606000406080004060A0004060C0004060E000408000004080
20004080400040806000408080004080A0004080C0004080E00040A0000040A0
200040A0400040A0600040A0800040A0A00040A0C00040A0E00040C0000040C0
200040C0400040C0600040C0800040C0A00040C0C00040C0E00040E0000040E0
200040E0400040E0600040E0800040E0A00040E0C00040E0E000800000008000
20008000400080006000800080008000A0008000C0008000E000802000008020
20008020400080206000802080008020A0008020C0008020E000804000008040
20008040400080406000804080008040A0008040C0008040E000806000008060
20008060400080606000806080008060A0008060C0008060E000808000008080
20008080400080806000808080008080A0008080C0008080E00080A0000080A0
200080A0400080A0600080A0800080A0A00080A0C00080A0E00080C0000080C0
200080C0400080C0600080C0800080C0A00080C0C00080C0E00080E0000080E0
200080E0400080E0600080E0800080E0A00080E0C00080E0E000C0000000C000
2000C0004000C0006000C0008000C000A000C000C000C000E000C0200000C020
2000C0204000C0206000C0208000C020A000C020C000C020E000C0400000C040
2000C0404000C0406000C0408000C040A000C040C000C040E000C0600000C060
2000C0604000C0606000C0608000C060A000C060C000C060E000C0800000C080
2000C0804000C0806000C0808000C080A000C080C000C080E000C0A00000C0A0
2000C0A04000C0A06000C0A08000C0A0A000C0A0C000C0A0E000C0C00000C0C0
2000C0C04000C0C06000C0C08000C0C0A000F0FBFF00A4A0A000808080000000
FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF0007070707071D
1D1D1D1D1D0707070707070707271E1F2727271F1E1D1D07070707071E276FB7
F6F6F6BF6F271E1D0707072727B7F6FFF6F6F6FFFFBF271E1D070727B7FFF627
27271F1FB7F6BF271D07276FF6FFB7B767272727B7B7FF6F1E1D27B7FFBF67B7
F66767F6B727F6BF1F1D27B7FF6F6F67B7F6F6B72727BFF6271E67BFFF6F6F6F
6FF6F66F2727B7F6271E6F08FF6F6F6FF6B7B7F66F27F6F6271E67BFFFF66FF6
B76F6FB7F66FF6B7271D076FF6FFB7AF6F6F6F6FB7F6F66F1E07076FF6F6FFF6
6F6F6FB7FFFFB7271E070707AFF6FFFFFFFFFFFFF6B7271F07070707076FBFF6
F6F6F6B76F272707070707070707076FAFAF6F67270707070707}
Glyphs.CancelHint = 'Cancel'
Glyphs.SpinEditButtonDownImage.Stretch = False
Glyphs.SpinEditButtonDownImage.Frame = 0
Glyphs.SpinEditButtonUpImage.Stretch = False
Glyphs.SpinEditButtonUpImage.Frame = 0
HoverColor = clGradientActiveCaption
HoverFontColor = clDefault
HeaderStyle = hsRaised
ID = 2
Indicators.Browse.Data = {
F6000000424DF600000000000000760000002800000010000000100000000100
0400000000008000000000000000000000001000000000000000000000000000
8000008000000080800080000000800080008080000080808000C0C0C0000000
FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00888888888888
8888888888888888888888880888888888888888008888888888888800088888
8888888800008888888888880000088888888888000000888888888800000008
8888888800000088888888880000088888888888000088888888888800088888
8888888800888888888888880888888888888888888888888888}
Indicators.Insert.Data = {
F6000000424DF600000000000000760000002800000010000000100000000100
0400000000008000000000000000000000001000000000000000000000000000
8000008000000080800080000000800080008080000080808000C0C0C0000000
FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00888888888888
8888888888888888888888888888888888888888888888888888888888088888
8888888888088888888888800808008888888888800088888888888880008888
8888888008080088888888888808888888888888880888888888888888888888
8888888888888888888888888888888888888888888888888888}
Indicators.Edit.Data = {
F6000000424DF600000000000000760000002800000010000000100000000100
0400000000008000000000000000000000001000000000000000000000000000
8000008000000080800080000000800080008080000080808000C0C0C0000000
FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF00888888888888
8888888888888888888888888888888888888880080088888888888880888888
8888888880888888888888888088888888888888808888888888888880888888
8888888880888888888888888088888888888888808888888888888880888888
8888888008008888888888888888888888888888888888888888}
MouseSelect = msRow
Nodes.NodeOpen.Stretch = False
Nodes.NodeOpen.Frame = 1
Nodes.NodeOpen.Data = {
424DBE0000000000000076000000280000000900000009000000010004000000
000048000000120B0000120B0000100000001000000000000000000080000080
00000080800080000000800080008080000080808000C0C0C0000000FF0000FF
000000FFFF00FF000000FF00FF00FFFF0000FFFFFF0000000000000000000FFF
FFFF000000000FFF0FFF000000000FFF0FFF000000000F00000F000000000FFF
0FFF000000000FFF0FFF000000000FFFFFFF000000000000000000000000}
Nodes.NodeClosed.Stretch = False
Nodes.NodeClosed.Frame = 1
Nodes.NodeClosed.Data = {
424DBE0000000000000076000000280000000900000009000000010004000000
000048000000120B0000120B0000100000001000000000000000000080000080
00000080800080000000800080008080000080808000C0C0C0000000FF0000FF
000000FFFF00FF000000FF00FF00FFFF0000FFFFFF0000000000000000000FFF
FFFF000000000FFFFFFF000000000FFFFFFF000000000F00000F000000000FFF
FFFF000000000FFFFFFF000000000FFFFFFF000000000000000000000000}
NameOfDays.Strings = (
'Sun'
'Mon'
'Tue'
'Wed'
'Thu'
'Fri'
'Sat')
NameOfMonths.Strings = (
'January'
'February'
'March'
'April'
'May'
'June'
'July'
'August'
'September'
'October'
'November'
'December')
OuterBorder.Show = True
OuterBorder.Color = clWebBLACK
Page = 0
RowCount = 15
RowHeader.Show = False
RowHeader.Width = 22
RowHeader.Borders.Inner = ibColumns
RowHeader.Borders.Outer = obVertical
RowHeader.Borders.Padding = 0
RowHeader.Borders.Spacing = 0
RowHeader.Borders.Width = 1
RowHeader.Borders.Collapsed = False
RowHeader.Borders.Color = clNone
RowHeader.Borders.ColorDark = clNone
RowHeader.Borders.ColorLight = clNone
RowHeader.Color = clNone
RowHeader.Gradient1 = clWebBEIGE
RowHeader.Gradient2 = clWebGOLD
RowHeader.GradientDirection = gdHorizontal
Scroll.Style = scNever
Scroll.Scrollbar3DLightColor = clNone
Scroll.ScrollbarArrowColor = clNone
Scroll.ScrollbarBaseColor = clNone
Scroll.ScrollbarTrackColor = clNone
Scroll.ScrollbarDarkshadowColor = clNone
Scroll.ScrollbarFaceColor = clNone
Scroll.ScrollbarHighlightColor = clNone
Scroll.ScrollbarShadowColor = clNone
SelectColor = clHighlight
SelectFontColor = clHighlightText
ShowColumnHeader = True
ShowFooter = False
ShowSelect = True
SortSettings.Show = False
SortSettings.Column = 0
SortSettings.Direction = sdAscending
SortSettings.InitSortDir = sdAscending
StretchColumn = -1
TabOrder = 1
UseFullHeight = False
UseFullWidth = False
OnGetCellData = TIWDBAdvWebGridGameGetCellData
AsyncActiveRowMove = False
AsyncEdit = False
AsyncPaging = False
AsyncSorting = False
AutoAddAllFields = True
DataSource = DataSource1
ShowRowsAlways = True
end
object IWGradButtonSubmit: TIWGradButton [3]
Left = 16
Top = 65
Width = 120
Height = 21
Cursor = crAuto
ParentShowHint = False
ShowHint = True
ZIndex = 0
RenderSize = True
Style.Border.Color = 818394
Style.Border.Width = 1
Style.BorderDisabled.Color = clWebGRAY
Style.BorderDisabled.Width = 1
Style.Button.Alignment = taCenter
Style.Button.Font.Color = clWebWHITE
Style.Button.Font.FontFamily = 'Arial, Sans-Serif, Verdana'
Style.Button.Font.Size = 10
Style.Button.Font.Style = []
Style.Button.FromColor = 1746426
Style.Button.ToColor = 2128628
Style.ButtonHover.Alignment = taCenter
Style.ButtonHover.Font.Color = clWebWHITE
Style.ButtonHover.Font.FontFamily = 'Arial, Sans-Serif, Verdana'
Style.ButtonHover.Font.Size = 10
Style.ButtonHover.Font.Style = []
Style.ButtonHover.FromColor = 1150712
Style.ButtonHover.ToColor = 1401072
Style.ButtonActive.Alignment = taCenter
Style.ButtonActive.Font.Color = clWebWHITE
Style.ButtonActive.Font.FontFamily = 'Arial, Sans-Serif, Verdana'
Style.ButtonActive.Font.Size = 10
Style.ButtonActive.Font.Style = []
Style.ButtonActive.FromColor = 2128628
Style.ButtonActive.ToColor = 1746426
Style.ButtonDisabled.Alignment = taCenter
Style.ButtonDisabled.Font.Color = clWebWHITE
Style.ButtonDisabled.Font.FontFamily = 'Arial, Sans-Serif, Verdana'
Style.ButtonDisabled.Font.Size = 10
Style.ButtonDisabled.Font.Style = []
Style.ButtonDisabled.FromColor = clWebLIGHTGRAY
Style.ButtonDisabled.ToColor = 7368816
Style.ColorScheme = csOrange
Style.BoxShadow.ColorTransparency = 0.500000000000000000
Style.TextShadow.ColorTransparency = 0.500000000000000000
Caption = #1575#1585#1587#1575#1604
Color = clBtnFace
Font.Color = clNone
Font.Size = 10
Font.Style = []
FriendlyName = 'IWGradButtonSubmit'
ScriptEvents = <>
TabOrder = 2
OnClick = IWGradButtonSubmitClick
OnAsyncClick = IWGradButtonSubmitAsyncClick
end
object IWLabelLastWinner: TIWLabel [4]
Left = 16
Top = 96
Width = 121
Height = 16
Cursor = crAuto
ParentShowHint = False
ShowHint = True
ZIndex = 0
RenderSize = True
Alignment = taLeftJustify
BGColor = clNone
Font.Color = clNone
Font.Size = 10
Font.Style = []
NoWrap = False
ConvertSpaces = False
HasTabOrder = False
FriendlyName = 'IWLabelLastWinner'
Caption = 'IWLabelLastWinner'
RawText = False
end
object IWLabelFoundSecretWord: TIWLabel [5]
Left = 16
Top = 112
Width = 163
Height = 16
Cursor = crAuto
ParentShowHint = False
ShowHint = True
ZIndex = 0
RenderSize = True
Alignment = taLeftJustify
BGColor = clNone
Font.Color = clNone
Font.Size = 10
Font.Style = []
NoWrap = False
ConvertSpaces = False
HasTabOrder = False
FriendlyName = 'IWLabelFoundSecretWord'
Caption = 'IWLabelFoundSecretWord'
RawText = True
end
object DataSource1: TDataSource
Left = 72
Top = 184
end
object IWAJAXNotifier1: TIWAJAXNotifier
OnNotify = IWAJAXNotifier1Notify
Left = 72
Top = 248
end
object IWTimer1: TIWTimer
Enabled = True
Interval = 5000
OnAsyncTimer = IWTimer1AsyncTimer
Left = 72
Top = 304
end
-
پاسخ : شروع پروژه بازی آنلاین - Delphi XE5 & Intaweb 14.0.32 & TMS Intraweb Component & SQL Server - علاقمندان به ما بپیوندند
در پست های بعدی کد نویسی فرم ها را انجام خواهیم داد