Hä?Amelie schrieb:
Wie kann ein
Boolean
ein "Taktgeber" sein??bzw was verstehst du unter "Taktgeber" ?
In meiner welt kann zB ein
Timer
ein "Taktgeber" sein, aber niemals ein Boolean
Es gibt 62 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.
Hä?Amelie schrieb:
Boolean
ein "Taktgeber" sein??Timer
ein "Taktgeber" sein, aber niemals ein Boolean
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Amelie“ ()
ReaktiviereStartButton
, BeendeProgramm
, LadeDateiRunter
. Aber settings
und on_off
sind … komisch unkonkreton_off
namens switcher
wird überhaupt nicht verwendet, also hinfort damitbtn_switch
ist ein Boolean
mit komischem Namen, da dieser Name nicht erkennen lässt, wofür diese Variable sein sollList(Of Panel)
zusammen und Du kannst sie sogar per Index ansprechen.Timer1.Dispose()
? Was soll das bewirken? Dispose
ist grundsätzlich ein diese-Komponente-wird-nun-entsorgt-Befehl!List(Of Panel)
zusammen und Du kannst sie sogar per Index ansprechen.Dim panels() As Integer = New Integer() {1, 2, 3, 4, 5, 6}
begonnen. Brachte mir kein erfolg. Jetzt lese ich gerade über ListOf.. Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
i 1
i
. Warum mit i = i + 1
da noch nachtreten und Dich selber ins Verderben stürzen? Hinfort damit. i = i + 1
deshalb, weil das erste i
aus der schleife ja 0
ist und das erste Panel ja Panel1
i = i + 1
erhöhst Du aber mit jedem Schleifendurchgang i
. Erster Durchgang: i = 1, 2. Durchgang i = 3, dann i = 5, i = 7, …For i As Integer = 1 To ende
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „VaporiZed“ ()
'oder: zaehler += If(backward, -1, 1)
Das verstehe ich nicht. Panels.ForEach(Sub(x) x.
Die (Sub(x) .. ist die ListOf???IF Abfragen
gemacht habe?Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „Amelie“ ()
Panels.ForEach(Sub(Halleluja) Halleluja.BackColor = Color.Maroon)
, würde keine 804 angezeigt werden, sondern gar nix. Wie Du die Variable nennst, ist egal.Panels.ForEach(Sub(x) x.BackColor = Color.Maroon)
Panels.ForEach(Sub(Panel) Panel.BackColor = Color.Maroon)
Panels.ForEach(Sub(Halleluja) Halleluja.BackColor = Color.Maroon)
.BackColor =
x
schreibt (ich bevorzuge es einfach) und außerhalb dieser Zeile nen Haltepunkt setzt und versucht den Wert von x anzeigen zu lassen, indem man mit der Maus draufgeht, versucht der Compiler das x zu interpretieren und einen Wert anzuzeigen, was aber total Blödsinn ist, weil das eigentliche x da gar nicht mehr existiert. Aber der Compiler findet ein x. Nämlich welches? Das Form hat eine X-Variable: den linken Fensterabstand zum Bildschirmrand. Der beträgt bei Dir 804 Pixel. Das hat aber inhaltlich überhaupt nix mit der genannten Zeile zu tun. Daher zurecht für Dich verwirrend.Panels
her, die eine Gruppe von Panel
s ist, und führe diesen ForEach-Kram durch. Das heißt: Führe für jedes Element in dieser Panelmenge eine bestimmte Sache aus, nämlich das, was nach ForEach
in Klammern steht.« Damit man nun sagen kann, was genau mit jedem Panel geschehen soll, gibt es diese Variable x
oder Panel
oder Halleluja
oder wie Du sie nennen willst. Mit der greifst Du auf das Einzelpanel zu und kannst sagen, was damit geschehen soll, hier also: Setzen der BackColor
. Wie kannst Du unterscheiden, um welches Panel es geht: Gar nicht. Darum geht es ja auch. Der Compiler soll es ja mit allen Panels in der Gruppe tun. Daher ist eine Unterscheidung gar nicht notwendig. Es soll einfach im gesamten heißen: Compiler, führe für jedes Element in der Gruppe Panels
eine Aktion aus, nämlich: setze "für jedes einzelne" (ForEach) die BackColor
.zaehler += If(backward, -1, 1)
: »Addiere zu dem Wert von zaehler
etwas, nämlich: Wenn (If
) backward
True
ist (Vergleiche von Boolean
s mit True
sind redundant, von daher brauch ich sogar nur backward
an der Stelle zu schreiben), Dann addiere -1
, Sonst addiere 1.«Dim MeinPlanFürHeute = If(TemperaturInGradCelsius > 25, BadenGehen, BuchLesen)
Ergebnis = If(Bedingung, ErgebniswertWennBedingungWahrIst, ErgebniswertWennBedingungFalschIst)
zaehler
-Index momentan "dran ist" auf Red. Ich mach es mir also leicht und versuche nicht zu ermitteln, welches Panel vorher Red war, damit ich es auf Maroon setzen kann, ich setz einfach alle auf Maroon.zaehler
. Mehr braucht es nicht. Und ich kann die Panels umbenennen wie ich will. Das kannst Du nicht, weil Du mit Me.Controls("Panel" & y)
immer an die Namen "appellierst". Benennst Du ein Panel um, crasht Dein Code an solch einer Stelle. Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „VaporiZed“ ()
Panels.ForEach(Sub(x) x.BackColor = Color.Maroon)
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Amelie“ ()
System.Windows.Forms.Timer
(den man im Designer auf's Form zieht), sondern mit einem System.Timers.Timer
. Nuja.AddHandler
muss es auch ein RemoveHandler
geben. Bevor Du also den Timer disposed, schreibe: RemoveHandler LEDTimer.Elapsed, AddressOf LEDTimer_Tick
LEDTimer_Tick
-Methode führst Du die Variable ledNr
ein, die exakt das gleiche wie zaehler
ist. Entsorgst das lokale ledNr
und benutzt entweder nur zaehler
oder benenne in der ganzen Klasse zaehler
in ledNr
um.zaehler = zaehler - 1
-> zaehler -= 1
zaehler = zaehler + 1
-> zaehler += 1
start
bei 0 zu belassen, entsorge start
.createRandomColor()
und reset_leds()
sind passende Sub-Namen, da sie konkrete Anweisungen nennen. ListofLEDs()
und ListofColors()
erfüllen dieses Kriterium nicht.Dim Random As New Random
aus createRandomColor()
rausholen, ansonsten wird überflüssigerweise bei jeder neuen Farbgebung ein neuer Zufallsgenerator erzeugt.Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „VaporiZed“ ()