Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Variable hat immer den Wert 1 (das soll nicht so) (https://www.delphipraxis.net/67092-variable-hat-immer-den-wert-1-das-soll-nicht-so.html)

Neutron 9. Apr 2006 15:22


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:
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. :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?

SirThornberry 9. Apr 2006 15:35

Re: Variable hat immer den Wert 1 (das soll nicht so)
 
verwende doch einfach ListView.ItemIndex

Neutron 10. Apr 2006 10:21

Re: Variable hat immer den Wert 1 (das soll nicht so)
 
Danke! :-D

Daran hab ich gar nicht gedacht! :wall:

Neutron 10. Apr 2006 10:37

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! :(

Matze 10. Apr 2006 10:41

Re: Variable hat immer den Wert 1 (das soll nicht so)
 
Also meine TListView kennt

Delphi-Quellcode:
ListView1.ItemIndex
;)

Neutron 10. Apr 2006 10:53

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'!

freak4fun 10. Apr 2006 11:01

Re: Variable hat immer den Wert 1 (das soll nicht so)
 
Das nur nebenbei (ungetestet).
Delphi-Quellcode:
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;
MfG
freak


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:21 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz