AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Stringgrid Col vergleich

Ein Thema von 5etH · begonnen am 10. Apr 2008 · letzter Beitrag vom 11. Apr 2008
Antwort Antwort
Benutzerbild von 5etH
5etH

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

Stringgrid Col vergleich

  Alt 10. Apr 2008, 13:35
Hallo Zusammen,

ich habe das Problem das ich für ein warenwirtschaftsprogramm waren in ein stringgrid einlese und der Kunde beliebig waren löschen und hinzufügen kann... die Artikel Nr. ensteht sequenziel und richtet sich nach dem Colcount, nun habe ich das Problem das wenn sagen wir 3 waren eingetragen sind (1. quark 2. soße 3. kuchen) und ich den 2. lösche und ich dann wieder einen hinzufüge, dann erstellt er wieder einen mit 3. bsp: 1. quark 3. kuchen 3. neu. nun wollte ich im fixed Col woe diese sachen stehen den string in eine variable speichern und in der variablen den 2. char abfragen ob es diese zahl gibt.... soviel zur Theorie

so sieht das fragment aus
Delphi-Quellcode:
for I := 1 to fint.StringGrid1.ColCount - 1 do
zwisch := fint.StringGrid1.Cells[i,0];
if inttostr(i) <> zwisch[1] then
//speicher mit i + ' WARE '
Leider bekomme ich damit eine Zugriffsverletzung und ich kann mir nicht erklären wie ? Oder ihr kennt eine bessere methode dieses Problem anzugehen.

vielleicht könnt ihr mir weiter helfen
Vielen Dank schonmal
euer Manu
Manuel
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Stringgrid Col vergleich

  Alt 10. Apr 2008, 14:14
Hallo,

warum so kompliziert ?
Setze die Artikelnummer einfach nach jeder Änderung neu


Delphi-Quellcode:
For iRow:= 1 to Grid.RowCount-1 do
begin
  Cells[0{Nr-Spalte},iRow]:= IntToStr(iRow);
end;
Das Bsp. geht davon aus, das es novch ne FixedRows=1 gibt.


Heiko
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von 5etH
5etH

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

Re: Stringgrid Col vergleich

  Alt 10. Apr 2008, 14:17
nein darum geht es nicht das ganze in einer variablen hochzählen zu lassen ist kein problem ... die datensätze des grids werden gespeichert auf einem FTP-Server ... wenn ich das programm nun neu starte und die datensätze lade dann ist die variable leer und fängt wieder am anfang an -.- ich muss also ein vergleich auf schon bestehende datensätze machen
Manuel
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Stringgrid Col vergleich

  Alt 10. Apr 2008, 14:30
Hallo,

dann kapier ich das Problem nicht.

nun ja:
1. Warum ColCount nicht RowCount ?
2. Fehlt beim For nicht begin/end ?
3. zwisch[1] ersetzen durch Copy(zwisch,1,1)

0. Was sagt denn der Debugger ?

Heiko
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von 5etH
5etH

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

Re: Stringgrid Col vergleich

  Alt 10. Apr 2008, 14:36
also deswegen die cols weil es um den einkauf bzw verkauf geht in den rows stehen die Zeitinterwalle der einkäufe bspw. monate in den cols die waren damit man die einkaäufe in die felder eintragen kann es geht um die abrage des fixed cols nicht cols algemein

hier einmal das gesammte programmfragment
Delphi-Quellcode:
for I := 1 to fint.StringGrid1.colcount -1 do
begin
zwisch := fint.StringGrid1.Cells[i,0];
if zwisch[1] <> inttoStr(i) then // Zugriffsverletzung hier
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
Manuel
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: Stringgrid Col vergleich

  Alt 10. Apr 2008, 15:41
Hallo,

siehe 3. meines vorigen Postings


Heiko
Heiko
  Mit Zitat antworten Zitat
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
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:34 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz