/ Forside / Teknologi / Udvikling / VB/Basic / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
VB/Basic
#NavnPoint
berpox 2425
pete 1435
CADmageren 1251
gibson 1230
Phylock 887
gandalf 836
AntonV 790
strarup 750
Benjamin... 700
10  tom.kise 610
Et par begynder-spørgsmål.
Fra : Thomas Hansen


Dato : 28-01-01 20:02

Hej allesammen

Jeg er lige gået i gang med at lære VB 6.0, til formålet har jeg anskaffet
et eksemplar af Jacob Kristiansens bog "Start på Viaual Basic 6.0". Nu er
jeg kommet til afsnittet omkring ActiveX-controllers og jeg har kørt
samtlige turturials fra bogen, på et tidspunkt er jeg vist "kommet til" at
pille ved nogle knapper i værktøjs-linien, med det resultat at hver gang jeg
prøver at starte mit tegneprogram (turturial fra bogen) med
ActiveX-controlleren (farveblander) så loader systemet min Internet Explorer
og placerer farveblanderen i browser-vinduet. Controlleren virker fint, men
jeg kunne nu godt tænke mig at den holdt sig til mit forhåndenværende
projekt, og ikke sådan stak af. :)

Her er et andet lille problem:

GENERAL DECLERATIONS
Option Explicit
Dim AntalKort As Integer
Dim Kort() As String
Dim Taeller As Integer
Dim VisKort As Integer
Dim KortVaerdi As String

GENERAL FINDKORT
Sub FindKort()
'Int((HighestValue - LowestValue + 1) * Rnd) + LowestValue
Dim MellemVaerdi As Integer
Dim MellemFarve As Integer
Dim ReelVaerdi As String
Dim ReelFarve As String
Dim KortVaerdi As String
Dim x As Integer

MellemVaerdi = Int(Rnd * 13 + 1)
MellemFarve = Int(Rnd * 4 + 1)

Select Case MellemVaerdi
Case 1
ReelVaerdi = "Es"
Case 11
ReelVaerdi = "Knægt"
Case 12
ReelVaerdi = "Dame"
Case 13
ReelVaerdi = "Konge"
Case Else
ReelVaerdi = MellemVaerdi
End Select

Select Case MellemFarve
Case 1
ReelFarve = "Spar"
Case 2
ReelFarve = "Klør"
Case 3
ReelFarve = "Ruder"
Case 4
ReelFarve = "Hjerter"
End Select

KortVaerdi = ReelFarve & " " & ReelVaerdi

If Taeller = 1 Then Kort(Taeller) = KortVaerdi
If Taeller = 1 Then Exit Sub

For x = 1 To (Taeller - 1)
If ReelVaerdi = Kort(x) Then FindKort
Next x
Kort(Taeller) = KortVaerdi
End Sub

COMMAND1 CLICK
Private Sub Command1_Click()
List1.Clear
AntalKort = InputBox("Hvor mange kort?", "Vælg antal", 13)
ReDim Kort(1 To AntalKort) As String
For Taeller = 1 To AntalKort
FindKort
Next Taeller
For VisKort = 1 To AntalKort
List1.AddItem Kort(VisKort)
Next VisKort
End Sub

FORM LOAD
Private Sub Form_Load()
Randomize
End Sub


Ovenstående er mit første lille selvkonstruerede program. Det er en rutine
til at udtrække et bestemt antal tilfældige spille-kort.
Problemet består i at den lille løkke her ikke virker:

If Taeller = 1 Then Kort(Taeller) = KortVaerdi
If Taeller = 1 Then Exit Sub

For x = 1 To (Taeller - 1)
If ReelVaerdi = Kort(x) Then FindKort
Next x

Meningen er jo at hvis den finder to ens kort, så skal den lave trækningen
om til den finder et som ikke er brugt.
Det gør den bare ikke, programmet kører fint, men det udtrækker altså stadig
ens kort.

Jeg håber at der er en af jer hajer som kan hjælpe mig her, da jeg vist er
kørt fast.

Med venlig hilsen og på forhånd tak

Thomas B. Hansen

PS. Jeg bruger Enterprize Edition, men uden MSDN-CD'en (hjælpe-filen) da vi
får Microsoft's Select CD-er (men MSDN CD'en er pist borte :()

PPS. Jeg ved godt at mine DIM-linier står lidt rodet, men jeg har stadig
ikke helt styr på hvor de bedst placeres.



 
 
Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408943
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste