ParsX.com
پذیرش پروژه از دانشجویی ... تا سازمانی 09376225339
 
   ProfileProfile   Log in to check your private messagesLog in to check your private messages  |  FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups Log inLog in   RegisterRegister 

برنامه نويسي كنترل ActiveX قسمت 1

 
Post new topic   Reply to topic    ParsX.com Forum Index -> ويژوال بيسيك .NET
View previous topic :: View next topic  
Author Message
vahid
بي تو هرگز


Joined: 26 Nov 2004
Posts: 3067
Location: Tehran

PostPosted: Tue Apr 12, 2005 10:29 pm    Post subject: برنامه نويسي كنترل ActiveX قسمت 1 Reply with quote

Quote:
ActiveX چيست ؟

دو نوع ActiveX داريم : ActiveX Component , ActiveX Control
يك ActiveX Component لغتيست كه در حيطه هاي زير عمل ميكند :
Quote:
ActiveX EXE , ActiveX DLL , ActiveX Control
يك مولفه ActiveX (component) شكل يا فرمي ندارد . بلكه ميتوان اينگونه تصور كرد كه يك دسته كد هستند كه در پروژه شما مينشينند . مثلا اينكه چگونه با استفاده از ADO يا DAO به بانك اطلاعاتي وصل ميشويد ميتوان گفت كه بنحوي از يك مولفه ActiveX استفاده ميشود .
اما ActiveX Control ها را بارها بدون انكه بدانيد استفاده كرده ايد . در واقع هر وقت كه property يك textbox را تنظيم ميكنيد داريد با يك ActiveX كار ميكنيد . يا هروقت كه روي دكمه اي كليك ميكنيد با يك كنترل ActiveX كار ميكنيد . ميتوان اينگونه گفت كه تمامي چيزهايي كه در ToolBox ميبينيد ActiveX هستند .
البته ميتوانيد به تعداد اين كنترل ها از مسير Projects , Components بيافزاييد .
شايد بخواهيد كنترلي در toolbox خود داشته باشيد كه شبيه به TextBox باشد اما بتوانيد در ان فقط عدد وارد كنيد يا فقط حروف دريافت كنيد .
براي شروع يك دكمه option كوچولو را طوري مينويسيم كه هر گاه متدي مشخص را در برنامه اجرا كرديد اين دكمه راديويي به ميزان معيني چشمك بزند .
Visual Basic را باز كنيد .
يك پروژه جديد ActiveX Control درست كنيد .
صفحه اي طوسي روي صفحه نمايش شما به نمايش در مي ايد كه محيط كاري شماست . ظاهرا شبيه به يك فرم است كه هيچ حاشيه و دكمه بزرگ و كوچك كردن يا بستن ندارد . ( راستي تا حالا كنترلي ديده ايد كه دكمه close داشته باشد ؟‌ )
property نام كنترل را از UserControl1 به Flasher تغيير دهيد .
حالا نام Project1 را نيز به Animation تغيير دهيد .
روي دكمه Option از toolbox دو بار كليك كنيد .
Caption دكمه Option را پاك كنيد . و property نام انرا به optFlasher تغيير دهيد .
حال يك تايمر (زمان سنج) به به پروژه اضافه كنيد . و property نام انرا به tmrAnimation تغيير دهيد .
حالا كمي بايد تغييرات در وضع ظاهري محيط كاري بدهيد . به اين ترتيب كه ساير محيط كاري را كوچك كنيد . ابتدا optFlasher را به گوشه بالا سمت چپ كادر ببريد .

حالا محيط كاري را كوچك كنيد . بصورت شكل زير :

اين چيزي كه درست كرده ايد همان control شما خواهد بود .
حال به سراغ كد نويسي ميرويم از مسير view به code برويد . و كد زير را بنويسيد :
Public Sub Flash()
   tmrAnimation.Interval = 300
End Sub
دستور فوق باعث ميشود كه interval property كنترل tmrAnimation شما به 300 ميلي ثانيه تغيير كند . وقتي تايمر وارد عمل ميشود پس از 300 ميلي ثانيه رخداد مورد نظر روي ميدهد .
از منوي پايين افتادني در صفحه كدنويسي كه General نام دارد tmrAnimation را انتخاب كنيد . منوي پايين افتادني كناري ان بايد مقدار timer داشته باشد . اگر ندارد timer را بگذاريد .

كدهاي زير را بنويسيد :
Static NoOfFlashes As Integer
‘the static is means that the value of this variable
‘wont over when procedure is over
optFlasher.Value=Not (optFlasher.Value)
NoOfFlashes=NoOflashes+1
If NoOfFlashes=8 Then
NoOfFlashes=0
tmrAnimation.Interval=0
End If
تمام شد . هم اكنون يك ActiveX ساخته ايد .
به file برويد و از انجا Add Project كنيد و سپس Standard Exe را باز كنيد .
حالا دو پروژه باز شده در صفحه داريم . حال ميتوانيد كنترل خود را وارد فرم پروژه كنيد .
اگر كنترل فلاشر شما قابل انتخاب نيست به ان دليل است كه محيط طراحي كنترل شما هنوز باز است انرا ببنديد و دوباره نگاه كنيد .
حتما در properties كنترلي كه ساخته ايد متوجه property هايي شده ايد . انها بصورت پيشفرض در انجا هستند .
حال براي عملكرد كنترلمان ميتوانيم يك دكمه به فرم اضافه كنيم و در قسمت كد ان بنويسيم :
Flasher1.Flash
اين property با نام flash را قبلا خودتان با استفاده از Public Sub Flash ‌ساخته ايد .

موفق باشيد .
Back to top
unknown
مدير بخش ويژوال بيسيك
مدير بخش ويژوال بيسيك


Joined: 05 Dec 2004
Posts: 439
Location: Tehran

PostPosted: Wed Apr 13, 2005 9:15 am    Post subject: Reply with quote

بهتر است به کاربر(برنامه نویس) اجازه دهید خود مقدار InterVal را برای کنترل تعیین کند. برای این که یک Property یا خاصیت را بتوانید به کنترلی نسبت دهید از دستورات زیر استفاده کنید:

Public Property Get FlashInterval() As Long
   
End Property
Public Property Let FlashInterval( Something )

End Property 

از Let برای مقدار دهی به یک خاصیت و از Get برای گرفتن یک خاصیت استفاده می شود.
پس کد زیر را نیز امتحان کنید . البته این کد را باید در قسمت ActiveX Control خود بنویسید:


Public Property Get FlashInterval() As Long
    FlashInterval = tmrAnimation.Interval
End Property

Public Property Let FlashInterval(ByVal NewInterval As Long)
    tmrAnimation.Interval = NewInterval
End Property

Public Sub StopFlashing()
   tmrAnimation.Interval = 0
End Sub

Private Sub tmrAnimation_Timer()
Static NoOfFlashes As Integer
'the static is means that the value of this variable wont over when procedure is over
optFlasher.Value = Not (optFlasher.Value)
NoOfFlashes = NoOflashes + 1
If NoOfFlashes = 8 Then
NoOfFlashes = 0
tmrAnimation.Interval = 0
End If
End Sub

Private Sub UserControl_Resize()
'You can't resize the control
UserControl.Height = optFlasher.Height
UserControl.Width = optFlasher.Width
End Sub

'WARNING! DO NOT REMOVE OR MODIFY THE FOLLOWING COMMENTED LINES!
'MemberInfo=5
Public Sub Flash()
     tmrAnimation.Interval = FlashInterval
End Sub


حال برای اجرا باید مقدار InterVal را نیز مشخص کنید:

Private Sub CmdFlash_Click()
Flasher1.FlashInterval = 200
Flasher1.Flash
End Sub

Private Sub CmdStopFlash_Click()
Flasher1.StopFlashing
End Sub


آقا وحید می بخشید فضولی کردم
Back to top
vahid
بي تو هرگز


Joined: 26 Nov 2004
Posts: 3067
Location: Tehran

PostPosted: Wed Apr 13, 2005 12:43 pm    Post subject: Reply with quote

براي استفاده از اين ActiveX ميتوانيد انرا به صورت ocx ذخيره كنيد . به file برويد و save ocx كنيد . همان گزينه اي كه براي ساخت فايل Exe انتخاب ميكرديد . سپس در پروژه برنامه تان . از projects سپس components ميتوانيد فايل ocx خود را به برنامه بيافزاييد .
خواهش ميكنم اميرجان . 60%
Back to top
Display posts from previous:   
Post new topic   Reply to topic    ParsX.com Forum Index -> ويژوال بيسيك .NET All times are GMT + 3.5 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum