Einzelnen Beitrag anzeigen

Daniel B
(Gast)

n/a Beiträge
 
#18
  Alt 3. Dez 2002, 16:54
Hallöle,

ListView.DeleteSelected; ist Dir hoffentlich schon in die Finger gekommen.

Hier ist mal ein Prozedur von mir, wie man den Inhalt im Array nachrutscht.

Du musst nur wissen, bevor Du was nachrutsch, welche Einträge Du gelöscht hast.

Delphi-Quellcode:
procedure TMainFormMC2004.ButtonKKLokLoeschenClick(Sender: TObject);
//Markierte einträge aus der Liste entfernen -> KK Lok
var
  i, n, t: integer;
begin
  if ListViewKKLok.SelCount = 1 then //Nur wenn ein Eintrag ausgewählt ist
  begin
    i := StrToInt(ListViewKKLok.Selected.SubItems[5]);
    for n := i +1 to MC2004.MenueInit.LokAnzahl -1 do //Array nachrücken
    begin
      MC2004.MenueInit.LokStamm[n -1] := MC2004.MenueInit.LokStamm[n];
    end;
    MC2004.MenueInit.LokAnzahl := MC2004.MenueInit.LokAnzahl -1; //Array kürzen
    for t := 0 to ListViewKKLok.Items.Count -1 do //Restliche Indexe -1
    begin
      if StrToInt(ListViewKKLok.Items.Item[t].SubItems[5]) > i then
      begin
        ListViewKKLok.Items.Item[t].SubItems[5] := IntToStr(StrToInt(
          ListViewKKLok.Items.Item[t].SubItems[5]) -1);
      end;
    end;
  end;
  LVLokFuellen;
  EditKKLokID.Clear;
  EditKKLokName.Clear;
  EditKKLokAdresse.Clear;
  EditKKLokTraeg.Clear;
  EditKKLokBeschl.Clear;
  EditKKLokVerzoeg.Clear;
  EditKKLokID.SetFocus;
  Check;
end;
Anschliessend musst Du nur noch den Inhalt des Arrays entweder neu in die LV eintragen, oder Du lässt es bleiben. Mit der Geschwindigkeit wirst Du da keine Probleme, behaupte ich jetzt einfach mal, also ich merke bei 200 Einträgen, jeder mit 6 SubItems überhaupt nichts.

Grüsse, Daniel
  Mit Zitat antworten Zitat