PDA

View Full Version : سوال: تابع رندوم



zohre_heidary
یک شنبه 20 بهمن 1387, 19:14 عصر
سلام می خواستم بدونم وقتی می خوام فایل exeبسازم ودر برنامه از عکس استفاده کردم چطور آدرس دهی کنم؟
در ضمن برای لود عکس از تابع رندوم چه طوری می تونم استفاده کنم؟
ممنون

xxxxx_xxxxx
یک شنبه 20 بهمن 1387, 19:34 عصر
عكسها را با Loadpicture فراخواني كنيد. به اين صورت:


Image1.Picture = LoadPicture("C:\pic.jpg")


مي خوايد عكس ها به طور رندوم نمايش داده بشند؟
بايد يك مجموعه از نام ها به همراه آدرس عكس ها داشته باشيد. حالا ها يا در بانك يا تو لود برنامه تو يك آرايه بعد با همين LoadPicture به صورت رندوم نمايشه بديد. مثلاً اگر نام عكس ها از pic1 تا pic10 هست و همه در درايو C هستند به اين صورت ميشه:



n = Int(Rnd * 10) + 1
Image1.Picture = LoadPicture("C:\pic" & Trim(Str(n)) & ".jpg")

r0ot$harp
یک شنبه 20 بهمن 1387, 20:51 عصر
اینم تابع من هست که در VB6 استفاده می کنم .


Public Function Random(max As Integer) As Integer

On Error Resume Next

Randomize DateTime.Second(Time) * DateTime.Minute(Time)
Random = Round(Rnd * max) + 1

While Random > max
Random = Round(Rnd * 3) + 1
Wend

End Function



باتشکر احسان

xxxxx_xxxxx
یک شنبه 20 بهمن 1387, 21:29 عصر
اینم تابع من هست که در VB6 استفاده می کنم .


Public Function Random(max As Integer) As Integer

On Error Resume Next

Randomize DateTime.Second(Time) * DateTime.Minute(Time)
Random = Round(Rnd * max) + 1

While Random > max
Random = Round(Rnd * 3) + 1
Wend

End Function
باتشکر احسان


سلام
1- ميشه بگيد چرا به تابع Randomize مقدار داديد؟ و چرا ضرب دقيقه در ثانيه؟:متفکر::متفکر:

2- و اين كه بجاي گرد كردن عدد كه ممكن هست قسمت صحيح رو يك واحد افزايش بده مي تونستيد از Int استفاده كنيد كه فقط قسمت صحيح رو نمايش ميده. و شما براي پوشش دادن اين خطاي احتمالي از حلقه استفاده كرديد و به طور مكرر گردش مي كنيد تا بالاخره به احتمال 50% حدپايينش دربياد:متفکر:

3- و به خاطر حركتي كه در حلقه زديد هميشه به احتمال [ماكس سومِ بعلاوه يك] درصد يعني ( max/(3+1 % عدد بدست آمده 1 يا 2 يا 3 يا 4 است. پس نمي تونه دقيق باشه

4- اين تابع چه مزيتي نسبت به تابع rnd خود VB داره؟
ممنون.

zohre_heidary
سه شنبه 22 بهمن 1387, 14:04 عصر
از پاسختون ممنون اما اگه اینجوری آدرس دهی کنم وقتی در کامپیوتر دیگه ای برنامه رو نصب کنم عکس ها نمایش داده نمی شوند لطفا با app توضیح بدید

zohre_heidary
سه شنبه 22 بهمن 1387, 14:07 عصر
برای آدرس دهی عکس ها لطفا استفاده از app.path رو توضیح بدین

xxxxx_xxxxx
سه شنبه 22 بهمن 1387, 14:12 عصر
اون يه مثال بود.
فرض كنيد عكس ها تو يك فولدر به نام Pictures در مسير نصب برنامه قرار داره. كد رو به اين صورت تغيير بديد:


n = Int(Rnd * 10) + 1
Image1.Picture = LoadPicture(App.Path & "\Pictures\pic" & Trim(Str(n)) & ".jpg")