Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Problem mit StringGrid (https://www.delphipraxis.net/148278-problem-mit-stringgrid.html)

star_votes 26. Feb 2010 14:57


Problem mit StringGrid
 
Hallo,

ich bräuchte einmal eure Hilfe bezüglich eines StringGrids.
Ersteinmal erläuter ich euch mein Problem:

Ich habe ein Programm entworfen, in dem man in ein paar Edits etwas einträgt und das dort Eingetragene, wird (durch einen Button) in eine StringGrid einsortiert. Nun kann man diese StringGrid abspeichern und gegebenfalls wieder öffnen.

Das Problem liegt jetzt darin:

Wenn man die StringGrid nun wieder öffnet und weitere Einträge einsortieren möchte, überschreibt er den ersten Eintrag ganz oben und geht wieder abwärts.
Deshalb wollte ich fragen wie man hinter den letzten Eintrag eine Art "Marke" setzen kann, damit Delphi nicht wieder von ganz oben anfängt etwas in die StringGrid einzusortieren und somit die alten Einträge überschreibt.
Ich habe leider keine wirkliche Idee, da ich auch noch nicht der "Erfahrenste" bin.

Wäre toll wenn jemand vielleicht eine einfache nachvollziehbare Lösung parat hätte.

Vielen lieben Dank für jede Antwort.:)

MFG

DeddyH 26. Feb 2010 15:12

Re: Problem mit StringGrid
 
Um Dir helfen zu können müsste man wissen, wie dieses Einsortieren denn implementiert ist.

Salazriel 26. Feb 2010 16:19

Re: Problem mit StringGrid
 
Ich denke mal, du könntest ihn überprüfen lassen, ob in dem Feld schon was steht und nur wenn nichts darin steht (--> '' )dann darf er reinschreiben, wenn was drinsteht, soll er einfach weitergehen

Delphi-Quellcode:
---Button1Click---
Zeile:=-1; //damit es nach dem ersten Inkrementieren 0 ist
Repeat
  inc(Zeile);
Until (StringGrid1.cells[Zeile,Spalte]<>'') or (Zeile=StringGrid1.RowCount-1)
StringGrid1.cells[Zeile,Spalte]:=Edit1.text;     //Spalte wäre 0, wenn du ganz links meinst

DeddyH 26. Feb 2010 16:28

Re: Problem mit StringGrid
 
Dann solltest Du aber auch überprüfen, ob die Zeile auch existiert.

Salazriel 26. Feb 2010 16:43

Re: Problem mit StringGrid
 
Was meinst du denn :angel:

Ich habs jetzt editiert, so dass er es auch überprüft.
(Besonders ärgerlich: zuerst hatte ich es in einer While-Schleife, die ich dann umgeschrieben habe auf Repeat weil mir spontan nicht eingefallen ist, wie ich das überprüfen kann, dann habe ich es umgeschrieben und vergessen, wobei mir jetzt auch klar ist, wie man das ganze mit while machen könnte :( )

DeddyH 26. Feb 2010 16:50

Re: Problem mit StringGrid
 
Das ist aber immer noch falsch :zwinker:

Salazriel 26. Feb 2010 16:57

Re: Problem mit StringGrid
 
Gedanken beim Lesen deiner polemischen Kritik :wink: :
Achja, Zeile darf ja nicht größer als die Anzahl der Zeilen sein,dass Ganze fängt bei 0 an, also darf Zeile nicht größer als rowcount-1 sein, es kommt immer von 0 aus, also.......
tatsächlicher Quelltext:

Delphi-Quellcode:
Zeile=StringGrid1.RowCount
aber ich habe ja hier schon in irgendeiner Signatur gelesen, dass Programme nicht dass machen, was deine Absicht ist, sondern was deine Befehle sind :wall: :wall:

DeddyH 26. Feb 2010 17:00

Re: Problem mit StringGrid
 
Siehste, geht doch :lol:. Aber wir sollten nun erst einmal abwarten, was der TE zu sagen hat.

star_votes 26. Feb 2010 17:23

Re: Problem mit StringGrid
 
Hey ja also die Idee ist echt gut und einfach :)
Klingt simpel, aber leider klappt es nicht:(

Ich weiß nicht wo da das Problem liegen könnte.
Den Inhalt der StringGrid lasse ich ganz einfach als Textdatei speichern, wenn das vllt. noch zur Problemlösung beitragen kann.(Leider kann ich dabei auch nicht die Zeilen zählen lassen, da beim Speichern die Textdatei sehr unübersichtlich ist...)

So habe ich das jetzt mit eingebunden
Delphi-Quellcode:
          i:=-1;
              Repeat
                  inc(i);
              Until ((StringGrid1.cells[i,0]<>'') or (i=StringGrid1.RowCount));
    With Buchstaben do
       begin
          StringGrid1.Cells[0,i] := a;
          StringGrid1.Cells[1,i] := b;
          StringGrid1.Cells[2,i] := c;
          StringGrid1.Cells[3,i] := d;
          StringGrid1.Cells[4,i] := e;
          StringGrid1.Cells[5,i] := f;
       End;
end;


Also es gibt keine Fehlermeldung, aber beim Öffnen und dann beim Einsortieren werden die alten Einträge einfach überschrieben.

DeddyH 26. Feb 2010 17:26

Re: Problem mit StringGrid
 
Du hast immer noch nicht gezeigt, wie Dein Einsortieren eigentlich aussieht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:51 Uhr.
Seite 1 von 2  1 2      

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