ايران ويج

نسخه‌ی کامل: تصادفی قرار گرفتن کامپوننتها
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
چند تا دکمه و فریم روی فرم دارم وقتی فرم ,LOAD میشه 7تا دکمه ای که دارم به شکل تصادفی در نقاطی از فرم باید قرار بگیرند من از کد زیر استفاده کردم
PRIVATE SUB FORM_LOAD()
RANDOMIZE
FOR I=0 TO 6
COMMAND(I).TOP=RND()*ME.WIDTH
COMMAND(I).LEFT=RND()*ME.HEIGHT
NEXT I
ولی بعضی از دکمه ها در حاشیه فرم نصفه نیمه نمایش داده میشن این مشکل اولم بود و دوم اینکه چیکار کنم دکمه ها زیر فریم ها قرار نگیرندI
اگه طول button شما 20 و عرضش 5 باشه شما باید مقادیر رو به صورت
COMMAND(I).TOP=RND()*ME.WIDTH-20
COMMAND(I).LEFT=RND()*ME.HEIGHT-5
قرار بدین تاbuttonها دقیقا داخل فورم قرار بگیرن
lord_viper هم اشاره کرد...
کدی که نوشتی به شکل زیر اصلاح می شه:

Randomize Timer
For I = 0 To 6
Command1(I).Top = Int(Rnd * (Me.ScaleHeight - Command1(I).Height))
Command1(I).Left = Int(Rnd * (Me.ScaleWidth - Command1(I).Width))
Command1(I).ZOrder vbBringToFront
Next I

مهمترین ایراد کدت این بود که Top رو با Width استفاده می کرد و Left رو با Height محاسبه می کرد در حالی که عکس این مطلب درسته!

اگر می خوای دکمه روی فریم بیافته (با شرط اینکه دکمه داخل فریم نباشه ها) باید از خصوصیت Zolder استفاده کنی که در کد بالا می بینی.
با Zolder موقعیت کنترل ها در بردار Z رو تنظیم می کنی...