PDA

View Full Version : ين کنترل hWnd دارد?



ASedJavad
دوشنبه 20 مهر 1388, 23:43 عصر
سلام
توي پرانتز رو چطوري بايد پر کنم؟ :

Dim i As Control
For Each i In Me
if ( ميباشد hWnd دارايi) then
...
End If
Next i


در ضمن از On Error هم نميخوام استفاده کنم.

mpmsoft
سه شنبه 21 مهر 1388, 11:01 صبح
هیچ راهی جز استفاده از On error نداره
شما می تونید بر اساس کد خطای 438 چک کنید

ASedJavad
سه شنبه 21 مهر 1388, 15:28 عصر
ممنون
ولي من On Error گذاشتم، اما اين دستور خطا رو رد نمي کنه.
نمي دونم چرا
يعني قبل از if يه دستور On Error گذاشتم ولي باز به دستور i.hwnd که ميرسه خطا ميده

r0ot$harp
سه شنبه 21 مهر 1388, 15:56 عصر
سلام
توي پرانتز رو چطوري بايد پر کنم؟ :

Dim i As Control
For Each i In Me
if ( ميباشد hWnd دارايi) then
...
End If
Next i
در ضمن از On Error هم نميخوام استفاده کنم.
دوست عزیز شما می خواین چی کار کنید ؟


باتشکر احسان(Sanaz13x)

vbhamed
سه شنبه 21 مهر 1388, 16:20 عصر
سلام

من كه اين كد رو با يك عدد دكمه و يك Label تست كردم مشكل نداشت



Private Sub Form_Load()

On Error Resume Next

Dim i As Control

For Each i In Me

Dim x&

x = -1
x = i.hWnd

If x > 0 Then Print "Hwnd darad" Else Print "Hwnd Nadarad"

Next

End Sub

ASedJavad
سه شنبه 21 مهر 1388, 23:39 عصر
بي زحمت اين برنامه رو يه چک بکنيد
تو کامپيوتر من که ارور ميده
38332

vbhamed
چهارشنبه 22 مهر 1388, 02:08 صبح
سلام

وقتي خطا رو با دستور On Error به دام مي ندازيد بايد توجه كنيد كه توي خود روال كنترل خطا نبايد خطايي اتفاق بيفته
شما تو برنامتون اشاره كرديد در صورت خطا به خط A برو، اما بعد از اين تكليف رو مشخص نكردين، بنابراين برنامه دوباره به خط خطا بر مي گرده و اينبار ديگه پيام خطا مي ده

اينم برنامه اصلاح شده


Private Sub Command1_Click()
Dim i As Control
On Error GoTo a
For Each i In UserControl
Dim x&
x = -1
x = i.hWnd
If x > 0 Then
Print "Hwnd darad"
Else
Print "Hwnd Nadarad"
End If
a:
Resume Next
Next
End Sub