Crashyy Geschrieben 12. Januar 2006 Geschrieben 12. Januar 2006 Hallo ihr Lieben Ich hab folgendes Problem: Ich habe Labelfelder mit einer Hintergrundfarbe versehen über einen Zufallsgenerator. Ich weiß aber nicht,wie ich die 6 felder für einen Würfel halten kann ( nur die anderen Würfel sollen weiter gewürfelt werden).!?!:confused: Muss ich meine Zählschleife an anderer Stelle starten? :confused: Wie hebe ich den Rnd-Befehl wieder auf,bzw stoppe einen bestimmten Würfel? Hatte die Idee, diese mit Optionbuttons zu halten, konnte aber die Optionbuttion in dem Frame nicht ansprechen (hab die Idee mit den Buttons wegen meiner Ansprech-Probs erstmal auf Eis gelegt *snief*) ...das ist ein Ausschnitt meines codes::mod: Private Sub btnWuerfeln_Click() 'Deklaration' Dim Zaehler As Integer lblZahl1 = Int((6 * Rnd) + 1) lblZahl2 = Int((6 * Rnd) + 1) lblZahl3 = Int((6 * Rnd) + 1) lblZahl4 = Int((6 * Rnd) + 1) lblZahl5 = Int((6 * Rnd) + 1) lblZahl6 = Int((6 * Rnd) + 1) For Zaehler = 1 To 3 'so sieht dann die Würfel- 1 aus' If Me.lblZahl1.Caption = 1 Then Me.lbl1Wuerfel1.BackColor = &H0& Me.lbl1Wuerfel2.BackColor = &H8000000F Me.lbl1Wuerfel3.BackColor = &H8000000F Me.lbl1Wuerfel4.BackColor = &H8000000F Me.lbl1Wuerfel5.BackColor = &H8000000F Me.lbl1Wuerfel6.BackColor = &H8000000F und so geht das dann für die 2,3...usw.. Bitte dringends um HÜLFÄÄÄÄÄÄÄÄÄ!!! Zitieren
Whatever Geschrieben 12. Januar 2006 Geschrieben 12. Januar 2006 Naja, ich kann zwar kein VB, aber ich würde es so lösen: Ein Array mit 6 Plätzen. Auf jedem Platz ist ein Array mit 2 Plätzen gespeichert, in dem wiederum ja ein Button und eine zugehörige Checkbox liegen. Wenn man würfelt wird das Array durchlaufen, geprüft ob die Checkbox aktiviert ist: Wenn ja wird der nächste Würfel geprüft, ansonsten wird der Würfel neu gesetzt. Zitieren
Crashyy Geschrieben 12. Januar 2006 Autor Geschrieben 12. Januar 2006 Naja, ich kann zwar kein VB, aber ich würde es so lösen: Ein Array mit 6 Plätzen. Auf jedem Platz ist ein Array mit 2 Plätzen gespeichert, in dem wiederum ja ein Button und eine zugehörige Checkbox liegen. Wenn man würfelt wird das Array durchlaufen, geprüft ob die Checkbox aktiviert ist: Wenn ja wird der nächste Würfel geprüft, ansonsten wird der Würfel neu gesetzt. mhhhhhh an Checkboxen kombiniert mit optionsbuttons hab ich noch garnicht gedacht....*nacdenk* Zitieren
Crashyy Geschrieben 13. Januar 2006 Autor Geschrieben 13. Januar 2006 ich hab jetzt folgendes gecodet: If Me.cboZahlHalten1.Value = False Then Me.lbl1Wuerfel1 = Enabled Me.lbl1Wuerfel2 = Enabled Me.lbl1Wuerfel3 = Enabled Me.lbl1Wuerfel4 = Enabled Me.lbl1Wuerfel5 = Enabled Me.lbl1Wuerfel6 = Enabled Else End If Aber die 6 Labelfelder erhalten weiterhin einen Wert..och menno Wer kann mir helfen? Zitieren
need-some-blood Geschrieben 17. Januar 2006 Geschrieben 17. Januar 2006 In Delphi würde ich es so machen. Endweder mit zur Entwurfszeit implementierten Objekten. Dann musst du aber sechs mal den gleichen Code schreiben // Für das erste Label randomize; if checkbox1.Checked then begin j:=random(6); if J=0 then J:=1; case J of 1: label1.Color:= clblack; 2: label1.Color:= clwhite; 3: label1.Color:= clred; 4: label1.Color:= clgreen; 5: label1.Color:= clyellow; 6: label1.Color:= clskyblue; end; label1.caption:= inttostr(j); end; Oder mit zur Laufzeit erstellten Objekten. Dann gilt der gleiche Code für alle Objekte randomize; For i:=0 to 5 do begin if checkboxes[i].checked then begin //dynamische checkboxen j:=random(6); if J=0 then J:=1; case J of 1: labels[i].Color:= clblack; //dynamsiche Labels 2: labels[i].Color:= clwhite; 3: labels[i].Color:= clred; 4: labels[i].Color:= clgreen; 5: labels[i].Color:= clyellow; 6: labels[i].Color:= clskyblue; end; labels[i].caption:= inttostr(j); end; end; [/PHP] Der Code ist nicht getestet. MVG need-some-blood Zitieren
Crashyy Geschrieben 18. Januar 2006 Autor Geschrieben 18. Januar 2006 In Delphi würde ich es so machen. Endweder mit zur Entwurfszeit implementierten Objekten. Dann musst du aber sechs mal den gleichen Code schreiben // Für das erste Label randomize; if checkbox1.Checked then begin j:=random(6); if J=0 then J:=1; case J of 1: label1.Color:= clblack; 2: label1.Color:= clwhite; 3: label1.Color:= clred; 4: label1.Color:= clgreen; 5: label1.Color:= clyellow; 6: label1.Color:= clskyblue; end; label1.caption:= inttostr(j); end; Oder mit zur Laufzeit erstellten Objekten. Dann gilt der gleiche Code für alle Objekte randomize; For i:=0 to 5 do begin if checkboxes[i].checked then begin //dynamische checkboxen j:=random(6); if J=0 then J:=1; case J of 1: labels[i].Color:= clblack; //dynamsiche Labels 2: labels[i].Color:= clwhite; 3: labels[i].Color:= clred; 4: labels[i].Color:= clgreen; 5: labels[i].Color:= clyellow; 6: labels[i].Color:= clskyblue; end; labels[i].caption:= inttostr(j); end; end; [/PHP] Der Code ist nicht getestet. MVG need-some-blood Danke need-some-blood, aber von delphi hab ich nun wirklich garkeinen Schimmer.... Ich werd weiterprobieren und darauf hoffen, daß mir jemand einen Tipp geben kann, der mir weiterhilft ... In der VBA-Hilfe hab ich nichts finden können, vielleicht musds ich ja nur wissen WONACH ich suchen muss ... *finger weiter wund progge* Zitieren
-roTekuGeL- Geschrieben 19. Januar 2006 Geschrieben 19. Januar 2006 um das nochmal festzuhalten: das hier ist ein VBA problem und ist damit im falschen forum... zum thema: crashyy, kannst du das ganze nicht auch in VB6 machen? da wäre alles viel einfacher weil man mehrere objekte haben kann aber die dann über nen index anspricht, damit kann man das coding auf 1/6 reduzieren ansonsten wie schon gesagt das label bei halten deaktivieren und beim neuwürfeln erst abfragen ob das jeweilige label aktiv ist... Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.