Thema: Delphi Stringgrid Col vergleich

Einzelnen Beitrag anzeigen

Benutzerbild von 5etH
5etH

Registriert seit: 4. Mär 2008
Ort: Giessen
217 Beiträge
 
Delphi 2007 Professional
 
#7

Re: Stringgrid Col vergleich

  Alt 11. Apr 2008, 07:54
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
Manuel
  Mit Zitat antworten Zitat