Autor Beitrag
Terra23
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 872

Win 8
Delphi 7
BeitragVerfasst: Di 03.06.03 15:09 
Hi ihr.

Ich weiß, es stört, wenn Leute Fragen stellen, ohne zu suchen, aber ich muß sagen: Ich habe gesucht und programmiert wie blöde, aber ernte nur Fehler. Ich habe hier im Forum zwar nach einiger Zeit eine Prozedur von Tino gefunden, aber damit komme ich einfach auch nicht klar.

Mein Problem:

Ich habe ein StringGrid mit 2 Spalten und bisher 5 Zeilen (die erste Zeile ist fix). Wenn ich nun einen Spieler eintragen will, der schon existiert, soll dieser gelöscht werden. Das klappt soweit ganz gut, jedoch will ich dann die leere Zeile auch löschen, sprich die Zeilen, die evtl. darunter sind, jeweils um einen nach oben ziehen.

Der Code sieht so aus:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
procedure TFischform.Reihen(Sender: TObject);
var I, J, K:Integer;
begin
For I:=1 To NGrid.RowCount-1 Do
    If (NGrid.Cells[0,I]='') And (NGrid.Cells[1,I]='')
    Then Begin
         J:=I;
         Fischform.Caption:='Löschen aus Zeile: '+IntToStr(J);
         Break;
         End;

For K:=J To NGrid.RowCount-1 Do
    Begin
    NGrid.Cells[0,J]:=NGrid.Cells[0,J+1];
    NGrid.Cells[1,J]:=NGrid.Cells[1,J+1];
    End;
NGrid.RowCount:=NGrid.RowCount-1;
end;



So sieht meine Tabelle aus, bevor ich die Prozedur aufrufe und so sieht sie aus, nachdem die Prozedur beendet ist (mit dem Versuch, die Zeile S-S zu löschen). Ich finde einfach den Fehler nicht. Kann mir vielleicht jemand auf die Sprünge helfen? Ich wäre euch sehr dankbar.

_________________
Hasta La Victoria Siempre


Zuletzt bearbeitet von Terra23 am Mi 04.06.03 12:55, insgesamt 1-mal bearbeitet
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Di 03.06.03 19:02 
ausblenden Delphi-Quelltext
1:
2:
3:
4:
Begin
    NGrid.Cells[0,J]:=NGrid.Cells[0,J+1];
    NGrid.Cells[1,J]:=NGrid.Cells[1,J+1];
    End;

In diesem Teil sollte irgendwo mal ein K vorkommen, sonst macht die Schleifenvariable keinen Sinn.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Terra23 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 872

Win 8
Delphi 7
BeitragVerfasst: Di 03.06.03 20:20 
Das kann sein; das kann nicht nur so sein, es ist so. :mrgreen: Ich weiß, daß ich die benutzen muß, sonst hätte ich sie ja nicht definieren müssen. :-) Mal schauen, ob ich damit weiterkomme..

///edit -> Tausend Dank, Peter. Ich schulde dir was. :mrgreen: Ich bin ja auch dusselig. J bleibt ja als Wert bestehen und K wird hochgezählt. Das ist immer so die Sache, man überliest so einzelne Buchstaben ganz gerne mal und fährt sich dann fest. Vielen Dank für die schnelle Hilfe.. :-)

_________________
Hasta La Victoria Siempre