Editfelder speichern und in einer StringGrid list abrufen
-
Das alles in eine Spalte kommt, liegt wohl daran, dass CommaText Kommas oder Spaces als Trennzeichen erlaubt. Du nimmst Semikolons.
Bei deiner Speicherfunktion sehe ich auch noch Probleme. Du speicherst dort StringGrid1->RowCount-6 mal die gleichen EditFelder ab. Ist das so gewollt?
-
das mit dem RowCount-6 hatte ich nur testweise eingegeben!
also reicht jetzt ein "," anstatt ";" ?
-
So, das hab ich jetzt schon, jetzt nur noch folgendes problem!
http://home.arcor.de/jr_vize_president_b-baron/Pixx/C++%20Problem.JPG
ich versteh einfach nicht, wieso der den eintrag sooft vervielfältigt wird !?! ich drücke doch nur EINMAL drauf !
und totaler schwachsinn ist auch, dass er jetzt meine überschriften einfach wegmacht!

-
Die Überschriften löschst du doch damit
for (int y = 1; y < list2->Count; y++) StringGrid1->Rows[y - 1]->CommaText = list2->Strings[y];selber weg. Rows[0] ist deine Überschriftenzeile. Also mach das -1 da weg.
Hast du dein list->Add(... in der Speichernfunktion immernoch in einer Schleife? Warum eigentlich. Du mußt doch bei jedem Klick nur einmal speichern.
Wie schon einmal gesagt, schreib doch direkt in den StringGrid.void __fastcall TForm2::Button2Click(TObject *Sender) { // StringGrid speichern StringGrid1->RowCount++; int row = StringGrid1->RowCount-1; StringGrid1->Cells[0][row] = Form2->Edit3->Text; StringGrid1->Cells[1][row] = Form2->Edit4->Text; StringGrid1->Cells[0][row] = orm2->Label22->Caption; // usw. }Wenn du das Ganze dann in eine Datei Speichern willst mach das direkt aus dem StringGrid.
-
joa danke, jetzt funktionierts, jetzt muss ich das nur noch so hinbekommen, das er es in eine dateispeichert, also das es nachm neustart wieder abrufbar ist ! ma sehn ob ich das alleine hinbekomme!

-
sagtmal, würde das auch gehen, wenn ich diesen registry eintrag da mache ?
hier sowas? http://www.marquardtnet.info/cecke/quickies.1/1_quicky_15.html
-
Was für einen Registry-Eintrag. In dem verlinkten Beitrag geht es um globale Variablen und die solltest du auf jedem Fall vermeiden. Bei dir ist sowas auch nicht nötig.
-
achso okay,kann ich denn die daten speichern ? also beim speichern wird dann ein ordner erstellt (in dem verzeichnis wo die exe ist) bspw. DATA und dann eine datei die verschlüsselt ist, also keine normale text datei, die jeder einsehen kann?! ginge sowas?
-
Andy5000 schrieb:
achso okay,kann ich denn die daten speichern ? also beim speichern wird dann ein ordner erstellt (in dem verzeichnis wo die exe ist) bspw. DATA und dann eine datei die verschlüsselt ist, also keine normale text datei, die jeder einsehen kann?! ginge sowas?
also das mit dem verschlüssel das brauch ich jetzt nicht mehr, mir geht es jetzt nur noch darum, die "gespeicherten" daten in der StringGird in eine txt-file zuspeichern.
hab es schonmal so probiert, aber es funktioniert nicht richtig!
Also, ich habe einen Button mit ner MessageBox ("Wollen Sie vor dem Beenden speichern?") Wenn YES, dann Close(); Wenn NO, dann soll er SaveDialog öffnen und dann ne Fileauswählen kann (txt-file) und die dann einfach abspeichert und beim nächstenmal wenn man die Form4 öffnet, soll er die automatisch reinladen...[b]if[/b]... [b]else[/b](Form4->SaveDialog1->Execute() ==true) Form4->StringGrid1->Cells->SaveToFile(SaveDialog1->FileName);
-
Hallo
schau dir doch bitte mal an, was für ein Typ hinter Form4->StringGrid1->Cells steht, und ob dieser überhaupt eine solche Methode anbietet.
-
akari schrieb:
Hallo
schau dir doch bitte mal an, was für ein Typ hinter Form4->StringGrid1->Cells steht, und ob dieser überhaupt eine solche Methode anbietet.
Nein tut er leider nicht, da steht das es kein Element von TStringGrid sei.
Und nun?

-
Hallo
du must jeden einzelnen EIntrag in Cells manuell auslesen und in einem passenden Format zusammenfügen und speichern.
Tip : Schau in die BCB-FAQ hier im Forum, gleich ganz oben in der TOP3 ist ein Beispeil für Speichern beliebiger Werte. Dumust nur die Werte einer Zeile mit TAB getrennt aneinanderhängen. Diese Strings kannst du dann an die StringList anhängen.
Beim Auslesen ist es andersrum auszuführen.bis bald
akari
-
Man muss hier nicht unbedingt Cells bemühen. Sowohl Rows als auch Cols sind vom Typ TStrings. Es würde also reichen eine neue StringList zu erstellen und dann nacheinander mit AddStrings die Rows dort einzufügen. Zum Schluß muß man dann nur diese Liste mit SaveToFile speichern. Rückwärts ist es natürlich etwas schwieriger.
-
ich komm einfach nicht weiter...
TStringList* Speichern = new TStringList; Speichern->Form4->StringGrid1->Cols[0] [row] Form4->StringGrid1->Cols[1] [row]das mit dem AddString versteh ich nicht, sry, bin noch ein Anfänger!
gib mir mal nen anfangstipp bitte
mfg
andy5000
-
Siehe FAQ unter "StringGrid".