AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Listbox DeleteSelected und Ini Erasesections [gelöst]
Thema durchsuchen
Ansicht
Themen-Optionen

Listbox DeleteSelected und Ini Erasesections [gelöst]

Ein Thema von Doomlittle · begonnen am 11. Mai 2004 · letzter Beitrag vom 11. Mai 2004
Antwort Antwort
Doomlittle

Registriert seit: 31. Mär 2004
8 Beiträge
 
#1

Listbox DeleteSelected und Ini Erasesections [gelöst]

  Alt 11. Mai 2004, 11:22
Hallo Leute

Ich habe momentan ein kleines Problem mit meinem Programm, was sich im Großen und Ganzen um den Webbrowser dreht. Mit einer Listbox werden Einträge aus einer Ini Datei angezeigt, die dem Webbrowser als Favoriten dienen.

Nun möchte ich in der Listbox mehrere Einträge löschen was natürlich dann auch in der Ini Datei geschehen soll. Das tut es nur noch nicht.

Delphi-Quellcode:
procedure TMain_Form.Favoriten_ListBoxKeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key=vk_delete then
  if Favoriten_ListBox.Selected[Favoriten_ListBox.ItemIndex]
  then
  begin
    if MessageDlg( 'Willst du diese(n) Favoriten löschen?' , mtWarning,[mbYes,mbNo],0)=mrYes
    then
    begin
      try
      Ini_favoriten.EraseSection(Favoriten_ListBox.Items[Favoriten_ListBox.ItemIndex]);
      Favoriten_ListBox.DeleteSelected;
      except
      //
      end;
    end;
  end;
end;
Die Listbox ist zwar nach dieser Aktion leer, bei einem Neustart sind aber wieder fast alle selektierten Einträge da und nur einer (meist der Letzte) fehlt - die Ini wird also nicht wirklich um die ausgewählten Einträge beschnitten. Ich bin extra wegen der DeleteSelected Methode von Delphi 5 auf Delphi 7 umgestiegen und frage mich nun warum die Einträge nicht auch in der Ini gelöscht werden. Mir schwahnt zwar wieder einmal das dort eine Schleife fehlt, allerdings habe ich noch nicht herausgefunden wie man diese dort anwenden könnte.

Vielleicht habt ihr ja einen Hinweis für mich,
Danke im Vorraus
  Mit Zitat antworten Zitat
Niko

Registriert seit: 23. Jun 2003
416 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Listbox DeleteSelected und Ini Erasesections

  Alt 11. Mai 2004, 12:10
Hi,
diese Abfrage
if Favoriten_ListBox.Selected[Favoriten_ListBox.ItemIndex] then kannst du dir schon mal sparen. Ein Eintrag der den Fokus hat ist auch automatisch ausgewählt. Prüfen sollte man besser ob Favoriten_ListBox.SelCount <> -1 ist, d.h. ob überhaupt was ausgewählt wurde.
Und ja, es fehlt eine Schleife :
Statt
Ini_favoriten.EraseSection(Favoriten_ListBox.Items[Favoriten_ListBox.ItemIndex]); müsstest du folgendes schreiben:
Delphi-Quellcode:
for i := 0 to Favoriten_ListBox.Count - 1 do
  if Favoriten_ListBox.Selected[i] then
    Ini_favoriten.EraseSection(Favoriten_ListBox.Items[i]);
Mit deiner Version wird nur der Eintrag aus der INI gelöscht der gerade den Fokus hat; die Schleife sorgt dafür, dass alle markierten Einträge gelöscht werden.
"Electricity is actually made up of extremely tiny particles called electrons, that you cannot see with the naked eye unless you have been drinking." (Dave Barry)
  Mit Zitat antworten Zitat
Doomlittle

Registriert seit: 31. Mär 2004
8 Beiträge
 
#3

Re: Listbox DeleteSelected und Ini Erasesections

  Alt 11. Mai 2004, 12:18
Stimmt, nun geht es auch.

Ich danke dir
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:16 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