Okay ich habe das nun eingefügt und es funktioniert auch bis zu dem Punk, bis ich mittendrin was lösche, und dann wieder was hinzufüge... hier ein Beispiel
Reinfolge bei Erstellung:
1. |1. test1|2. test2|3. test3||
2. |1. test1|3. test3||
3. |1. test1|3. test3|2.test4|3.test4||
also im 3. Punkt kann man sehen, dass er einen untötigen und doppelten Wert einträgt, der vom Anwender nicht gewollt ist.
Die Reinfolge der Punkte ist egal, nur es sollen keine doppelten entstehen ... aus einem Grund den ich nicht verstehe geht er die For-rschleife 2 mal durch, die ich im folgenden Code makiert habe.
Delphi-Quellcode:
procedure TOpt.Button1Click(Sender: TObject);
var i : Integer;
zwisch : string;
begin
if fint.StringGrid1.ColCount < 3 then
begin
fint.StringGrid1.ColCount := fint.StringGrid1.ColCount +1;
fint.stringgrid1.Cells[fint.stringgrid1.colcount-2,0] := inttostr(fint.stringgrid1.colcount-2)+ '. ' + edit2.text;
fint.StringGrid2.ColCount := fint.StringGrid2.ColCount +1;
fint.stringgrid2.Cells[fint.stringgrid2.colcount-2,0] := inttostr(fint.stringgrid2.colcount-2)+ '. ' + edit2.text;
fint.StringGrid3.ColCount := fint.StringGrid3.ColCount +1;
fint.stringgrid3.Cells[fint.stringgrid3.colcount-2,0] := inttostr(fint.stringgrid3.colcount-2)+ '. ' + edit2.text;
fint.StringGrid4.ColCount := fint.StringGrid4.ColCount +1;
fint.stringgrid4.Cells[fint.stringgrid4.colcount-2,0] := inttostr(fint.stringgrid4.colcount-2)+ '. ' + edit2.text;
fint.StringGrid5.ColCount := fint.StringGrid5.ColCount +1;
fint.stringgrid5.Cells[fint.stringgrid5.colcount-2,0] := inttostr(fint.stringgrid5.colcount-2)+ '. ' + edit2.text;
end
else
begin
for I := 1 to fint.StringGrid1.colcount -1 do //läuft 2 mal durch nachdem ein wert in der mitte gelöscht wurde wie im bsp
begin
zwisch := fint.StringGrid1.Cells[i,0];
if Copy(zwisch,1,1) <> inttoStr(i) then
begin
fint.StringGrid1.ColCount := fint.StringGrid1.ColCount +1;
fint.stringgrid1.Cells[fint.stringgrid1.colcount-2,0] := inttostr(i)+ '. ' + edit2.text;
fint.StringGrid2.ColCount := fint.StringGrid2.ColCount +1;
fint.stringgrid2.Cells[fint.stringgrid2.colcount-2,0] := inttostr(i)+ '. ' + edit2.text;
fint.StringGrid3.ColCount := fint.StringGrid3.ColCount +1;
fint.stringgrid3.Cells[fint.stringgrid3.colcount-2,0] := inttostr(i)+ '. ' + edit2.text;
fint.StringGrid4.ColCount := fint.StringGrid4.ColCount +1;
fint.stringgrid4.Cells[fint.stringgrid4.colcount-2,0] := inttostr(i)+ '. ' + edit2.text;
fint.StringGrid5.ColCount := fint.StringGrid5.ColCount +1;
fint.stringgrid5.Cells[fint.stringgrid5.colcount-2,0] := inttostr(i)+ '. ' + edit2.text;
end;//end if
end; //end for i
end;// end else
end;
Es ist ja auch jeden Fall ein logisch Fehler und es wäre nett, wenn ihr mir helfen könntet ihn zu finden.
Schonmal vielen Dank
euer Manu