امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
چند تا سوال درمورد object ها ...
نویسنده پیام
NabiKAZ آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 520
موضوع‌ها: 48
تاریخ عضویت: اسفند ۱۳۸۲

تشکرها : 6
( 60 تشکر در 46 ارسال )
ارسال: #12
RE:  چند تا سوال درمورد object ها ...
hamed_Arfaee نوشته است:خوب شما بیا با مختصات نقاط کار کن و با در دست داشتن یک ماتریس n*nمی تونی به هر گرهی دسترسی داشته باشی

چگونگي انجام اين کار مهمه که همين مورد سواله !
که البته دوستمون Darg فکر ميکنم راهش رو توضيح دادند...
تشکر

۱۵-فروردین-۱۳۸۵, ۰۷:۱۵:۴۸
وب سایت ارسال‌ها
پاسخ
NabiKAZ آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 520
موضوع‌ها: 48
تاریخ عضویت: اسفند ۱۳۸۲

تشکرها : 6
( 60 تشکر در 46 ارسال )
ارسال: #13
RE:   چند تا سوال درمورد object ها ...
Darg نوشته است:spiderman برنامه خوبی نوشتی دستت درست (فقط ای کاش برای دکمه Exit خروج رو کد نویسی می کردیShy     )
یک راه اینه که به جای استفاده و پردازش ایندکس اشیاء از حافظه کمک بگیری یعنی آرایه ای تعریف کنی ساختارش یک ماتریس باشه همون طور که دوستان اشاره کردند
اما اگر من جای شما بودم (روش خودم) اصلا هیچ کار اضافی یا تعریف حافظه ای در نظر نمی گرفتم چرا که خود ایندکس ها جواب رو در هر فراخوانی به ما میدند فقط یکمی محاسبه ریاضی می خواهد
این هم بپستگی داره به ترتیب چیدمان اشیاء روی هر گره
فرض کنیم که اشیاء رو به شکل زیر بچینی

3     2     1     0
7     6     5     4
11   10    9    8
15   14   13   12

خوب حالا میخوای بفهمی شیء ایندکس 11 کجاست یعنی شماره ردیف و ستونش چیه
ستونش میشه:   I mod 4+1 ===> 11 mod 4=3+1=4
ردیفش:              I\4+1   ===>  11\4+1=3


NabiKAZ نوشته است:این TypeName که گفتید در ازای هر اندیسی مقدار Line رو برمیگردونه ، ولی من میخوام متوجه بشم شیء با اندیس خاص وجود دارد یا خیر .

یه مثلی هست که میگه شما اول برادری خودت رو ثابت کن (چه ربطی داشت)
شما اول بیا تایین کن که شیء وجود داره بعدا خیلی روش هست که میشه فهمید فلان ایندکش هم هست با نه
مثلا تله خطا : اگر بخوای یک شیء با یک ایندکس رو که وجود داررو دوباره ایجاد کنی خطلا میده (این فقط یه مثال بود مطمعنم راههای بهتری هم به ذهنت میرسه)
با اینکه برای چک کردن حداکثر ایندکس های یک شیء یا آرایه از فرمان
UBound
و برای مینیمم از فرمان
LBound
استفاده کن


راستی اگر تونستی شیء جدید ایندکسی ایجاد کنی روشش رو به ماهم بگو یاد بگیریم.


سلام
روش ریاضی که ارائه دادی فوق العاده جالب و زیرکانه بود. دستت درد نکنه .
فقط شماره اندیس های من از 1 شروع میشه ، یه تغییر کوچیک باید تو فرمول داد ، فکر کنم اینجوری میشه:
4 3 2 1
8 7 6 5
12 11 10 9
16 15 14 13
ستون: I mod 4
ردیف: I\4+1
مثلا در مورد اندیس 6 میشه:
ستونش میشه: I mod 4 ===> 6 mod 4 = 2
ردیفش میشه: I\4 ===> 6\4+1 = 2
البته عدد 4 در فرمول های بالا همان حدکثر ستونهاست!
که درسته.
ولی این فرمول برای ستون های انتهایی دچار خطا میشه !
مثلا برای 12 :
ستون میشه: 0
ردیف میشه: 4
آیا باید در مورد اعدادی که مضاربی از تعداد حداکثر ستونها (در این مثال 4) هستند مثل استثنا قائل شد و تصحیح لازم رو روی اونها اعمال کرد یا اینکه فرمول کلی و مناسب تری پیشنهاد میکنید.

در مورد روش "تله خطا" هم من تصمیم داشتم کاری کنم که از این روش استفاده نشه ! وگرنه به ذهنم رسیده بود. تابع UBound هم تنها در مورد آرایه ها کاربرد داره و روی اشیاء کار نمیکنه !
البته در اون مقطع که سوال رو پرسیدم ناچاراً با روش تله خطا مشکل رو مرتفع کردم ولی الان دیگه مهم نیست چون همون طور که گفتم تصمیم گرفتم برنامه رو روش متند Line سوئیچ کنم .

متشکرم
نبی

۱۵-فروردین-۱۳۸۵, ۰۷:۱۸:۴۴
وب سایت ارسال‌ها
پاسخ
ha_60 آفلاین
بنيانگذار سايت
******

ارسال‌ها: 4,637
موضوع‌ها: 216
تاریخ عضویت: آبان ۱۳۸۳

تشکرها : 560
( 6556 تشکر در 2385 ارسال )
ارسال: #14
RE: چند تا سوال درمورد object ها ...
ستون رو بگیر ( I-1 مود 4 ) به اضافه یک (اینم شد ادیتور)
ردیف هم ( I-1 تقسیم بر 4) به اضافه 1
من همه رو نخوندم ولی هر چی هست فکرکنم وقتی یه پنجره ار رو برنامت رد بشه هر چی کشیدی پاک می شه یا با یه ماکزیمم مینیمم کردن بد نیست اینم چک کنی

هادی امین زاده
دیدن چیزی که همه می بینند هنر نیست
بانک اطلاعات صنایع ایران.
۱۵-فروردین-۱۳۸۵, ۰۹:۲۰:۴۰
وب سایت ارسال‌ها
پاسخ
vblove آفلاین
كاربر دو ستاره
**

ارسال‌ها: 155
موضوع‌ها: 9
تاریخ عضویت: اردیبهشت ۱۳۸۴

تشکرها : 0
( 19 تشکر در 10 ارسال )
ارسال: #15
Question  RE: چند تا سوال درمورد object ها ...
سلام دوستان

من با Controls.Add .... چند وقت پیش یک
دکمه ساختم من چه طوری میتونم واسش رویداد کلیک تعریف کنم ؟
من به نتیجه نرسیدم ویخوام این دکمه که با این دستور ایجاد شد
وقتی روش کلیک شد یه پیغام بده یا . . .

۱۵-فروردین-۱۳۸۵, ۱۲:۰۷:۱۵
وب سایت ارسال‌ها
پاسخ
NabiKAZ آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 520
موضوع‌ها: 48
تاریخ عضویت: اسفند ۱۳۸۲

تشکرها : 6
( 60 تشکر در 46 ارسال )
ارسال: #16
RE:  چند تا سوال درمورد object ها ...
ha_60 نوشته است:ستون رو بگیر ( I-1 مود 4 ) به اضافه یک (اینم شد ادیتور)
ردیف هم ( I-1 تقسیم بر 4) به اضافه 1
من همه رو نخوندم ولی هر چی هست فکرکنم وقتی یه پنجره ار رو برنامت رد بشه هر چی کشیدی پاک می شه یا با یه ماکزیمم مینیمم کردن بد نیست اینم چک کنی

سلام
ای ول ! درسته همینه !

در مورد مشکلی هم که ذکر کردی ، یا ست کردن خاصیت AutoRedraw به True خطوط رسم شده بر روی فرم حذف نمی شوند.

تشکر
نبی

۱۵-فروردین-۱۳۸۵, ۱۳:۲۵:۴۱
وب سایت ارسال‌ها
پاسخ
NabiKAZ آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 520
موضوع‌ها: 48
تاریخ عضویت: اسفند ۱۳۸۲

تشکرها : 6
( 60 تشکر در 46 ارسال )
ارسال: #17
RE:  چند تا سوال درمورد object ها ...
vblove نوشته است:سلام دوستان

   من با Controls.Add ....   چند وقت پیش  یک
   دکمه ساختم من چه طوری میتونم واسش رویداد کلیک تعریف کنم ؟
   من به نتیجه نرسیدم ویخوام این دکمه که با این دستور ایجاد شد
   وقتی روش کلیک شد یه پیغام بده یا . . .

  

سلام
همون طوري که دوستمون Darg در بالا اشاره کردند در مورد CommandButton و امثالهم که رويداد پذير هستند بايد بصورت WithEvents تعريف بشوند. کد مربوط به صورت گرفتن کليک هم ميتواني دستي بنويسي اگر Button موجود بود ، رخ داد اون هم کار ميکنه در غير اين صورت مشکلي بوجود نمياد. کد زير مثال عملي مي باشد:
کد:
Dim WithEvents NewButton As VB.CommandButton

Private Sub Form_Load()
Set NewButton = Controls.Add("VB.CommandButton", "NewButton", Me)
NewButton.Visible = True
End Sub

Private Sub NewButton_Click()
MsgBox "click"
End Sub

نبي

۱۵-فروردین-۱۳۸۵, ۱۳:۲۷:۲۴
وب سایت ارسال‌ها
پاسخ
hamed_Arfaee آفلاین
مدیر بخش
*****

ارسال‌ها: 1,334
موضوع‌ها: 231
تاریخ عضویت: تير ۱۳۸۳

تشکرها : 1250
( 2634 تشکر در 730 ارسال )
ارسال: #18
RE: چند تا سوال درمورد object ها ...
من برنامه محمد حسین رو کاملترش کردم و فکر کنم سرعتش رو تا 10 برابر بیشتر کردم و یک کار بزرگ هم که کردم نوشتن کد دکمه خروج بود
در ضمن علت افزایش سرعت رو هم خودتون باید پیدا کنید
http://www.basic.persiangig.com/Archive/Grid.zip

حامد ارفعی

موفقيت، پيش رفتن است، نه به نقطه ي پايان رسيدن.(آنتوني رابينز)


تریگرها در SQL server

آیا میدانید SQL ای
۱۵-فروردین-۱۳۸۵, ۱۸:۰۵:۵۰
وب سایت ارسال‌ها
پاسخ
hamed_Arfaee آفلاین
مدیر بخش
*****

ارسال‌ها: 1,334
موضوع‌ها: 231
تاریخ عضویت: تير ۱۳۸۳

تشکرها : 1250
( 2634 تشکر در 730 ارسال )
ارسال: #19
RE: چند تا سوال درمورد object ها ...
دوباره برنامه رو بروز کردم و فکر کنم همونی که می خواهیش ولی این سرعتش خیلی کمه و اگر خواستی سرعتش یکم زیاد تر بشه اون کد نقطه
گذاری رو حذفش کن بازم روش کار می کنم

http://www.basic.persiangig.com/Archive/Grid2.zip

حامد ارفعی

موفقيت، پيش رفتن است، نه به نقطه ي پايان رسيدن.(آنتوني رابينز)


تریگرها در SQL server

آیا میدانید SQL ای
۱۵-فروردین-۱۳۸۵, ۱۹:۰۵:۳۸
وب سایت ارسال‌ها
پاسخ
محمد حسینی آفلاین
کاربر فعال بخش رباتیک
****

ارسال‌ها: 1,363
موضوع‌ها: 139
تاریخ عضویت: آذر ۱۳۸۴

تشکرها : 974
( 1780 تشکر در 620 ارسال )
ارسال: #20
RE: چند تا سوال درمورد object ها ...
جالب شد. میگم می خواین کد اصلی رو هم بهتون بدم کاملش کنین. دست من پیشرفت نمیکنه !
درضمن اسم من محمد !

به راه بادیه رفتن، به از نشستن باطل ------------- اگرچه وصل نیابم، بقدر وسع بکوشمRolleyes
۱۵-فروردین-۱۳۸۵, ۱۹:۴۷:۲۶
ارسال‌ها
پاسخ
محمد حسینی آفلاین
کاربر فعال بخش رباتیک
****

ارسال‌ها: 1,363
موضوع‌ها: 139
تاریخ عضویت: آذر ۱۳۸۴

تشکرها : 974
( 1780 تشکر در 620 ارسال )
ارسال: #21
RE: چند تا سوال درمورد object ها ...
ScaleWidth , Step , Split
اینا چین ؟!! یکی توضیح بده
از کجا میارین اینا رو ! ؟ !!!

به راه بادیه رفتن، به از نشستن باطل ------------- اگرچه وصل نیابم، بقدر وسع بکوشمRolleyes
۱۵-فروردین-۱۳۸۵, ۲۰:۰۵:۱۸
ارسال‌ها
پاسخ
Darg غایب
مدير بازنشسته
*****

ارسال‌ها: 894
موضوع‌ها: 40
تاریخ عضویت: تير ۱۳۸۴

تشکرها : 381
( 702 تشکر در 190 ارسال )
ارسال: #22
Big Grin  RE:  چند تا سوال درمورد object ها ...
spiderman نوشته است:ScaleWidth , Step , Split
اینا چین ؟!! یکی توضیح بده
از کجا میارین اینا رو ! ؟ !!!

یه سوالی ازت دارم, تاحالا VB خوندی ؟Shy

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 شون استفاده کنید تا مکان اشیاء مورد نظرتون همیشه دقیق باشه !
(آخرین ویرایش در این ارسال: ۱۶-فروردین-۱۳۸۵, ۰۱:۳۸:۲۱، توسط Darg.)
۱۶-فروردین-۱۳۸۵, ۰۱:۲۷:۱۷
وب سایت ارسال‌ها
پاسخ


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  دو سوال درمورد برنامه های پرتابل policweb 16 11,532 ۲۸-شهریور-۱۳۹۲, ۱۰:۳۸:۳۹
آخرین ارسال: Ghoghnus
  سوال درمورد ارسال پی ام به یاهو reza-ezdeham 5 5,040 ۱۳-آبان-۱۳۹۰, ۱۵:۳۵:۱۵
آخرین ارسال: p8tir
  سوال درمورد Winsock kamyabpc 7 6,989 ۱۰-دى-۱۳۸۹, ۲۲:۴۸:۲۷
آخرین ارسال: amir00
  کمک درمورد برنامه انبار main 4 5,254 ۰۶-اردیبهشت-۱۳۸۹, ۱۰:۵۵:۱۹
آخرین ارسال: main
Question سوال درمورد Mouse Move toopdanlod 4 4,198 ۰۹-مرداد-۱۳۸۸, ۰۱:۵۳:۱۶
آخرین ارسال: toopdanlod
  چاپ PictureBox حاوی Object mojtabamalaekeh 2 2,283 ۲۴-بهمن-۱۳۸۷, ۱۰:۳۱:۰۵
آخرین ارسال: mojtabamalaekeh
Sad سوال درمورد dynaset, table, snapshot greenday 1 2,202 ۱۹-آبان-۱۳۸۷, ۰۱:۱۰:۵۰
آخرین ارسال: keihancpu
  درمورد رویداد های form در ویژوال بیسیک mahdi rezaei 2 2,881 ۰۶-دى-۱۳۸۶, ۰۰:۴۵:۵۹
آخرین ارسال: arashrj
Question چه جوری یک Embedded Object File میشه ساخت ؟ User-Name 13 8,084 ۲۰-اردیبهشت-۱۳۸۵, ۰۰:۴۰:۵۳
آخرین ارسال: User-Name
  Run-time error '91' : Object variable or With block variable not set a_persian_boy 3 5,515 ۰۹-فروردین-۱۳۸۵, ۰۱:۳۵:۳۳
آخرین ارسال: a_persian_boy

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS