Autor Beitrag
Xearox
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 260
Erhaltene Danke: 3



BeitragVerfasst: Mi 01.06.11 11:47 
Hab hier folgenden Code im Internet gefunden und auf meine Bedürfnisse umgeschrieben

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
procedure TForm2.LB_Aus_ArtikelDblClick(Sender: TObject);
var
i: Integer;
begin
  with LB_Aus_Artikel do
  begin
    i := 0;
    while (i <= Items.Count - 1and (SelCount > 0do
      begin
        while (i <= Items.Count - 1and Selected[i] do
          Items.Delete(i);
          inc(i);
      end;
      ArtikelAnz:=ArtikelAnz - 1;
  end;
end;


Jedoch habe ich Keine Ahnung, was da nun überhaupt passiert.
Hintergrund der Geschichte, durch Doppelklick auf ein Item in einer Liste, soll der Eintrag entfernt werden, dies passiert aber nur, wenn in der Komponente MultiSelect Aktiviert ist, aber das ist nicht schlimm, so kann man auch mehrere Artikel entfernen, doch die Frage ist hier, wieso?


Vielen Dank erstmal

Gruß Christopher

Edit: Ich habe mal selber versucht aus einer anderen Liste einen Eintrag zu entfernen, und hab daher nur einen weiteren Eintrag gemacht: LB_Aus_ArtikelAnz.items.delete(i);
Jetzt funktioniert das auch das löschen aus einer anderen Liste, das war vorher hier eine Frage, wie man das macht.
Zitat:
das war der alte Text
Das Nächste ist, wie dieser Code arbeitet.
Hintergrund davon, ich würde gerne, in diesem Code einfügen, das auch aus einer anderen Liste ein Item entfernt wird, dieses Item gehört aber zu dem anderen Artikel in der anderen Liste.

Bedeutet:

Liste 1 ---- Liste 2
200 -------- Kugelschreiber

Bedeutet, in dem Code oben möchte ich gerne auch einarbeiten, das gleichzeitig der Eintrag aus Liste 1 gelöscht wird, wenn man doppel Klick auf Liste 2 Item macht.

Und aus diesem Grund wäre es gut, wenn ich den Code, der Oben steht, erklärt bekomme, dann kann ich ggf. auch selber das ein Arbeiten.

Ich denke das dies Eine Frage ist und das ich nicht extra dafür noch einen Thread auf machen muss, weil es hier ja lediglich um eine Erläuterung des Oben genannten Codes geht.


Moderiert von user profile iconNarses: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Mi 01.06.2011 um 12:52


Zuletzt bearbeitet von Xearox am Mi 01.06.11 12:17, insgesamt 2-mal bearbeitet
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mi 01.06.11 12:13 
Moin!

user profile iconXearox hat folgendes geschrieben Zum zitierten Posting springen:
Jedoch habe ich Keine Ahnung, was da nun überhaupt passiert.
Das wundert mich nicht, ich hab mir das auch mehrmals ansehen müssen. :lupe: :gruebel: :?
Vor allem, weil ich das so gemacht hätte: :idea: ;)
ausblenden Delphi-Quelltext
1:
2:
3:
4:
procedure TForm1.ListBox1DblClick(Sender: TObject);
begin
  ListBox1.DeleteSelected;
end;
Funktioniert auch unabhängig von Multiselect. :D

user profile iconXearox hat folgendes geschrieben Zum zitierten Posting springen:
Hintergrund davon, ich würde gerne, in diesem Code einfügen, das auch aus einer anderen Liste ein Item entfernt wird, dieses Item gehört aber zu dem anderen Artikel in der anderen Liste.
[...]
Bedeutet, in dem Code oben möchte ich gerne auch einarbeiten, das gleichzeitig der Eintrag aus Liste 1 gelöscht wird, wenn man doppel Klick auf Liste 2 Item macht.
Das hört sich so an, also ob du die Datenhaltung in der GUI machst - das ist immer ein schwerer Design-Fehler und wird früher oder später zu großen Problemen im Code führen. :hair:

Ansatz: Halte die Daten z.B. als Objekte in einer TObjectList. Wenn ein Datensatz gelöscht wird, dann entfernst du ihn aus der Objekt-Liste und füllst einfach nur die GUI-Controls neu mit den Referenzen. Das ist zwar etwas Overhead, aber wenn es nicht zigtausende Objekte sind, dann ist das performant genug. Vorteil: du hast keine Abhängigkeiten in der GUI zu beachten. :idea:

cu
Narses

//EDIT: Oh, du hast deinen Beitrag oben gekürzt, vorhin stand da noch mehr. :gruebel:

_________________
There are 10 types of people - those who understand binary and those who don´t.
Xearox Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 260
Erhaltene Danke: 3



BeitragVerfasst: Mi 01.06.11 12:47 
Wie mit Narses per PN besprochen hab ich hier nun das gesamte Programm inkl. Excel Dummy Tabelle ohne vertrauliche Daten.
Damit kann man nun auch was mit meinem Code anfangen.
Einloggen, um Attachments anzusehen!