PDA

View Full Version : سوال: موجود بودن یک object



lmaghsoodi
دوشنبه 13 خرداد 1392, 17:19 عصر
با سلام خدمت دوستان عزیز

آیا می توان در Vb چک نمود که شی ئی موجود می باشد یا خیر ؟

خواهش می کنم در این رابطه به من کمک کنید.

محسن واژدی
دوشنبه 13 خرداد 1392, 17:45 عصر
سلام علیکم
تابع زیر را در ماژول کپی کنید:
Public Function IsExistObject(oObject As Object) As Boolean
On Error Resume Next
Dim oRes As Object
Set oRes = oObject
IsExistObject = Not oRes Is Nothing
End Function

برای مثال:
Private Sub Command1_Click()
MsgBox IsExistObject(Me)
End Sub

اگه شی وجود داشته باشه True درغیراینصورت False برگشت داده میشه

موفق باشید

lmaghsoodi
پنج شنبه 16 خرداد 1392, 10:27 صبح
از راهنمایی تان متشکرم

این کدی که نوشته اید همیشه مقدار True را بر می گرداند.
من می خواهم برنامه ای بنویسم که در آن از یک سری دکمه ها استفاده شده است و این دکمه ها به صورت آرایه هستند.
می خواهم در صورتیکه کاربر روی یک دکمه کلیک کرد برنامه چک کند که آیا از آن شیء با ایندکس کمتر یا بیشتر موجود می‌باشد یا خیر، اگر موجود بود کار خاصی را انجام دهد .

یعنی مثلاً کامند باتن اولی که ایندکس 0 دارد مثلاً کامند باتنی که ایندکسی قبل از آن داشته باشد، موجود ندارد . یا کامند باتنی که اندکس 5 دارد کامند باتنی بعد از آن وجود ندارد .

برای این منظور من کد زیر را تست کردم ولی متاسفانه برنامه دائم True بر می گرداند.

MsgBox (IsExistObject(Command2(6)))

یعنی Command2(6) در برنامه ام وجود ندارد ولی باز مقدار True بر می گردد

vbhamed
پنج شنبه 16 خرداد 1392, 13:36 عصر
سلام
اين نمونه رو تست كنيد
فقط دقت كنيد تو فراخواني تابع، نام شيء و انديس اون رو به عنوان 2 تا پارامتر جداگانه مي‌ديم نه اينكه بنويسيم Command1(4)
Private Function isObjectExists(obj As Object, index As Integer) As Integer

If index > obj.lbound Then isObjectExists = 1
If index < obj.ubound Then isObjectExists = isObjectExists + 2

End Function

Private Sub Form_Load()

Select Case isObjectExists(Command1, 4)
Case 0: MsgBox "قبل و بعد از اين شيء، شيء ديگري وجود ندارد"
Case 1: MsgBox "قبل از اين شيء، شيء ديگري موجود است"
Case 2: MsgBox "بعد از اين شيء، شيء ديگري موجود است"
Case 3: MsgBox "قبل و بعد از اين شيء، شيء ديگري موجود است"
End Select

End Sub