Hallo Leute,
Ich habe ein Grid in dem mehere Einträge angelegt werden. Wenn diese Einträge dann gespeichert werden wird vorher einiges überprüft darunter auch ob sich leere Zeilen in diesem Grid befinden wenn ja dann werden diese gelöscht.
Ich habe bereits eine kleine Funktion vor längerer Zeit geschrieben doch der Fehler im Code ist offensichtlich.. Es wird nur eine einzige Zeile gelöscht und danach nichts mehr da ja lCounter und/oder lRowCount bereits über der Anzahl der Zeilen sind.
Kann mir jemand sagen wie ich dann die Variablen bzw. die Schleife anpassen muss danmit er wirklich alle leeren Zeile herauslöscht? Hab grad die totale Denkblokade.. -.-
Hier mein Code:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29:
| ... var lCounter: integer; lRowCount: integer; begin result := false; lCounter := 0; lRowCount := dxProjectGrid.RowCount; try for lCounter := 0 to lRowCount - 1 do begin if Assigned(dxProjectGrid.Items[lCounter]) then begin if (dxProjectGrid.Items[lCounter].Values[0] = '') and (dxProjectGrid.Items[lCounter].Values[1] = '') then begin dxProjectGrid.Items[lCounter].Destroy; end; end; end; result := true; lCounter := 0; except on E:Exception do begin aErrorStr := 'Fehler beim entfernen der leeren Zeilen aus dem ' + 'Grid zur Tätigkeitszuordnung' + #10#10 + 'Fehlerhafte Zeile: ' + IntToStr(lCounter + 1) + #10#13 + 'Windows-Fehlermeldung: ' + E.Message; end; end; end; .. |
Danke!