Visal Basic Zufällig ziwschen A und B oder A und D usw

Diskutiere Visal Basic Zufällig ziwschen A und B oder A und D usw im Programmierung Forum im Bereich Software Forum; Hallo Erstmal ich habe 4 Checkboxen eine A eine B , Eine C und Eine D ich möchte nun das wenn checkboxen A und B markiert sind eine von beiden...
B

Blacktronics

Threadstarter
Mitglied seit
10.04.2008
Beiträge
175
Alter
24
Hallo Erstmal

ich habe 4 Checkboxen eine A eine B , Eine C und Eine D
ich möchte nun das wenn checkboxen A und B markiert sind eine von beiden zufällig auswählt und der Buchstabe in ein Label Geschrieben wird sind nun alle vier ausgewählt wird eine von den Vieren zufällig ausgewählt und in das label geschrieben , sind beispielsweise C und D ausgewählt soll eine der beiden rausgesucht werden und in das label geschrieben werden

Eine idee das unkompliziert zu machen? die Eine möglichkeit wäre ja Alle möglichkeiten in If - Befehle zu packen und dann eben in den if befehlen zufällig eine nummer wählen und den Boxen A, B, C und D die nummern 1-4 zuweisen. Nur das ist etwas umständlich, da es bei 4 Textfeldern 24 Möglichkeiten gibt
 
A

AlienJoker

Gast
Du kannst die Dinger mit

for each objControl in "MeinFormular".controls durchlaufen. Aber für dein Problem ist die statische variante eigentllich ok.

Alternativ kannst du auch ne versteckte Textbox beim anklicken von "A" mit dem string "A" füllen etc und das dann entsprechend per zufall auf einen Buchstaben kürzen.
 
B

Blacktronics

Threadstarter
Mitglied seit
10.04.2008
Beiträge
175
Alter
24
Du kannst die Dinger mit

for each objControl in "MeinFormular".controls durchlaufen. Aber für dein Problem ist die statische variante eigentllich ok.

Alternativ kannst du auch ne versteckte Textbox beim anklicken von "A" mit dem string "A" füllen etc und das dann entsprechend per zufall auf einen Buchstaben kürzen.
Danke aber ich versteh leider nur
Bahnhof , die methode mit dem Textbox mit string A füllen klappt so nicht Es sind ja checkboxen.. und wenn A und B angekreuzt sind soll da per zufall eine von ausgewählt werden und die ausgewählte in ein label geschrieben werden sind jetzt aber A B und D angekreutzt soll da eine per zufall rausgesucht werden und in ein label geschrieben werden..
-------------------------------------------Schrott------------------------------------------------
mir kommt grade die idee wenn A angekreutzt wird das in eine versteckte liste schreiben und wenn es abgewählt wird wieder herrausnehmen das selbe mit den anderen und dann wird aus der liste eines zufällig ausgewählt nur , wieder keine idee wie ich das umsetzen soll In liste schreiben okay aber da eines per zufall wählen und dann in ein label schreiben und aus der liste entfernen ?! ich hab keine ahnung wie ich des machen soll
--------------------------------------------------------------------------------------------------
Mir ist gerade wieder eine idee gegkommen diese sieht so aus das letzt problem ist nun das ich wenn der befehl Else ausgeführt wird weil nichts zutrifft der ganze block automatisch wiederholt wird , so oft bis was passt
Code:
Private Sub Command1_Click()

Label12.Caption = Rnd * (Val(1) - Val(5)) + Val(5)
Label12.Caption = Round(Val(Label12.Caption), 1)

If Val(Label12.Caption) = Val(1) And Check1.Value = 1 Then
Label3.Caption = "A"

ElseIf Val(Label12.Caption) = Val(2) And Check2.Value = 1 Then
Label3.Caption = "B"
ElseIf Val(Label12.Caption) = Val(3) And Check3.Value = 1 Then
Label3.Caption = "C"
ElseIf Val(Label12.Caption) = Val(4) And Check4.Value = 1 Then
Label3.Caption = "D"

Else


End If
End Sub
 
Zuletzt bearbeitet:
A

AlienJoker

Gast
also, meine idee war: du machst ein textfeld. wenn "A" angekreuzt wird, schreibst du A in das feld. beim abhakeln muss es wieder entfernt werden. dann ermittelst du die länge des inhaltes des textfeldes und ermittelst eine Zufallszahl zwischen 1 und der Länge und das Zeichen schneidest du dann aus und präsentierst es als ergebnis.
 
B

Blacktronics

Threadstarter
Mitglied seit
10.04.2008
Beiträge
175
Alter
24
naja das geht nicht da , Wenn A B und C angekreuzt sind dann ist es simpel länge ermitteln und A = 1 B = 2 und C = 3 aber ist zb A B und D angekreuzt sind es drei buchstaben und D hat den wert 4 also kommt D nie dran
 
M

ModellbahnerTT

Mitglied seit
20.04.2005
Beiträge
3.778
Alter
39
@Blacktronics Das geht schon z.B. wenn du 1,2,4,8 als Zahlen vergibst.
 
B

Blacktronics

Threadstarter
Mitglied seit
10.04.2008
Beiträge
175
Alter
24
mhh wie meinst du das mit den zahlen 1,2,4,8 ? zu dem code den ich oben gepostet habe .. was muss ich in den Else Block machen , um das zu wiederholen was darüber steht ?bis eben eine bedingung gefunden wird , die auf beides zutrifft
 
M

ModellbahnerTT

Mitglied seit
20.04.2005
Beiträge
3.778
Alter
39
Ganz einfach den wenn A =1, B=2, C=3 und D=4 sind kannst du diese Zahlen in einer Variablen erfassen und dann mit if oder case auswerten.
 
A

AlienJoker

Gast
len(textbox) liefert dir die Läbge doch freihaus.
 
B

Blacktronics

Threadstarter
Mitglied seit
10.04.2008
Beiträge
175
Alter
24
ich glaube ich stelle mich grad dumm an ich verstehe einfach nicht was du damit meinst ModellbahnerTT kannst du mir ein beispiel code posten ? sorry

gibt es in visual basic eine funktion mit der man am anfang des skriptes ein stückchen code festlegen kann den man später mit einem befehl aufrufen kann ?
 
M

ModellbahnerTT

Mitglied seit
20.04.2005
Beiträge
3.778
Alter
39
Hier mal ein Codebeispiel aus Java:


Code:
boolean A = false;
int Auswertung = 0;

void klickA()
{
if(A==false)
{
A=true;
Auswertung++;
}else
{
A=false;
Auswertung--;
}
}

VerarbeitungAw()
{
if(Auswertung==1)
{
// hier Code rein wenn nur A gewählt
}elseif(Auswertung==2)
{
// hier Code rein wenn nur B gewählt
}elseif(Auswertung==3)
{
// hier Code rein wenn nur A und B gewählt C und D nicht gewählt
}
}
 
B

Blacktronics

Threadstarter
Mitglied seit
10.04.2008
Beiträge
175
Alter
24
jetzt verstehe ich glaube was du meinst , nein das geht nicht es gibt zuviele möglichkeiten , 48 glaube ? steht in einem beitrag auf seite eins von mir .. dann müsste ich ja 48 verschiedene auswertungen machen also wenn A u B nur A nur B nur C nur D A,B,C und D nur C und D nur A und D usw...

das ist zu umständlich , zu dem von mir gepostetem code .. Gibt es da nun eine möglichkeit ? Also das wenn Else ausgefürt wird alles von alleine wiederholt wird?
 
M

ModellbahnerTT

Mitglied seit
20.04.2005
Beiträge
3.778
Alter
39
Sowas geht glaube ich mit case wenn ich dich richtig verstanden habe.
 
R

rs90

Gast
Wie wäre es hier mit:
Code:
Public Class Form1
    Dim Zeichen As New List(Of String)

    Private Sub A_CheckBox_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles A_CheckBox.CheckedChanged
        If A_CheckBox.Checked Then Zeichen.Add("A") Else Zeichen.Remove("A")
        Ergebnislabel.Text = ReturnRandomValue()
    End Sub

    Private Sub B_CheckBox_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles B_CheckBox.CheckedChanged
        If B_CheckBox.Checked Then Zeichen.Add("B") Else Zeichen.Remove("B")
        Ergebnislabel.Text = ReturnRandomValue()
    End Sub

    Private Sub C_CheckBox_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles C_CheckBox.CheckedChanged
        If C_CheckBox.Checked Then Zeichen.Add("C") Else Zeichen.Remove("C")
        Ergebnislabel.Text = ReturnRandomValue()
    End Sub

    Private Sub D_CheckBox_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles D_CheckBox.CheckedChanged
        If D_CheckBox.Checked Then Zeichen.Add("D") Else Zeichen.Remove("D")
        Ergebnislabel.Text = ReturnRandomValue()
    End Sub

    Private Function ReturnRandomValue()
        Dim Rueckgabe As String = ""
        Dim r As New Random
        Dim Item As Integer = r.Next(0, Zeichen.Count)

        If Zeichen.Count > 0 Then Rueckgabe = Zeichen.Item(Item)

        Return Rueckgabe
    End Function
End Class
Sollte eigentlich das sein was du möchtest, oder? :)
 
B

Blacktronics

Threadstarter
Mitglied seit
10.04.2008
Beiträge
175
Alter
24
Ich hab das so gelöst Ein neuen Sub Erstellt , und lasse alle bedingugen prüfen und wenn keine passt wird die funktion aufgerufen und diese generiert dann nummern neu und prüft erneut wenn es dann wieder nicht klappt kommt eben noch ein versuch
 
R

rs90

Gast
Das ist doch ziemlich umständlich. o.O.
Hast du meine mal probiert? Da wird ja immer ein Zufallswert zurück gegeben von den gewählten CheckBoxen.
 
B

Blacktronics

Threadstarter
Mitglied seit
10.04.2008
Beiträge
175
Alter
24
Deine Versteh ich nich ?:D

Sieht bei mir in etwa so aus

PrivateSub NoMatch()
label1.caption = Mach mir zufällig ne nummer zwischen 0 und 3
if Label1.Caption = 1 And Label2.Caption = A Then
code
ElseIf Label1.Caption = 2 And Label2.Caption = B Then
code
Else
call NoMatch()



------------------------------------------
PrivateSub Command1_Click()
label1.caption = Mach mir zufällig ne nummer zwischen 0 und 3
if Label1.Caption = 1 And Label2.Caption = A Then
code
ElseIf Label1.Caption = 2 And Label2.Caption = B Then
code
Else
call NoMatch()

Edit; Habe Schonwieder ein neues , Schwierigeres Problem undzwar HIER
 
Thema:

Visal Basic Zufällig ziwschen A und B oder A und D usw

Visal Basic Zufällig ziwschen A und B oder A und D usw - Ähnliche Themen

  • Windows 10 basic -> pro

    Windows 10 basic -> pro: Da es das erste mal ist das ich eine Frage in so einem Forum stelle werde ich es einfach kurz und schmerzlos durchziehen und wahrscheinlich nicht...
  • KB4512508 für Windows 10 (1903) führt zu massiven Problemen in Visual Basic / Access

    KB4512508 für Windows 10 (1903) führt zu massiven Problemen in Visual Basic / Access: Durch das Windows-Update KB4512509 kommt es in einer von mir programmierten Access-Datenbank mit einer größeren Zahl von Nutzern (NGOs) zu...
  • Microsoft Basic Display Adapter

    Microsoft Basic Display Adapter: Hallo Community, Wahrscheinlich sind inzwischen alle Probleme mit dem Microsoft Basic Display Adapter bekannt, leider konnte ich nur zu meinem...
  • Microsoft Visual Basic for Applications

    Microsoft Visual Basic for Applications: Liebe Community, ich bräuchte eure Hilfe. Ich arbeite mit einer Leistungsdatenbank mit Microsoft Access, die funktioniert auf einem anderen...
  • Installation Toshiba SCSI Disk Device (Canvas Basic) schlug fehl

    Installation Toshiba SCSI Disk Device (Canvas Basic) schlug fehl: Ich benutze W 10 Pro, 64, die Installation ist neu und der PC funktioniert und reagiert einwandfrei. Ich habe jetzt allerdings alle Tricks und...
  • Ähnliche Themen

    Oben