![]() |
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 |
Re: Problem mit StringGrid
Um Dir helfen zu können müsste man wissen, wie dieses Einsortieren denn implementiert ist.
|
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 |
Re: Problem mit StringGrid
Dann solltest Du aber auch überprüfen, ob die Zeile auch existiert.
|
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 :( ) |
Re: Problem mit StringGrid
Das ist aber immer noch falsch :zwinker:
|
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:
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:
Zeile=StringGrid1.RowCount
|
Re: Problem mit StringGrid
Siehste, geht doch :lol:. Aber wir sollten nun erst einmal abwarten, was der TE zu sagen hat.
|
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. |
Re: Problem mit StringGrid
Du hast immer noch nicht gezeigt, wie Dein Einsortieren eigentlich aussieht.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:44 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz