PDA

View Full Version : سوال: لیست اشیای در یک فرم یا یک فریم



S_O_S1982
یک شنبه 04 بهمن 1388, 09:56 صبح
سلام دوستان

تو دات با حلقه ی foreach می تونیم هر شیی که تو فرم هست و رو مثلا Enable اش رو برابر False کنیم
می خوام ببینم تو VB6 ، از این حلقه می تونیم برای اشیای یک فرم یا frame استفاده کرد؟
من که نتونستم استفاده کنم

ممنون از توجه شما

far9090
یک شنبه 04 بهمن 1388, 10:21 صبح
سلام . اینجا هم می تونی از for each استفاده کنی .

For Each b In Me.Controls
b.Enabled = False
Next
موفق باشید .

S_O_S1982
دوشنبه 05 بهمن 1388, 19:27 عصر
سلام . اینجا هم می تونی از for each استفاده کنی .

For Each b In Me.Controls
b.Enabled = False
Next
موفق باشید .


ممنون
b رو باید از چه نوعی بگیرم؟ object?
از نوع object می گیرم error می ده

xxxxx_xxxxx
دوشنبه 05 بهمن 1388, 19:35 عصر
ممنون
b رو باید از چه نوعی بگیرم؟ object?
از نوع object می گیرم error می ده

از نوع Control و یا Variant باید باشه. اگر هم تعریف نکنید که خوب پیشفرض Variant هست.

M.T.P
دوشنبه 05 بهمن 1388, 19:37 عصر
b رو از نوع Control تعریف کن حله:قلب:

S_O_S1982
سه شنبه 06 بهمن 1388, 17:53 عصر
ممنونم

حالا اگه بخوام این کار رو برای اشیای داخل یک فریم (Frame) انجام بدم ، به چه شکلی هست؟

xxxxx_xxxxx
سه شنبه 06 بهمن 1388, 22:22 عصر
ممنونم

حالا اگه بخوام این کار رو برای اشیای داخل یک فریم (Frame) انجام بدم ، به چه شکلی هست؟
سلام،
یک راهش استفاده از متد Container هست. که با جستجو پیدا میشد:
http://barnamenevis.org/forum/showthread.php?t=187616

راه دوم استفاده از تابع GetParent هست:


Private Declare Function GetParent Lib "user32" (ByVal hwnd As Long) As Long
با این تابع میتونید هندل آبجکت parent یک آبجکت رو بدست بیارید و بعد با یک شرط اون رو با هندل فریم مقایسه کنید اگر برابر بود پس اون آبجکت درون فریم قرار داره. البته باید این رو هم لحاظ کنید که همه آبجکت ها Handle ندارند. پس یک شرط هم برای این نیاز هست.

که خب روش اول (یعنی متد Container) آسان تر و سریع تر هست.