Einzelnen Beitrag anzeigen

Neutron

Registriert seit: 14. Mär 2006
47 Beiträge
 
Delphi 2006 Professional
 
#1

Variable hat immer den Wert 1 (das soll nicht so)

  Alt 9. Apr 2006, 15:22
Hallo!
Ich der Kontaktmanager funktioniert!!!
Nach langem schreiben überarbeiten und löschen hab ich's hinbekommen.

Nun belästige ich euch wahrscheinlich das letzte mal (wegen des Kontaktmanagers)...

Also ich benötigte ja noch eine procedure für das Löschen verschiedener Kontakte
hier ist sie:

Delphi-Quellcode:
procedure TForm1.KontaktLschen1Click(Sender: TObject);
var
DeleteItem, I, S, L : Integer;
Filename : String;
begin
  if ListView1.Selected = Nil then
  begin
    MessageDlg('Bitte wählen sie erst einen Listeneintag aus!', mtInformation, [mbOK], 0);
  end
  else
  begin
  DeleteItem := ListView1.Selected.Index;
  L := ListView1.Items.Count;
  if MessageDlg('Soll dieser Kontakt wirklich entfernt werden?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
  begin
    ListView1.Selected.Delete;
    Filename := ExtractFilePath(Application.ExeName)+'Speicher\Daten\'+IntToStr(DeleteItem)+'.OKM';
    DeleteFile(Filename);
    Filename := ExtractFilePath(Application.ExeName)+'Speicher\Daten\'+IntToStr(DeleteItem)+'SMB.OKM';
    DeleteFile(Filename);
    Filename := ExtractFilePath(Application.ExeName)+'Speicher\Daten\'+IntToStr(DeleteItem)+'Bemerk.OKM';
    DeleteFile(Filename);
    Filename := ExtractFilePath(Application.ExeName)+'Speicher\Daten\'+IntToStr(DeleteItem)+'FreuFam.OKM';
    DeleteFile(Filename);
    if ListView1.Items.Count > 0 then //We
    begin
      S := ListView1.Items.Count;
      for I := DeleteItem to S do
      begin
        ClearPuffer;
        LoadFromStream(I);
        SaveToStream(I-1)
      end;
    Filename := ExtractFilePath(Application.ExeName)+'Speicher\Daten\'+IntToStr(L)+'.OKM';
    DeleteFile(Filename);
    Filename := ExtractFilePath(Application.ExeName)+'Speicher\Daten\'+IntToStr(L)+'SMB.OKM';
    DeleteFile(Filename);
    Filename := ExtractFilePath(Application.ExeName)+'Speicher\Daten\'+IntToStr(L)+'Bemerk.OKM';
    DeleteFile(Filename);
    Filename := ExtractFilePath(Application.ExeName)+'Speicher\Daten\'+IntToStr(L)+'FreuFam.OKM';
    DeleteFile(Filename);
    ListView1.Selected := ListView1.Items[0];
    LoadfromStream(0);
    end
    else
    if ListView1.Items.Count <= 0 then
    begin
      ListView1.Selected := Nil;
    end;
  end;
end;
end;
Mein Problem ist nur das die Variable (DeleteItem) immer 1 ist obwohl sie ja normalerweise
den index der Selektion von ListView1 haben müsste.
(Ich hab auch mal was anderes angeklickt, als nur immer das selbe Item
und der Wert blieb 1)

hat jemand ne Ahnung woran das liegt?
  Mit Zitat antworten Zitat