[VB6] Prioritätenvergabe / Ranking / Reihenfolge

Jacka

Erfahrenes Mitglied
Hallo!

Ich möchte gerne meinen Proben die Prioritäten von 1-6 zuweisen. (siehe Bild)

Bei Doppelklick auf die linken Textfelder soll also nun immer die nächst höhere freie Zahl
eingetragen werden. Bei erneutem Doppelklick soll die Zahl wieder gelöscht werden.
Jetzt müsste man jedes Mal wenn man in das Textfeld klickt erst einmal die anderen Zahlen auslesen,
damit man weiß welche nun die nächste frei Zahl wäre oder? :confused:

Hat jemand einen Tipp, wie man das schnell umsetzen kann, ohne meterlange Schleifen erstellen zu müssen?

Besten Dank für eure Hilfe!

Grüße,
Jacka
 

Anhänge

  • 24311attachment.gif
    24311attachment.gif
    3,7 KB · Aufrufe: 11
Hallo Jacka,

also bei 6 verschiedenen Prioritäten sind meterlange Schleifen schwer vorstellbar.
Bei der kleinen Menge würde ich die InStr-Funktion verwenden. Wenn deine Prioritäten in Feldern mit dem Namen „txtPrio(Index)“, Index 0 bis 5, stehen müsste es so funtionieren:

Code:
Option Explicit
  Dim sPrio(5) As String * 1 ' Prioritäten

Private Sub Form_Load()
  Dim i As Integer
  ' für Test füllen
  For i = 0 To 5
    sPrio(i) = Chr(49 + i)
    txtPrio(i).Text = sPrio(i)
  Next
End Sub

Private Sub txtName_DblClick(Index As Integer)
  Dim i As Integer
  Dim sTmpPrio As String * 1
  Dim sPrioTest As String
  If sPrio(Index) <> "0" Then
    sPrio(Index) = "0"
    txtPrio(Index).Text = ""
  Else
    ' Teststring bilden
    sPrioTest = ""
    For i = 0 To 5
      If sPrio(i) <> "0" Then
        sPrioTest = sPrioTest & sPrio(i)
      End If
    Next
    ' kleinste nicht vorhandene Priorität suchen
    For i = 0 To 5
      If InStr(1, sPrioTest, Chr(49 + i)) = 0 Then  ' kleinste fehlende gefunden
        sPrio(Index) = Chr(49 + i)
        Exit For
      End If
    Next
    txtPrio(Index).Text = Chr(49 + i)
  End If
End Sub
 
Hallo!

Ich wollte mich noch für deine Hilfe bedanken!
Es funktioniert sehr gut! Danke!

Grüße,
Jacka
 
Zurück