Moin Leute,
ich schaff es immer wieder, dass mein Code in "Form1" zu chaotisch aussieht. Hier ein Select Case dort eine Ansammlung von Button1.click und so weiter.
Mein Gehirn sagt füg ein Modul hinzu und lager das Zeug aus.
Ich weiß, dass ich statt dessen Klassen benutzen soll, irgendwie komm ich in das Denken nicht rein.
Konkret bin ich dabei einen Audio-Equalizer mit Bass.dll zu erzeugen und diesen über einen Drehpoti am Arduino zu steuern.
Da kommt alles in "Form1" zusammen:
file dialoge (.mp3 Datei auswählen)
Bass.dll Inizalisierung
Port Scan für Serial Com
etc.
Wie lerne ich das besser zu sortieren. Wie habt Ihr das gelernt? In meinen Klassen wird irgendwie immer alles Public deklariert und diese ganzen Button1.click Subs verschwinden auch nicht.
z.B. mal einige Code Blöcke die bei mir in "Form1" stehen
Spoiler anzeigen
ich schaff es immer wieder, dass mein Code in "Form1" zu chaotisch aussieht. Hier ein Select Case dort eine Ansammlung von Button1.click und so weiter.
Mein Gehirn sagt füg ein Modul hinzu und lager das Zeug aus.
Ich weiß, dass ich statt dessen Klassen benutzen soll, irgendwie komm ich in das Denken nicht rein.
Konkret bin ich dabei einen Audio-Equalizer mit Bass.dll zu erzeugen und diesen über einen Drehpoti am Arduino zu steuern.
Da kommt alles in "Form1" zusammen:
file dialoge (.mp3 Datei auswählen)
Bass.dll Inizalisierung
Port Scan für Serial Com
etc.
Wie lerne ich das besser zu sortieren. Wie habt Ihr das gelernt? In meinen Klassen wird irgendwie immer alles Public deklariert und diese ganzen Button1.click Subs verschwinden auch nicht.
z.B. mal einige Code Blöcke die bei mir in "Form1" stehen
VB.NET-Quellcode
- 'einfach ein paar Zeilen (nicht vollständig)
- Dim SoundFilePath_1 As String = "1.mp3"
- Public fcenter0 As Integer = 310
- Public fcenter1 As Integer = 850
- Public fcenter2 As Integer = 1500
- Private Sub BtFile1_Click(sender As Object, e As EventArgs) Handles BtFile1.Click
- Using openFileDialog1 As New OpenFileDialog()
- openFileDialog1.InitialDirectory = ""
- openFileDialog1.Filter = "Mp3 Dateien (*.mp3)|*.mp3|alle Dateien (*.*)|*.*"
- If openFileDialog1.ShowDialog() = DialogResult.OK Then
- SoundFilePath_1 = openFileDialog1.FileName
- End If
- End Using
- TxbFile1.Text = SoundFilePath_1
- 'Process.Start(Pfad1) ' wuerde mp3 player windows mit dem pfad oeffnen
- End Sub
- Private Sub TrkVol2_Scroll(sender As Object, e As EventArgs) Handles TrkVol2.Scroll
- 'Abfangen wenn keine Datei spielt
- Dim VolumeSlider2 As Single
- VolumeSlider2 = Convert.ToSingle(TrkVol2.Value / 100)
- Bass.BASS_ChannelSetAttribute(chan2, BASSAttribute.BASS_ATTRIB_VOL, VolumeSlider2)
- End Sub
- Private Sub TrackBar_Scroll(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TrackBar1.Scroll, TrackBar2.Scroll, TrackBar3.Scroll, TrackBar4.Scroll, TrackBar5.Scroll, TrackBar6.Scroll
- SetParametersEQ(fx(0), fcenter0, TrackBar1.Value - 7) 'effect, Centerfrequency, Gain
- SetParametersEQ(fx(1), fcenter1, TrackBar2.Value - 7) 'fcenter(0...n)
- SetParametersEQ(fx(2), fcenter2, TrackBar3.Value - 7) 'fcenter(0...n)
- SetParametersEQ(fx(3), fcenter3, TrackBar4.Value - 7) 'fcenter(0...n)
- SetParametersEQ(fx(4), fcenter4, TrackBar5.Value - 7) 'fcenter(0...n)
- SetParametersEQ(fx(5), fcenter5, TrackBar6.Value - 7) 'fcenter(0...n)
- End Sub
- Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
- Me.CenterToParent()
- BtnCon.Enabled = False
- BtnCon.BringToFront()
- BtnDiscon.Enabled = False
- BtnDiscon.SendToBack()
- CmbBaud.SelectedItem = "9600"
- 'serial end
- If IO.File.Exists(SoundFilePath_1) Then
- TxbFile1.Text = SoundFilePath_1
- End If
- If IO.File.Exists(SoundFilePath_2) Then
- TxbFile2.Text = SoundFilePath_2
- End If
- Bass.BASS_SetConfig(BASSConfig.BASS_CONFIG_GVOL_STREAM, TrkGvol.Value)
- 'Label für EQ setzen
- LbEq1.Text = Convert.ToString(fcenter0) & " Hz"
- LbEq2.Text = Convert.ToString(fcenter1) & " Hz"
- LbEq3.Text = Convert.ToString(fcenter2) & " Hz"
- LbEq4.Text = Convert.ToString(fcenter3) & " Hz"
- LbEq5.Text = Convert.ToString(fcenter4) & " Hz"
- LbEq6.Text = Convert.ToString(fcenter5) & " Hz"
- End Sub
- Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
- Try
- Dim lastValue, temp As Integer
- Dim i As Single = CSng(SerialPort1.ReadExisting)
- 'LblPotentiometer.Text = "Potentiometer Value : " & i.ToString
- If lastValue <> CInt(i) Then
- lastValue = CInt(i)
- temp = CInt(lastValue / 2.55)
- LblPotentiometer.Text = "Potentiometer Value : " & temp
- TrkVol1.Value = temp
- 'siehe TrkVol1_ValueChanged ca 10 zeilen tiefer
- End If
- Catch ex As Exception
- 'stays empty if one attamp fails dont worry the next will be okay
- End Try
- End Sub
codewars.com Rank: 4 kyu