AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign Delphi Eintrag aus Dynamischen Array und ListBox löschen
Thema durchsuchen
Ansicht
Themen-Optionen

Eintrag aus Dynamischen Array und ListBox löschen

Ein Thema von Marcel2906 · begonnen am 25. Aug 2011 · letzter Beitrag vom 25. Aug 2011
Antwort Antwort
Marcel2906

Registriert seit: 17. Aug 2011
Ort: Warendorf
112 Beiträge
 
Delphi 2010 Professional
 
#1

AW: Eintrag aus Dynamischen Array und ListBox löschen

  Alt 25. Aug 2011, 11:46
Also Delphi meldet keinen Fehler. Aber wenn ich das Programm ausführe klappt es nicht.
  Mit Zitat antworten Zitat
Marcel2906

Registriert seit: 17. Aug 2011
Ort: Warendorf
112 Beiträge
 
Delphi 2010 Professional
 
#2

AW: Eintrag aus Dynamischen Array und ListBox löschen

  Alt 25. Aug 2011, 11:52
Ich hab es jetzt umgestellt, dennoch kommt der Fehler. Aber nur wenn ich den Eintrag löschen will, welcher der letzte vorhandene ist.

Code:
procedure TForm1.Delete;
   var
      MakierteStelle,i: integer;
      rec_p: PBusEintrag;
   begin
      rec_p:=Liste[ListBox1.ItemIndex];
      Dispose(rec_p);
      MakierteStelle:= ListbOx1.ItemIndex;

      //Makierte Stelle kommt an das Ende des Arrays
      while MakierteStelle<high(Liste) do begin
         Liste[MakierteStelle]:=Liste[MakierteStelle+1];
         MakierteStelle:=MakierteStelle+1;
      end;


      //Array wird um 1 verringert
      setLength(Liste,Length(Liste)-1);

      //Makierter Eintrag wird aus ListBox entfernt
      ListBox1.DeleteSelected;
   end;

Geändert von Marcel2906 (25. Aug 2011 um 12:01 Uhr) Grund: Code nochmals bearbeitet (ListBox.ItemIndex)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.376 Beiträge
 
Delphi 12 Athens
 
#3

AW: Eintrag aus Dynamischen Array und ListBox löschen

  Alt 25. Aug 2011, 11:55
Erstmal:
- Merkierte Stelle bei MultiSelekt=False entspricht ListBox.ItemIndex.
- Ist nichts markiert, wird dennoch das Erste gelöscht, wegen deinem MakierteStelle:=0;
- du überschreibst den Zeiger des zu löschenden Eintrags und gibst stattdessen immer den lentzen Eintrag frei (welcher abwer immernoch verlinkt ist)
- ...
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Marcel2906

Registriert seit: 17. Aug 2011
Ort: Warendorf
112 Beiträge
 
Delphi 2010 Professional
 
#4

AW: Eintrag aus Dynamischen Array und ListBox löschen

  Alt 25. Aug 2011, 12:06
leider immer noch Fehler..hab ich etwas falsch berichtigt??
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.376 Beiträge
 
Delphi 12 Athens
 
#5

AW: Eintrag aus Dynamischen Array und ListBox löschen

  Alt 25. Aug 2011, 12:41
Der perfekte Zeitpunkt, um mal den Debugger zu fragen.

PS: Wenn man statt dem array eine TList oder TList<> nimmt, dann kann man deren Einträge genauso verwalten, wie die der ListBox
und notfalls könnte man auch gleich auf diese Liste verzichten, da die TListBox selber schon eine Liste enthält, wo man auch jeweils ein Objekt an die Einträge dranhängen kann.

ListBox1.AddItem / ListBox1.Items.AddObject / ListBox1.Items.Objects
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (25. Aug 2011 um 13:00 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#6

AW: Eintrag aus Dynamischen Array und ListBox löschen

  Alt 25. Aug 2011, 12:44
Warum

Liste : Array of PBusEintrag;
und nicht
Liste : Array of TBusEintrag;

wo liegen die Daten die Du mit Dispose freigist ...
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Marcel2906

Registriert seit: 17. Aug 2011
Ort: Warendorf
112 Beiträge
 
Delphi 2010 Professional
 
#7

AW: Eintrag aus Dynamischen Array und ListBox löschen

  Alt 25. Aug 2011, 12:56
ich bin völlig verzweifelt
Ich versteh nur noch Bahnhof
  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 04:00 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