PDA

View Full Version : جابجایی اسامی listbox



aleas2
دوشنبه 06 آذر 1391, 09:54 صبح
سلام خسته نباشید دوستان بنده یه listbox تعداد محتویاتش معلوم نیست چند تاست میخواستم بدونم چطور میتونم این محتویات بصورت رندم جایشونو عوض کنم به طور مثال وقتی میخواهی قرعه کشی کنی این اسامی رو بهم میزنی منم میخوام با لیست باکس هم کارو بکنم چطور اینکارو بکنم؟

محسن واژدی
دوشنبه 06 آذر 1391, 10:19 صبح
سلام علیکم
کد زیر را بررسی کنید:
Private Sub Command1_Click()
Dim iIt1%, iIt2%
Dim sIt1$, sIt2$
Dim sItems$
With List1
Do
Randomize
iIt1% = Int(Rnd() * .ListCount)
Randomize
iIt2% = Int(Rnd() * .ListCount)
If iIt1% <> iIt2% And InStr(1, sItems$, " " & iIt1% & "|") = 0 And InStr(1, sItems$, " " & iIt2% & "|") = 0 Then
sItems$ = sItems$ & " " & iIt1% & "| " & iIt2% & "|"
sIt1$ = .List(iIt1%)
sIt2$ = .List(iIt2%)
.List(iIt1%) = sIt2$
.List(iIt2%) = sIt1$
End If
Loop Until UBound(Split(sItems$, "|")) >= .ListCount - 1
End With
End Sub

موفق باشید

aleas2
دوشنبه 06 آذر 1391, 11:08 صبح
میشه روش کار این کد رو بگین ساده تر نمیتونین بگین؟

محسن واژدی
دوشنبه 06 آذر 1391, 11:53 صبح
میشه روش کار این کد رو بگین ساده تر نمیتونین بگین؟
کافیست نام List-Box خوتان را جایگزین List1 موجود در دستورات کنید

موفق باشید

aleas2
دوشنبه 06 آذر 1391, 14:01 عصر
خب حالا یه سوال دگه ما چهار تا لیست باکس داریم میخوام محتویات چهارتا لیست داخل یه لیست باکس قرار بدم بعد میخوام این لیست رو طوری تغییر بدم که بطور مثال
محتویات list1
a
b
c
محتویات list2
aa
bb
cc
محتویات list3
aaa
bbb
ccc
محتویات list4
aaaa
bbbb
cccc


این چهارتا لیست میریزم داخل یه لیست باکس بعد لیست باکس بصورت قرعه بهم بزنه به صورتی که

ایندیکس ها رعایت بشه یعنی همیشه ایندیکس b از ایندیکس a بزرگتر باشه و همینطور c ایندکسش از ایندیکس a,b بزرگتر باشه و ایندیکس a همیشه از ایندیکس b,cکوچکتر باشه
همیشه ایندیکس bb از ایندیکس aa بزرگتر باشه و همینطور ایندیکس cc از ایندیکس aa,bb بزرگتر باشه و ایندیکس aa همیشه از ایندیکس bb,ccکوچکتر باشه
همینطور ادامه داشته باشه
یک نمونه رندم خودم میریزم داخل یه لیست بصورت قرعه بهم میزنم که شرط های بالا برقرار باشه
نمونه
a
aa
bb
b
aaaa
aaa
bbbb
c
bbb
cccc
cc
ccc

اگر تو محتویات بالا نگاه کنید ایندیکس a از ایندیکس b,c کوچکتره یا ایندیکس cccاز ایندیکس aaa,bbb بزرگتره



ضمنا" محتویات لیست ها هیچگاه با بقیه لیست ها برابر نیست یعنی اگر تو لیست یک a وجود داشته باشه تو بقیه لیست ها a وجود نداره و اینکه list.listcount لیست ها هم شاید تعدادشون باهم برابر باشه شاید نباشه !



امیدوارم منظورمو تونسته باشم برسونم

aleas2
دوشنبه 06 آذر 1391, 21:27 عصر
اگر سورسش براتون مشکله الگوریتم بگین

aleas2
سه شنبه 07 آذر 1391, 13:18 عصر
خودم تونستم بنویسمش گفتم اینجا بذارمش شاید کسی دگه هم مثل من بهش نیاز پیدا کرد
دانلود (http://aleas.persiangig.com/other/Random.zip)