![]() |
Variable hat immer den Wert 1 (das soll nicht so)
Hallo!
Ich der Kontaktmanager funktioniert!!! :-D Nach langem schreiben überarbeiten und löschen hab ich's hinbekommen. :coder2: 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:
Mein Problem ist nur das die Variable (DeleteItem) immer 1 ist obwohl sie ja normalerweise
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; den index der Selektion von ListView1 haben müsste. :pale: (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? |
Re: Variable hat immer den Wert 1 (das soll nicht so)
verwende doch einfach ListView.ItemIndex
|
Re: Variable hat immer den Wert 1 (das soll nicht so)
Danke! :-D
Daran hab ich gar nicht gedacht! :wall: |
Re: Variable hat immer den Wert 1 (das soll nicht so)
Ey moment mal... :|
Bei TListView gibt es nicht einfach ListView.Itemindex! Das ist nur bei TListbox so! Also bin ich wieder bei 0! :( |
Re: Variable hat immer den Wert 1 (das soll nicht so)
Also meine TListView kennt
Delphi-Quellcode:
;)
ListView1.ItemIndex
|
Re: Variable hat immer den Wert 1 (das soll nicht so)
Ich arbeite mit Delphi 5 Standert und bei mir sagt er !Undefinierter Bezeichner 'Itemindex'!
|
Re: Variable hat immer den Wert 1 (das soll nicht so)
Das nur nebenbei (ungetestet).
Delphi-Quellcode:
MfG
procedure TForm1.Button3Click(Sender: TObject);
var DeleteItem, I, S, L: Integer; Filename: String; begin if ListView1.Selected = Nil then MessageDlg('Bitte wählen sie erst einen Listeneintag aus!', mtInformation, [mbOK], 0) 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 := Format('%sSpeicher\Daten\%d', [ExtractFilePath(Application.ExeName), DeleteItem]); DeleteFile(Filename + '.OKM'); DeleteFile(Filename + 'SMB.OKM'); DeleteFile(Filename + 'Bemerk.OKM'); DeleteFile(Filename + 'FreuFam.OKM'); 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 := Format('%sSpeicher\Daten\%d', [ExtractFilePath(Application.ExeName), L]); DeleteFile(Filename + '.OKM'); DeleteFile(Filename + 'SMB.OKM'); DeleteFile(Filename + 'Bemerk.OKM'); DeleteFile(Filename + 'FreuFam.OKM'); ListView1.Selected := ListView1.Items[0]; LoadfromStream(0); end else if ListView1.Items.Count <= 0 then ListView1.Selected := Nil; end; end; end; freak |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:13 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz