آخرين پست هاي ارسالي انجمن ايران دلفي

تماشای رایگان فیلم ایرانی ، خارجی و کودک آکادمی دلفی
نمایش نتایج: از 1 به 66 از 66

موضوع: شروع پروژه بازی آنلاین - Delphi XE5 & Intaweb 14.0.32 & TMS Intraweb Component & SQL Server - علاقمندان به ما بپیوندند

Threaded View

  1. #16
    مدیر انجمن مجید آواتار ها
    تاریخ عضویت
    January 1970
    محل سکونت
    تهران
    نوشته ها
    167
    تشکر ها
    58
    تشکر شده 201 بار در 100 ارسال.

    پاسخ : شروع پروژه بازی آنلاین - Delphi XE5 & Intaweb 14.0.32 & TMS Intraweb Component & SQL Server - علاقمندان به ما بپیوندند

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

    برای شروع لطفا تمام فرم هایی که ساخته اید را باز کرده و در زیر قسمت implementation کد زیر را وارد کنید :

    کد:
      uses
        ServerController,
        UserSessionUnit;
    همچنین یونیت WordGame_Namespace را به قسمت Uses اصلی واقع در زیر interface تمام یونیت ها اضافه کنید و تمام فرم ها را ذخیره کرده و ببندید.
    -------------------------------------------------------------------------------------------------------------------------------------------------------------------
    یک متغیر عمومی برای نگهداری کد کاربر وارد شده نیاز داریم و باید آن را در UserSessionUnit تعریف کنیم . به قسمت public در یونیت TIWUserSession رفته و متغیر CurrentUserID را مانند کد زیر تعریف کنید :

    کد:
        TIWUserSession = class(TIWUserSessionBase)
          private
            { Private declarations }
          public
            CurrentUserID: Integer;
            { Public declarations }
        end;
    ------------------------------------------------------------------------------------------------------------------------------------------------------------------

    فرم ورود (LoginForm) را باز کنید. فرم شما باید شبیه به تصویر زیر باشد.
    [برای مشاهده لینک ها شما باید عضو سایت باشید برای عضویت در سایت بر روی اینجا کلیک بکنید]



    کد زیر را در انتهای فایل LoginUnit.pas قبل از .end وارد کنید.

    کد:
    initialization
    
      TLoginForm.SetAsMainForm;
    
    end.

    دقت کنید که .end (بخوانید end نقطه - این عبارت با ;end (بخوانید end سمیکالن) فرق دارد) که در قسمت کد در سطر آخر آمده است برای راهنمایی شماست . نباید آن را کپی کنید . هر فایل pas فقط یک عبارت .end باید داشته باشد و آن هم در انتهای فایل و سطر آخر آن است.


    یونیت های SelectDifficultyLevelUnit و ForgetPasswordUnit و RegisterUnit را به قسمت uses واقع در implementation اضافه کنید.
    و Event های OnAsyncClick و OnClick مربوط به IWGradButtonLogin را مانند نمونه زیر کد نویسی نمایید :



    کد:
      procedure TLoginForm.IWGradButtonLoginAsyncClick(Sender: TObject; EventParams: TStringList);
        begin
          inherited;
          if (Trim(IWEditUsername.Text) = '') or (Trim(IWEditPassword.Text) = '') then
            WebApplication.ShowMessage('درج نام کاربری و رمز عبور الزامی است')
          else
            IWGradButtonLoginClick(Sender);
        end;
    
      procedure TLoginForm.IWGradButtonLoginClick(Sender: TObject);
        var
          aUser: TUser;
        begin
          inherited;
          aUser          := TUser.Create;
          aUser.Username := IWEditUsername.Text;
          aUser.Password := IWEditPassword.Text;
          aUser          := aUser.Login;
          if aUser <> nil then
            begin
              UserSession.CurrentUserID := aUser.UserID;
              TSelectDifficultyLevelForm.Create(WebApplication).Show;
            end
          else
            WebApplication.ShowMessage('نام کاربری یا رمز عبور نادرست است');
          aUser.Free;
        end;

    همچنین Event های OnClick مربوط به IWLinkForgetPassword و IWLinkRegister را به صورت زیر کد نویسی کنید :

    کد:
      procedure TLoginForm.IWLinkForgetPasswordClick(Sender: TObject);
        begin
          inherited;
          TForgetPasswordForm.Create(WebApplication).Show;
        end;
    
      procedure TLoginForm.IWLinkRegisterClick(Sender: TObject);
        begin
          inherited;
          TRegisterForm.Create(WebApplication).Show;
        end;

    نکته مهم
    :
    در Event های موجود آنهایی که دارای عبارت Async هستند ، Event های ClientSide هستند و مابقی ServerSide هستند . Event های ClientSide در کامپیوتر کاربر پردازش و اجرا میشوند و Event های SeverSide سمت سرور اجرا میشوند . Event های ClientSide اغلب برای بررسی شرایط یا داده های تولید شده یا ویرایش شده توسط کاربر بکار میروند تا از اعمال بار اضافی روی سرور بکاهند . مثال : در همین فرم Login در کامپوننت IWGradButtonLogin در قسمت OnAsyncClick بررسی میشود که نام کاربری و رمز عبور وارد شده باشند و پس از اطمینان از وجود داده های فوق Event مربوط به OnClick فراخوانی میگردد.

    در انتها فایل کد LoginUnit.pas باید به شکل زیر باشد :



    کد:
    unit LoginUnit;
    
    interface
    
      uses
        WordGame_Namespace,
        Winapi.Windows,
        Winapi.Messages,
        System.SysUtils,
        System.Variants,
        System.Classes,
        Vcl.Graphics,
        Vcl.Controls,
        Vcl.Forms,
        Vcl.Dialogs,
        BaseUnit,
        IWVCLComponent,
        IWBaseLayoutComponent,
        IWBaseContainerLayout,
        IWContainerLayout,
        IWTemplateProcessorHTML,
        IWVCLBaseControl,
        IWBaseControl,
        IWBaseHTMLControl,
        IWControl,
        IWCompEdit,
        IWCompGradButton,
        IWHTMLControls;
    
      type
        TLoginForm = class(TBaseForm)
          IWEditUsername: TIWEdit;
          IWEditPassword: TIWEdit;
          IWLinkForgetPassword: TIWLink;
          IWLinkRegister: TIWLink;
          IWGradButtonLogin: TIWGradButton;
          procedure IWGradButtonLoginClick(Sender: TObject);
          procedure IWGradButtonLoginAsyncClick(Sender: TObject; EventParams: TStringList);
          procedure IWLinkForgetPasswordClick(Sender: TObject);
          procedure IWLinkRegisterClick(Sender: TObject);
          private
            { Private declarations }
          public
            { Public declarations }
        end;
    
      var
        LoginForm: TLoginForm;
    
    implementation
    
      uses
        ServerController,
        UserSessionUnit,
        SelectDifficultyLevelUnit,
        ForgetPasswordUnit,
        RegisterUnit;
    {$R *.dfm}
    
      procedure TLoginForm.IWGradButtonLoginAsyncClick(Sender: TObject; EventParams: TStringList);
        begin
          inherited;
          if (Trim(IWEditUsername.Text) = '') or (Trim(IWEditPassword.Text) = '') then
            WebApplication.ShowMessage('درج نام کاربری و رمز عبور الزامی است')
          else
            IWGradButtonLoginClick(Sender);
        end;
    
      procedure TLoginForm.IWGradButtonLoginClick(Sender: TObject);
        var
          aUser: TUser;
        begin
          inherited;
          aUser          := TUser.Create;
          aUser.Username := IWEditUsername.Text;
          aUser.Password := IWEditPassword.Text;
          aUser          := aUser.Login;
          if aUser <> nil then
            begin
              UserSession.CurrentUserID := aUser.UserID;
              TSelectDifficultyLevelForm.Create(WebApplication).Show;
            end
          else
            WebApplication.ShowMessage('نام کاربری یا رمز عبور نادرست است');
          aUser.Free;
        end;
    
      procedure TLoginForm.IWLinkForgetPasswordClick(Sender: TObject);
        begin
          inherited;
          TForgetPasswordForm.Create(WebApplication).Show;
        end;
    
      procedure TLoginForm.IWLinkRegisterClick(Sender: TObject);
        begin
          inherited;
          TRegisterForm.Create(WebApplication).Show;
        end;
    
    initialization
    
      TLoginForm.SetAsMainForm;
    
    end.
    ویرایش توسط مجید : 25 / June / 2015 در ساعت 05:13 PM

  2. 2 کاربر مقابل از مجید عزیز به خاطر این پست مفید تشکر کرده اند .

    admin (25 / June / 2015),meyti (05 / August / 2015)

موضوعات مشابه

  1. دانلود آخرین نسخه های IntraWeb
    توسط admin در انجمن برنامه نویسی تحت وب در دلفی
    پاسخ: 3
    آخرين نوشته: 25 / February / 2016, 03:27 PM
  2. پاسخ: 2
    آخرين نوشته: 15 / August / 2015, 02:30 AM
  3. طراحی سایت با Intraweb دلفی XE2
    توسط mosa در انجمن Embarcadero RAD Studio تحت وب
    پاسخ: 59
    آخرين نوشته: 19 / May / 2015, 01:51 PM
  4. دانلود یک پروژه ی ساده IntraWeb در دلفی 7
    توسط admin در انجمن دلفی 7 تحت وب
    پاسخ: 3
    آخرين نوشته: 19 / June / 2014, 09:36 PM
  5. قابلیت های جدید SQL Server 2014
    توسط admin در انجمن رادیو نیک آموز
    پاسخ: 0
    آخرين نوشته: 16 / February / 1970, 11:36 AM

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •