PDA

View Full Version : سوال: سوال در رابطه با لیست باکس در ویژوال بیسیک



Masoud Sj
چهارشنبه 12 آذر 1393, 16:26 عصر
سلام دوستان،
دارم ی برنامه مینویسم ک ی رشته میگیره مثلا abcdefg123544 بعد این به صورت تصادفی یك تیکه از این رشته رو توی لیست باکسم چاپ میکنه مثلا اینطوری ab21 یا .....
من یك مشکلی دارم تو این برنامه اونم اینه که وقتی اینا توی لیست باکسم چاپ میشن به صورت :
a
b
2
1
چاپ میشن من میخوام سره هم چاپ بشه
بعد که مثلا این کارکتر تموم شد بره کارکتر بعدی و اون رو هم سره هم چاپ کنه تا جایی که کاربر کلید استوپ رو بزنه....
ممنون میشم کمکم کنید کارم واقعا واقعا واقعا گیره

meys34
چهارشنبه 12 آذر 1393, 16:51 عصر
به جای List1.AddItem از کد زیر استفاده کنید...
If List1.NewIndex = -1 Then List1.AddItem ""
List1.List(List1.NewIndex) = List1.List(List1.NewIndex) & Int(Rnd * 10)

یه if هم خط اول گذاشتم که اگر لیست خالی بود ارور نده...

Masoud Sj
پنج شنبه 13 آذر 1393, 22:16 عصر
این برنامه شما کلا هرچی تو لیست باکس میاد رو به صورت خطی چاپ میکنه....
برنامه من طوریه که بهش رشته میدی عدد و حروف قاطیه.. بعد بهش میگی به صورت رندم از اون رشته ی رشته دیگه بسازه .. البته قبلش باید بگی رشته ای که میسازه چند رقم یا حروف باشه ، مثلا اگه رشته اصلی ما :
abcdefg123 باشه ...
ما بهش بگیم رشته چهار حرفی بسازه میاد یه بار مثلا اینو میسازه :
ab12
بعد میره خط بعد اینو میسازه
12as
تا یه جایی که بهش بگیم کارو تموم کنه البته اونش دیگه درسته...
فکر کنم مشکلم رو فهمیده باشید

meys34
پنج شنبه 13 آذر 1393, 23:13 عصر
Private Sub Command1_Click()
Dim MainString As String
Dim T As String
Dim i As Integer, ii As Integer
Dim r As Integer

MainString = "abc123"

For ii = 0 To 10
T = ""

For i = 1 To 4
r = (Rnd * Len(MainString)) + 1
T = T & Mid$(MainString, r, 1)
Next

List1.AddItem T
DoEvents
Next
End Sub

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

Masoud Sj
جمعه 14 آذر 1393, 12:27 عصر
ممنون ولی جواب نداد..
این برنامه منه خودتون دانلود کنید ببینید چطور کار میکنه کاملا متوجه میشید

vbhamed
شنبه 15 آذر 1393, 12:58 عصر
سلام
Private Sub Timer1_Timer()

'Label4.Caption = List1.ListCount
Timer1.Interval = (Text2.Text)

Dim c As String, i As Integer, d As Integer
Dim MainString As String
Dim T As String
Dim z As Integer, ii As Integer
Dim r As Integer
Dim s As String

Randomize Timer
c = Text1.Text
d = Val(Text3.Text)
If d = 0 Then
Timer1.Enabled = False
Text3.SetFocus
Exit Sub
End If

For x = 1 To d
i = Int(Rnd * Len(c)) + 1
s = s & Mid(c, i, 1)
Next
List1.AddItem s
List1.ListIndex = List1.ListCount - 1

End Sub

gorg313
شنبه 15 آذر 1393, 17:28 عصر
سلام حميد من يه شيطوني کردم حرفه اي تر بشه:لبخند:

Timer1.Enabled = True
'Label4.Caption = List1.ListCount
Timer1.Interval = (Text2.Text)

Dim c As String, i As Integer, d As Integer
Dim MainString As String
Dim T As String
Dim z As Integer, ii As Integer
Dim r As Integer
Dim s As String

Randomize Timer
c = Text1.Text
d = Val(Text3.Text)
If d = 0 Then
Timer1.Enabled = False
Text3.SetFocus
Exit Sub
End If

For x = 1 To d
i = Int(Rnd * Len(c)) + 1
s = s & Mid(c, i, 1)
Next
List1.AddItem s
List1.ListIndex = List1.ListCount - 1

If List1.ListIndex = Text2.Text Then
Timer1.Enabled = False
MsgBox "تمام شد"
End If