PDA

مشاهده نسخه کامل : یه عالمه سوال (VB.NET)



softsoft
08-07-10, 10:24
این سوالات در ویبی 2008 هست .
- من یه لیست ویو دارم که لیست ویو یک ستون توش داره که آدرس تصویری توش هست و ستون دیگه رو میذاریم برای تعیین اولویت
من میخوام هربار به طور تصادفی یکی از سطر های لیست ویو انتخاب بشه و ولی این انتخاب بر اساس اولویت که در ستون دوم
هر سطر وجود داره باشه . و بعد از انتخاب با اولویت ، آدرس اون تصویر که در سطر انتخاب شده است به درون یک پیکچر باکس بره
و عکس پیکچر باکس بشه . و منظورم از این که تکراری نباشه این نیست که مقدار از درون لیست ویو حذف بشه . بلکه منظورم اینه که
وقتی مثلا سطر دوم به طور رندوم انتخاب شد در مرحله بعد دوباره سطر دوم انتخاب نشه ولی اگه در مرحله سوم سطر دوم انتخاب شد
مشکلی نیست . در واقع نمیخوام که یک سطر دوبار به صورت پیاپی انتخاب بشه .
که مشک اصلی اینجاست که وقتی یک عدد رندوم ایجاد میشه بر اساس اولویت باشه و سطری انتخاب بشه که در ستون دومش اولویت
بالاتری داره . مثل اولوین 5 . البته اینم بگم که اولویت رو کاربر تععین میکنه و قابل تغییر هست .
ممنون که این قدر وقت میذارید و پاسخ میدید . حالا که این قدر زحمت می کشید خیلی بهتره که جواب رو به صورت کد کامل برام بذارید .
- یه مشکل دیگه هم برام پیش اومده.
توی ویبی 2008 در منوی Tools گزینه ای به نام این وجود داره : Upgrade Visual Basic 6 Code...
که وقتی من کلیک روش میکنم ارور زیر رو میده. چرا؟
---------------------------
Microsoft Visual Basic 2008 Express Edition
---------------------------
The operation could not be completed
---------------------------
OK
---------------------------
- و معادل این کد در ویبی 2008 چیه ؟
picture1.PaintPicture(PicPlay.Picture, 0, 0, XStep, YStep, x, Y, XStep, YStep, vbSrcCopy)
- و همچنین و اینکه معادل vbSrcCopy در ویبی 2008 چیه؟
- ما یک پیکچر باکس رو فرم داریم که Sizemode اون برابر با Stretch هست . و یک پیکچر باکس دیگه داریم که اندازه ی اون 72 در 72 است .
من میخوام بتونم فقط قسمتی از عکس پیکچر باکس اول به اندازه 72 در 72 رو از گوشه ی بالا سمت راستش بریزم توی پیکچر باکس دوم
این کار رو چه طوری میشه انجام داد.
- اینو خیلی وقته دنبالشم ولی نه پیدا کردم و نه کسی درست جواب داد. اینه که من میخوام یه بالن داشته باشم که بشه توش عکس گذاشت
که میشه گفت یه کنترل دارم که چنین قابلیتی داره.ولی فقط روی کنترل های روی فرم کار میکنه . در حالی که من میخوام این بالن رو از توی
آیکون کنار ساعت یا همون NotifyIcon بیرون بیارم. ممنون میشم اگه یه جواب کامل بدید.
- میخوام یه چیزی داشته باشم شاید مثل فانکشن . که چهار مقدار توش باشه . و وقتی ما یکی از اون مقدار ها رو مینویسیم بقیه مقدار ها هم نمایش
داده بشه و به دست بیاد . و همین طور وقتی ترکیبی رو از مثلا مقدار اول و سوم می نویسیم جواب کلی به دست بیاد و یا اینکه وقتی ما یک کلمه مینویسیم تمام داده هایی که اون یک کلمه رو دارن نمایش داده بشه . می خوام جواب ها توی لیست ویو نمایش داده بشه.
مثلا :
چهار مقدار : 1 ، فروردین ، عید نوروز ، A
البته بیش از 200 تا از این چهار تا مقدار ها رو توش میریزیم .
و وقتی نوشتیم "1 فروردین " جواب کلی و هر چهار مقدار نشون داده بشه.
و یا وقتی نوشتیم " فروردین " تمام داده هایی که فروردین داره توی لیست ویو لیست بشن.
- و اینکه چه جوری میشه یه کاری کرد که انگار برنامه دوباره از نو اجرا شده . مثل اینکه برنامه بسته شده و دوباره اجرا بشه.

ravegoat
09-07-10, 18:54
با سلام!

1-اين سوال رو اصلا" متوجه نشدم. انتخاب يا بايد بر اساس اولويت باشه و يا بايد بر اساس يه مقدار تصادفي باشه. شما نمي تونيد به طور همزمان از دو منطق انتخاب استفاده كنيد. البته ميشه كاري كرد كه احتمال انتخاب هر آيتم بر اساس اولويتش افزايش پيدا كنه.

2-اين يه باگ هست كه در VS 2008 Xprss وجود داره. فكر كنم توي سرويس پك يك اين ويرايش اين باگ رفع شده باشه.

3-فكر مي كنم معادلش دستور DrawImage از كلاس Graphics باشه. كلا" در دات نت براي ايجاد هر نوع جلوي روي عكس بايد از زيرمجموعه ي گرافيك استفاده كرد. آرگومان اول منبع عكس هست. چهار آرگومان بعدي چهارچوب مقصد رو مشخص مي كنه و چهار آرگومان آخر مربوط به چهارچوب عكس مبدا هستش. البته در دات مت آرگومان هاي واحد اندازه گيري و تنظيم گاما هم در اين متد وجود داره.

4-پارامتر vbSrcCopy كه اسم اصليش opcode هست، يه مقدار Long مربوط به عملگر منطقي بيت هاست كه نحوه ي كپي شدن پيكسل ها رو تعيين مي كنه. بيش تر در مورد عكس هاي bitmap كاربرد داره. چون يه آرگومان اختياري ممكن هنگام استفاده ازش با خطا رو به رو بشيد. چون نمي دونم واقعا" به چه درد مي خوره، نمي دونم معادلش چيه!

5-براي اين كار مي تونيد از همون دستور DrawImage استفاده كنيد:



Dim mypic As New Bitmap(72, 72)
Dim mygraf As Graphics = Graphics.FromImage(mypic)
mygraf.DrawImage(PictureBox1.Image, 0, 0, 72, 72)
PictureBox2.Image = mypic


البته عكس اين جوري به شكل Stretch كپي ميشه.

6-دوست عزيز من كنترلي براي اين كار پيدا نكردم.

7-فكر مي كنم براي كار بهتره از يه بانك استفاده كنيد. وقتي مقداري وارد ميشه اون رو در بانك جست و جو كنه و اگر مقداري يافت شد، سطر مرتبط به مقدار يافت شده رو كامل نشون بده. تا دلتون بخواد در انجمن-بخش سورس هاي VB.net در اي باره كد وجود داره.

8-از دستور Application.Restart استفاده كنيد.

موفق باشيد
آرمين