Schönen guten Tag.
Ich habe erst vor kurzem begonnen mich mit Xojo zu beschäftigen und bitte somit um Verständis.
Ausgangssituation:
Ich habe zur Übung mit einer Schulden/Guthaben Liste angefangen wo man einen Namen, Betrag eingeben kann und mit dem AddButton zu der Listbox hinzufügen kann. Das ganze funktioniert soweit schon.
Ich will erreichen das sich die Farbe von jedem Betrag in der Listbox anpasst, je nachdem ob der Betrag positiv oder negativ ist.(positiv= grün) (negativ=rot)
Ich habe eine Funktion integriert die den Namen im Textfeld mit dem Namen in der Listbox vergleicht und wenn dieser schon vorhanden ist soll der Name nicht ein zweites mal angelegt werden sondern der neu eingegebene Betrag einfach zu dem bei dem vorhanden Namen addiert/subtrahiert werden.(Abhängig von den Ration Buttons).
Jetzt mein Problem:
Wenn ich nur neue Namen und Beträge hinzufüge wird die Farbe richtig angezeigt aber sobald ich bei einem vorhanden Namen vom positiven ins negative wechsel verfärben sich gleich alle Zeilen in der Listbox Rot oder Grün.
Ich versteh echt nicht woran das liegen könnte.
Add Button:
If CheckFilledOut = True And NameExist = False Then
Listbox_MoneyList.AddRow (txt_Freund.text,txt_Betrag.text)
Elseif CheckFilledOut = True And NameExist = True Then
Dim BetragFreundVorhanden As Integer = CDbl(Listbox_MoneyList.Cell(WhereNameExist, 1))
Dim BetragAlsZahl As Integer = CDbl(txt_Betrag.Text)
Dim BetragAlsString As String
BetragFreundVorhanden = BetragFreundVorhanden +BetragAlsZahl
BetragAlsString = str(BetragFreundVorhanden)
Listbox_MoneyList.Cell(WhereNameExist, 1)= BetragAlsString
End If
Listbox CellPaint:
[code] for i As Integer= 0 To myWindow.Listbox_MoneyList.ListCount - 1
if column=1 And CDbl(myWindow.Listbox_MoneyList.Cell(i, 1)) > 0 then
g.ForeColor = &c00FF0000
Elseif column =1 And CDbl(myWindow.Listbox_MoneyList.Cell(i, 1)) < 0 then
g.ForeColor = &cFF000000
end If
next
[/code]
Methoden:
CheckFilledOut
[code] Dim Freund As String = txt_Freund.text
Dim RadioSet As Boolean = False
Dim AmountSet As Boolean = False
Dim NameSet As Boolean = False
Dim Betrag As Integer = CDbl(txt_Betrag.text)
// Überprüfung RadioButton gesetzt
if RadioButton_Guthaben.Value = False And RadioButton_Schulden.Value = False then
MsgBox “Es wurde nicht ausgewählt ob Schulden oder Guthaben verbucht werden soll.”
else
RadioSet = True
end if
// Überprüfung ob Betrag angegeben
if Betrag = 0 Then
MsgBox “Kein Betrag angegeben.”
else
AmountSet = True
end if
// Überprüfung Name ob angegeben
if Freund = “” Then
MsgBox “Kein Name angegeben”
else
NameSet = True
end if
// Überprüfung ob Name vorhanden
// Wenn alles zutrifft weiter
if RadioSet and AmountSet and NameSet = True Then
Return True
end If[/code]
NameExists
// LOOP THROUGH THE Listbox
for i As Integer= myWindow.Listbox_MoneyList.ListCount - 1 DownTo 0
// IF NEW NAME ALREADY EXISTS
if myWindow.Listbox_MoneyList.Cell(i, 0) = txt_Freund.text then
// DISPLAY THE ERROR MSGBOX
Return True
Exit For i
end if
next
WhereNameExists
[code] // LOOP THROUGH THE Listbox
for i As Integer= myWindow.Listbox_MoneyList.ListCount - 1 DownTo 0
if myWindow.Listbox_MoneyList.Cell(i, 0) = txt_Freund.text then
Return i
Exit For i
end if
next
[/code]
Vielleicht hat von euch jemand eine Idee. Danke schon mal im voraus.