spiderman نوشته است:ScaleWidth , Step , Split
اینا چین ؟!! یکی توضیح بده
از کجا میارین اینا رو ! ؟ !!!
یه سوالی ازت دارم, تاحالا VB خوندی ؟
split= تکه کردن- لغمه, لغکه کردن-از هم جدا کزدن-شکافتن
کارش: تبدیل یک رشته به چند واحد
فرمتش:
Split(Expression As String, [Delimiter], [Limit As Long = -1], [Compare As VbCompareMethod = vbBinaryCompare])
توضیح بیشتر: خیلی از مواقع لازم میشه چندین داده با فرمت مشخص رو درون حافظه نگه داری بنابراین میایی و به تعداد مورد نیاز آرایه در حافظه تعریف میکنی اما من اصلا از این کار خوشم نمی آید (بگو مگه حافظه مال باباته)
به جای این کار میام و تمام داده ها رو درون یک رشته قرار میدهم و در مواقع لزوم داده مورد نظرم رو از اون رشتهه استخراج میکنم !
مثلا فرض کنیم میخواهیم اعداد 10, 20, 30, 400, 500 و 600 رو ذخیره کنیم. باید رشته ای تشکیل بدم که تکتک عناصر داده ای در اون با کاراکتر خاصی (در ایجا از کاما استفاده میکنم چون هیچ کدوم از اعداد این کاراکتر رو ندارند) از هم جدا بشوند
رشته="10,20,30,400,500,600"
حالا اگر بخوام همه داده ها رو درون یک آرایه داشته باشم از کد زیر استفاده می کنم:
نقل قول: MemoStr$="10,20,30,400,500,600"
Dim JH() as integer
JH=Split(MemoStr$,",")
خروجی زیر حاصل کد بالاست:
JH(0)=10
JH(1)=20
JH(2)=30
JH(3)=400
JH(4)=500
JH(5)=600
اما اگر نخواهیم از یک آرایه استفاده کنیم یا مثلا فقط با داده عنصر 4 ام کار داشته باشیم میشه از روش زیر هم استفاده کرد:
نقل قول: IntNumber=Split(MemoStr$,",")(4)
برای کامل کردن این بحث هم بگم که فرمان Join دقیقا عکس Split کار می کنه یعنی مثلا اگر آرایه مقدار دار JH که در بالا عنوان شد رو وارد Join کنی عناصرش به هم ملحق میشند ورشته MemoStr بالا رو به خروجی می فرسته.
-------------------------------------------------
Step=گام, رتبه, پرش, قدم زدن
در حلقه For به طور پیش فرض به آرایه ایندکس شما فقط یک واحد در هر گردش اضافه میشه یعنی فرمان به شکل زیره:
نقل قول: For ISum=0 to 100
Print ISum
Next ISum
معادل کد بالا:
نقل قول: For ISum=0 to 100 Step 1
Print ISum
Next ISum
یعنی عدد بعد از لفظی Step که تعیین می کنه چه مقدار به آرایه اضافه بشه
حالت بسیار عالی کاربرد Step زمانیه که بخواهیم از آرایه مقداری کم بشه که در این حالت عدد بعد از اون رو منفی میزایم (قیب گفتم مگه نه)
-------------------------------------------
ScaleWidth= اندازه پهنای واقعی (استنباط رایانه ایشه)
اگر می خواهید اندازه واقعی یک شئ مانند یک فرم (اندازه بدون تیتل بار و حاشیه اطراف) رو داشته باشید از خصوصیت ScaleWidth , ScaleHeight اون شئ استفاده کنید. این دو خصوصیت با تغییر خصوصیت ScaleMode شئ به طور اتوماتیک به روز میشند و دیگه لازم نیست چند ده خط کد برای محاسبه اندازه ها بنویسید.
مثل من سعی کنید که عادت کنید به جای Width , Height از معادل های Scale شون استفاده کنید تا مکان اشیاء مورد نظرتون همیشه دقیق باشه !