Autor Beitrag
Blamaster
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 164



BeitragVerfasst: Di 12.02.08 15:05 
Hallo,

ich habe eine List view erstellt und das eintragen und löschen von Einträgen klappt auch super. Nur würde ich gerne in der 1. Spalte eine Vortlaufente Eintragsnummer haben. Sprich der 1 Eintrag wird erstellt, in der der Spalte steht eine 1. Nächster Eintrag wird gemacht und bekommt die Nummer 2. Wenn ich einen Eintrag aus der Liste lösche, soll die Eintragsnummerierung jedoch nicht unterbrochen werden, sondern alle Eintragsnummer sollten sich wieder anpassen.

Kann mir da wer helfen ?

mfg Blamaster
Regan
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 2157
Erhaltene Danke: 72


Java (Eclipse), Python (Sublimetext 3)
BeitragVerfasst: Di 12.02.08 15:09 
Ich würde dir eine For-Schleife empfehlen, mit der du alle Einträge durchgehst und neu nummerierst.
Blamaster Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 164



BeitragVerfasst: Di 12.02.08 16:33 
Hm, aber von was bis was soll er denn in der for zählen. Die for weiß ja auch nicht wie viele Einträge in der Liste sind.
Xong
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 113

WIN 2000
Borland Developer Studio 2006
BeitragVerfasst: Di 12.02.08 16:38 
user profile iconBlamaster hat folgendes geschrieben:
Hm, aber von was bis was soll er denn in der for zählen.

Von 1 bis Anzahl der Einträge in der Liste.

user profile iconBlamaster hat folgendes geschrieben:
Die for weiß ja auch nicht wie viele Einträge in der Liste sind.

Das musst du ihr ja auch sagen... -.-
(Edit: LV.Items.Count dürfte dir weiterhelfen.)


Zuletzt bearbeitet von Xong am Di 12.02.08 16:41, insgesamt 1-mal bearbeitet
Kroko
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1284

W98 W2k WXP
Turbo D
BeitragVerfasst: Di 12.02.08 16:38 
ausblenden Delphi-Quelltext
1:
for I := 0 to ListView1.Items.Count -1 do					

_________________
Die F1-Taste steht nicht unter Naturschutz und darf somit regelmäßig und oft benutzt werden! oder Wer lesen kann, ist klar im Vorteil!
Blamaster Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 164



BeitragVerfasst: Di 12.02.08 16:59 
Mit Listview Items Count hat das soweit auch schonmal ganz gut geklappt.

Hab folgenden code gesetzt für die Zuweisung: Additem.Caption:= IntToStr(ListView1.Items.Count);

Nun besteht ebend nur das wenn ich eine Liste mit folgenden Einträgen habe:

1.
2.
3.
4.

und nun Eintrag 3. Lösche, dann hat die Liste folgende nummerierung:

1.
2.
4.

Wenn das Problem noch zu lösen ist, bin ich wieder ein großes Stück weiter :)
Kroko
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1284

W98 W2k WXP
Turbo D
BeitragVerfasst: Di 12.02.08 17:01 
durchlaufe einfach meine Schleife und nummeriere neu durch!

_________________
Die F1-Taste steht nicht unter Naturschutz und darf somit regelmäßig und oft benutzt werden! oder Wer lesen kann, ist klar im Vorteil!
Blamaster Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 164



BeitragVerfasst: Di 12.02.08 17:18 
Hoi,

bin in Delphi momentan nicht mehr alzu fit. Ich habe 2 buttons einen zum Eintragen und einen zum löschen. Wohin kommt nun am gescheitesten der codeschnipsel ? Und müsste nicht noch was hinter die do Anweisung ?

mfg Blamaster
Kroko
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1284

W98 W2k WXP
Turbo D
BeitragVerfasst: Di 12.02.08 17:27 
(a) Soll ich dein Programm schreiben?
(b) Wie hast Du denn die 1.Nummerierung hinbekommen?
(c) schreibe dir ein Prozedur, die die Einträge durch nummeriert und rufe dies nach dem Einfügen und Löschen auf!

_________________
Die F1-Taste steht nicht unter Naturschutz und darf somit regelmäßig und oft benutzt werden! oder Wer lesen kann, ist klar im Vorteil!
Blamaster Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 164



BeitragVerfasst: Di 12.02.08 17:32 
(a) Hab ich das behauptet ? Würde ich fragen, wenn ich es wüsste oder genau verstanden hätte ? Frage ich weil ich kein Interesse am Programmieren habe ? Warst du auch mal "anfänger" ? Dann sollte das ja gegessen sein.
(b) Wie oben geschrieben. Momentan erfolgt die Nummerierung so. Der Button mit dem die Einträge gespeichert werden enthält unteranderem: Additem.Caption:= IntToStr(ListView1.Items.Count); welches momentan die Nummerierung macht.
(c) Wenn ich so genau wüsste wie die procedur aussehen müsste, hätte ich das bereits getan.

mfg Blamaster
Kroko
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1284

W98 W2k WXP
Turbo D
BeitragVerfasst: Di 12.02.08 17:43 
dann schreibe doch genau dies in die Schleife, nur statt AddItem musst Du die Items des Litsviews durchlaufen
ausblenden Delphi-Quelltext
1:
2:
for I := 0 to ListView1.Items.Count-1 do
  ListView1.Items[I].Caption := IntToStr(I)+'.';
(ungetestet, ev. leistet die F1-Taste gute Dienste)
sollte klappen!

_________________
Die F1-Taste steht nicht unter Naturschutz und darf somit regelmäßig und oft benutzt werden! oder Wer lesen kann, ist klar im Vorteil!
Blamaster Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 164



BeitragVerfasst: Di 12.02.08 17:58 
Hi,

wielen Dank. Manchmal sieht man echt den Wald vor lauter bäumen nicht naja was solls.

Wollte das ganze ebend noch so anpassen, das er mit der Nummerierung nicht bei 0 sondern bei 1 beginnt. Dazu habe ich den For I := 1 gesetzt. Das bringt aber noch nicht den passenden Effekt. Aber nach meinen Verständnis setzt er doch jetzt zuerst ListView1.Items[1].Caption := IntToStr(1); ein. Dann zählt er immer höher bis Items Count -1 zurück gibt.

mfg Blamaster
Kroko
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1284

W98 W2k WXP
Turbo D
BeitragVerfasst: Di 12.02.08 18:07 
IntToStr(i+1);wäre besser als die Schleife zu ändern!

_________________
Die F1-Taste steht nicht unter Naturschutz und darf somit regelmäßig und oft benutzt werden! oder Wer lesen kann, ist klar im Vorteil!
Blamaster Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 164



BeitragVerfasst: Di 12.02.08 18:56 
Hm, geht dann immernoch nicht. Die 1. Stelle wo vorher die 0 stand ist jetzt leer.
Kroko
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1284

W98 W2k WXP
Turbo D
BeitragVerfasst: Di 12.02.08 19:14 
dann schreibe wieder
for I := 0 hin!

_________________
Die F1-Taste steht nicht unter Naturschutz und darf somit regelmäßig und oft benutzt werden! oder Wer lesen kann, ist klar im Vorteil!
Blamaster Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 164



BeitragVerfasst: Di 12.02.08 19:18 
Das ist ja das Problem dann passierte ja das selbe. Also wieder das Feld beim ersten Eintrag leer und dann beim 2. steht ne 1.

Hier nochmal der ganze code:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
procedure TForm1.Button1Click(Sender: TObject);
begin
Additem := ListView1.Items.Add;

for I := 1 to ListView1.Items.Count -1 do

ListView1.Items[I].Caption := IntToStr(I);
Additem.SubItems.Add(pchar(Combobox1.Text));
Additem.SubItems.Add(pchar(Combobox2.Text));
Additem.SubItems.Add(Edit2.Text);

end;
Kroko
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1284

W98 W2k WXP
Turbo D
BeitragVerfasst: Di 12.02.08 19:20 
ausblenden Delphi-Quelltext
1:
2:
for I := 0 to ListView1.Items.Count-1 do
  ListView1.Items[I].Caption := IntToStr(I+1)+'.';

wenn das so da steht, dann erscheint auch in jedem Feld "xx."!

_________________
Die F1-Taste steht nicht unter Naturschutz und darf somit regelmäßig und oft benutzt werden! oder Wer lesen kann, ist klar im Vorteil!
Kroko
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1284

W98 W2k WXP
Turbo D
BeitragVerfasst: Di 12.02.08 19:21 
neee, nicht wirklich oder


setze die Schleife ans Ende!

_________________
Die F1-Taste steht nicht unter Naturschutz und darf somit regelmäßig und oft benutzt werden! oder Wer lesen kann, ist klar im Vorteil!
Blamaster Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 164



BeitragVerfasst: Di 12.02.08 19:32 
Ups. Jop verguggt. jetzt geht das auch problemlos. Thx nochmal :)