روش ساختن اکتیوکس

Collapse
X
 
  • زمان
  • نمایش
حذف همه
new posts
  • ~M*E*H*D*I~
    • 2011/10/19
    • 4377
    • 70.00

    روش ساختن اکتیوکس

    با سلام خدمت دوستان

    چند وقتیه خیلی تالار بی رمق و سوت و کور شده نمیدونم چرا بچه ها بی انگیزه شدن خلاصه گفتم خودم دس بکار شم حداقل یه موضوع جدید مطرح کنم:P


    ابتدا مقدمه ای مطرح میکنم و بعد اگه عمری بود ادامه میدم:


    ActiveX چیست؟


    مایکروسافت از نگارش 4 به بعد ویژوال بیسیک تکنولوژی جدیدی به نام ActiveX یا OCX به جای VBX در آن گنجاند که با استقبال خوبی روبرو شد. ActiveX ابزاری است که شما میتوانید با آن به برنامه خود شیئی را اضافه کنید که از قبل تعریف شده است و دارای توانیی هایی باشد که زبان برنامه نویسی شما قادر به انجام آن نیست. مثلاً پخش فایل صوتی با پسوند خاص (مثل:OGG) که زیبان بیسیک نمیتواند این کار را انجام دهد.
    [CENTER]
    [SIGPIC][/SIGPIC]
    [/CENTER]
  • ~M*E*H*D*I~
    • 2011/10/19
    • 4377
    • 70.00

    #2
    RE: روش ساختن اکتیوکس

    ActiveX شامل چیست:

    يك ActiveX خوب و كارامد باید دارای امکانات زیر باشد:
    Fuction یا دستور قابل اجرا:

    [align=left]ACTIVEX.COMMAND[/align]
    مشخصه یا Property:
    [align=left]ACTIVEX.FileName[/align]
    رویداد یا Event (مثلا هنگام کلیک برروی چیزی کدی اجرا شود که کاربر به آن می دهد

    [align=left]ACTIVEX _Click [/align]
    اینها تقریباً مهمترین اجزا هستند. اما می توان از اجزای دیگری مثل کلید عکس ویا حتی ActiveX دیگر در آن قرار داد.
    [CENTER]
    [SIGPIC][/SIGPIC]
    [/CENTER]

    کامنت

    • ~M*E*H*D*I~
      • 2011/10/19
      • 4377
      • 70.00

      #3
      RE: روش ساختن اکتیوکس

      برای ایجاد اکتیوکس باید از vb6 استفاده کنید در اینجا منظور از محیط vb محیط اکسل نیست بلکه محیط زبان VB هست

      شروع کار:
      وارد محیط Visual Basic شوید و در کادر اولی که باز میشود گزینه ActiveX Control را از سربرگ New دابل کلیک کنید.

      درصورتی که کادر بازنشد از کلیدهای Ctrl+N استفاده کنید.
      یک ActiveX جدید ایجاد شده است.

      تصاویر مربوط رو در پیوست ببینید

      مهمترین مشخصات یک ActiveX عبارتند از:

      Name: نام کنترل در هنگام قرار دادن در برنامه. (معمولا به شکل Name1 میباشد).

      Appearance: نوع نمایش آن که به دونوع سه بعدی و فلات قابل تنظیم است
      .
      AutoRedraw: این قسمت مربوط به این است که اشکالی مثل مربع یا متن هایی که با فرمان Print نوشته یا ایجاد شده اند با خارج شدن آن قسمت از فرم ازبین برند یا نه. (True = از بین نروند)

      BackColor: رنگ پس زمینه کنترل

      BackStyle: نوع کنترل که به دونوع شفاف و کدر تقسیم میشود. در صورت شفاف بودن فقط آبجکتها نمایش داده میشوند و خودکنترل به صورت شفاف یا Transparent نمایش داده میشود.

      CanGetFocus: قابلیت فکوس داشتن. یعنی یک آبجکت محسوب شود و بافشردن کلید Tab فوکوس بگیرد.

      Font: فونت پیشفرض آبجکتها و کنترل

      FontTransparent: شفافیت و زیبایی فونت

      ForeColor: رنگ رو. مثل کاملاتی که با دستور Print نوشته میشوند.

      Height: ارتفاع یا طول کنترل

      InvisibleAtRuntime: این گزینه اگر True باشد در هنگام اجرا قابلیتهایی مثل Drag و Drop رو از دست میده.

      KeyPreview : این گزینه به شما میگوید که وقتی کلیدی فشرده شد اول به فرم انتقال داده شود بعد به آبجکت.

      MouseIcon: آیکن ماوس کنترل

      MousePointer: نشانه گرد ماوس. مثل Hourglass که برابر است با 11

      Picture: عکس پس زمینه کنترل

      PropertyPage: فعال بودن با نبودن صفحاتی مثل Font و ...

      Public: قابلیت قرار گرفتن روی فرم. (همیشه باید True باشد)

      RightToLeft: طریقه نوشتن کنترل. مثلا در دستور Print متن از سمت راست کنترل نوشه میشود

      ScaleMode: تعیین نوع واحد ها مثل تویپ پیکسل و ...

      ToolboxPicture: عکسی که در هنگامی که در لیست کنترل ها قرار گیرد

      Width: عرض و پهنای کنترل
      فایل های پیوست شده
      [CENTER]
      [SIGPIC][/SIGPIC]
      [/CENTER]

      کامنت

      • ~M*E*H*D*I~
        • 2011/10/19
        • 4377
        • 70.00

        #4
        RE: روش ساختن اکتیوکس

        اضافه کردن Function و Sub به ActiveX

        فرق بین Function و Sub:

        Sub و Function هر دو - بوسیله یک سری متغییر که از کاربر میگیرند – دستوراتی را انجام میدهند. با این تفاوت که Sub فقط انجام میدهد. اما Function علاوه بر آن که دستورات را انجام میدهد نقش متغیر را نیز دارد و به خود یک متغیر نسبت میدهد.
        برای اضافه کردن Function به کنترل:
        در قسمت General Declaration کد زیر را اضافه کنید:

        [align=left]
        کد PHP:
        Public Function FuncName(ByVal Var1 As StringByVal Var2 As Integer) As String

        End 
        Function 
        [/align]

        به جاي FuncName نام Function را بنويسيد. به جاي Var1 و Var2 نام متغير دلخواه را تايپ کنید. برای اضافه کردن متغیر هایی دیگر مانند نمونه کد بالا عمل کنید.
        در صورتی که متغیر اختیاری باشد و نسبت دادن به آن اجباری نباشد از نمونه زیر استفاده کنید.

        [align=left]
        کد PHP:
        Public Function FuncName(ByVal Optional Var1 As String "Text"ByVal Var2 As IntegerAs String

        End 
        Function 
        [/align]
        در نمونه بالا Var1 اختیاری است و در صورت وارد نکردن به Text تبدیل میشود.
        در بین Public Function … و End Function میتوان دستورات را نوشت.
        نمونه زیر از کاربر دو متغیر را میگیرد و سپس جمع آن دو را به خود نسبت میدهد.
        [align=left]
        کد PHP:
        Public Function Add(ByVal Number1 As StringByVal Number2 As Integer) As Integer
        Dim Addition 
        As Integer
        Addition 
        Number1 Number2
        Add 
        Addition
        End 
        Function 
        [/align]

        در اجرای این Function این چنین مینویسیم:

        [align=left]
        کد PHP:
        MsgBox UserControl1.Add(1211
        [/align]

        برای ایجاد یک Sub دقیقا مانند Function عمل میکنیم. با این تفاوت که دیگر بعد از بستن پرانتز آخر نمیتوان نوع متغیر را مشخص نمود. مانند:
        [align=left]
        کد PHP:
        Public Sub Add(ByVal Number1 As StringByVal Number2 As Integer
        Dim Addition As Integer
        Addition 
        Number1 Number2
        MsgBox Addition
        End Sub 
        [/align]
        [CENTER]
        [SIGPIC][/SIGPIC]
        [/CENTER]

        کامنت

        • ~M*E*H*D*I~
          • 2011/10/19
          • 4377
          • 70.00

          #5
          RE: روش ساختن اکتیوکس

          اضافه کردن Property به ActiveX

          برای اضافه کردن Property به کنترل دو راه وجود دارد.
          راه اول:
          در قسمت General Declaration کد زیر را اضافه کنید:
          [align=left]
          کد PHP:
          Public Text As String 
          [/align]
          اما این روش خوبی نیست. دلیلش رو باروش دوم میشه فهمید.

          راه دوم:
          این راه خیلی سخت تر از روش اول هست. از دو قسمت Get و Let و گاهی اوقات نیز از Set نیز دراین
          تشکیل میشود.

          در این نمونه یک Label برروی فرم موجود است که با این Property میتوان متن آن را تغییر داد.
          ابتدا یک Label به کنترل اضافه کنید.
          Get
          نخست باید یک متغیر در General Declaration تعریف کرد.
          [align=left]
          کد PHP:
          Dim varText As String
          بعد کد زیر را اضافه کنید
          .
          Public 
          Property Get Text() As String
          Text 
          Label1.Caption
          End Property 
          [/align]
          Property Get هنگامی اجرا میشود گه شما بخواهید مقدار مورد نظر (در اینجا Text) را بگیرید. مثلا:
          [align=left]
          کد PHP:
          MsgBox UserControl1.Text 
          [/align]
          Let
          کد زیر را اضافه کنید.
          [align=left]
          کد PHP:
          Public Property Let Text(New_Text As String)
          Label1.Caption New_Text
          PropertyChanged 
          "Text"
          End Property 
          [/align]
          Property Let هنگامي اجرا ميشوى كه شما بخواهيد مقدار مورد نظر (در اینجا Text) را تغییر دهید.
          Propery Set نیز مانند Property Set میماند ام معمولا برای فونت ها به جای Let استفاده میشود.
          اضافه کردن Event به کنترل
          Event مجموعه دستوراتی هستند که کاربر آن ها را در هنگام اجرای برنامه تعریف میکند. اما زمان اجرای آن دست برنامه نویس است.
          نمونه: در این نمونه یک Shape وجود دارد. یک Property رنگ نیز موجود است که با تغییر آن رنگ Shape نیز تغییر میکند. با تغییر رنگ Shape دستوراتی که کابر در هنگام اجرا میشود.

          ایتدا یک Shape به کنترل اضافه کنید و حالت BackStyle آن را به Opaque تغییر دهید.
          طبق تصویر پیوست

          اول یک رویداد در General Declaration با نام Change ایجاد میکنیم.
          [align=left]
          کد PHP:
          Public Event Change(OldColor As LongNewColor As Long
          [/align]
          بعد یک متغیر برای رنگ تعریف می کنیم.

          [align=left]
          Dim varcolor as long
          [/align]

          اکنون یک Property جدید با نام BackColor ایجاد میکنیم.

          [align=left]
          کد PHP:
          Public Property Get BackColor() As OLE_COLOR
          BackColor 
          Shape1.BackColor
          End Property
          Public Property Let BackColor(New_BackColor As OLE_COLOR)
          Dim S As Long
          Shape1.BackColor
          Shape1
          .BackColor New_BackColor
          RaiseEvent Change
          (SNew_BackColor)
          PropertyChanged "BackColor"
          End Property 
          [/align]





          فرمان RaiseEvent برای اجرای دستورات یک Event است که این فرامین را کاربر در هنگام Runtime تعریف میکند.
          فایل های پیوست شده
          [CENTER]
          [SIGPIC][/SIGPIC]
          [/CENTER]

          کامنت

          • ~M*E*H*D*I~
            • 2011/10/19
            • 4377
            • 70.00

            #6
            RE: روش ساختن اکتیوکس

            مشخصات متغیرها
            برای تغییر مشخصات متغیرها از منوی Tools گزینه Procedure Attributes را انتخاب کنید.
            از قسمت Name نام متغیر را انتخاب کنید و در قسمت Description توضیحی در مورد آن بنویسید.

            ایجاد Type جدید

            Type یا نوع چیزهایی هستند که کاربر را در انتخاب مقدار متغییرها در هنگام اجرای یک Sub و یا ... راهنمایی میکنند.
            برای ایجاد یک Type جدید ابتدا در قسمت General Declaration کد زیر را تایپ کنید.
            [align=left]
            کد PHP:
            Public Type Color
            Red 
            As Long
            Green 
            As Long
            Yellow 
            As Long
            Black 
            As Long
            White 
            As Long
            End Type 
            [/align]
            به جای Color میتوان نام مورد نظر را جایگزین کرد. در بین Private Type و End Type میتوان متغیر و نوع آن را مشخص کرد. ىر حال حاضر يك Type جدید ایجاد شده است.
            اکنون باید متغیرها را مقداردهی کرد.
            [align=left]
            کد PHP:
            Const Red 255
            Const Green 65280
            Const Yellow 65535
            Const blcak 0
            Const White16777215 
            [/align]
            فایل های پیوست شده
            [CENTER]
            [SIGPIC][/SIGPIC]
            [/CENTER]

            کامنت

            • ~M*E*H*D*I~
              • 2011/10/19
              • 4377
              • 70.00

              #7
              RE: روش ساختن اکتیوکس

              اضافه کردن Property Page

              Property Page صفحاتي مانند فرم هستند که میتوان درون آن ها نیز آبجکت و ... قرار داد. برای اضافه کردن در پنجره Project در بالا سمت راست رو Project موردنظر کلیک راست کرده و از زیر مجموعه Add گزینه Property Page را انتخاب کنید.

              از کادر بازشده Open را کلیک کنید.
              پنجره Property خود را مانند زیر آرایش کنید:

              سپس کد زیر را برای این صفحه وارد کنید:
              [align=left]
              کد PHP:
              Private Sub Combo1_Click()
              Label1.FontName Combo1.Text
              End Sub

              Private Sub PropertyPage_Initialize()
              For 
              0 To Combo1.ListCount 1
              Combo1
              .RemoveItem 0
              Next i
              For 0 To Screen.FontCount 1
              Combo1
              .AddItem Screen.Fonts(i)
              Next i
              End Sub 
              [/align]


              از مشخصات کنترل گزینه PropertyPages را انتخاب كرده و گزینه PropertyPage1 را فعال نمایید و کلید OK را کلیک کنید.

              اکنون هنگام اجرا در مشخصات کنترل برنامه خود گزینه ای بانام (Custom) وجود دارد که باکلیک کزدن برروی آن پنجره مورد نظر نمایش داده میشود.
              فایل های پیوست شده
              [CENTER]
              [SIGPIC][/SIGPIC]
              [/CENTER]

              کامنت

              • ~M*E*H*D*I~
                • 2011/10/19
                • 4377
                • 70.00

                #8
                RE: روش ساختن اکتیوکس

                یک ترفند جالب
                ممکن است شما بخواهید در قسمت Properties کنترل خود یک مورد با نام (About) نیز وجود داشته باشد. برای این کار:

                1- از منوی Project گزینه Add Form را کلیک کرده و از کادر گزینه About Dialog را دابل کلیک کنید.

                2- سپس به کنترل برگردید و یک Sub به آن اضافه کنید. مانند زیر

                [align=left]
                کد PHP:
                Public Sub ShowAboutBox ()
                frmAbout.Show 1
                        End Sub 
                [/align]
                از منوی Tools گزینه Procedure Attributes را انتخاب کنید.
                از قسمت Name گزینه ShowAboutBox را انتخاب نمایید.
                گزینه Advanced >> را کلیک کنید.
                از قسمت Procedure ID گزینه AboutBox را انتخاب کنید.
                کلید OK را کلیک کنید.


                این آخرین تایپیک در این زمینه بود امیدوارم برای دوستان مفید واقع بشه
                فایل های پیوست شده
                [CENTER]
                [SIGPIC][/SIGPIC]
                [/CENTER]

                کامنت

                چند لحظه..