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ÄÄÄÄÄÄÄÄÄ!!!
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.
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*
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?
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
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*
-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...
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden