![]() |
stringgrid-komponente
ich hab da ein problemchen :firejump: , und zwar hab ich ein programm auf wunsch einer person geschrieben, wo man nach und nach etwas in einer stringgrid-komponente eintragen kann. Das kann man dann auch alles ändern oder löschen und so. Bloss frag ich mich nur wie ich die einträge am besten speichere, bzw. dann laden lasse! kann mir da einer helfen! Is ne Kennwortliste, weil man ja da auch mal nen Überblick verlieren kann :mrgreen: danke schonmal |
Ist die Spaltenzahl variabel?
|
na knapp daneben, die spaltenzahl ist konstant bei 3 (Verwendung-Benutzename-Passwort), die zeihlenanzahl ändert sich hingegen (anfangs 2: 1. für kopfzeile....2.für ersten eintrag). dann kann man mit hinzufügen-knopf immer mehr zeilen erstellen! bis ende von byte, aber ich denke es geht kaum über 20 hinaus!
|
Hallo Haegar,
also, wenn Du die Einträge speichern willst, solltest Du sie vielleicht in einer Datenbank ablegen. Dazu benutzt Du am besten eine DBGrid-Komponente aus dem Folder "Datensteuerung" und verknüpfst es mit einer Datasource- und Table- Komponente, die den Datenbankzugriff steuern. Den Rest machen die DB-Komponenten (Laden und speichern). Ah, eine kleine Tabelle DBase oder Excel, oder Paradox solltest du dir noch anlegen und mit der Table Komponente verknüpfen. Hoffe Du kommst klar ... Hacki |
tja mit klarkommen is sone sache. in der schule habe wir letztes jahr (12.) mit TP angefangen lol, dann sind wir dieses jahr auf delphi umgestiegen, und behandeln gerade rekursion und so. hab zwar ein buch aus der schule mitgehen lassen, und mir noch kleinigkeiten angeeignet, aber das hilft mir nun nicht mehr weiter! und das dicke delphi-buch bekomm ich erst zu weihnachten ;)
fazit-> bin so ziemlich völliger anfänger, also ich will damit sagen, das ich meiner meinung nach mit der stinggrid-k. den einfachsten weg gewählt habe (wegen tabellenform), aber ich denke mal eurer meinung nach den schwierigsten oder? ;) |
Warum für sowas auf die BDE zurückgreifen?
Nimm ne Ini Datei! Da mußt du einmal die Zeilenanzahl speichern und dann speicherst du den Inhalt der Einzelnen Zellen über ne Schleife z.B. unter einem Namen wie Zelley-x. Dann sieht die Ini z.B. wi folgt aus: Anzahl=1 Zelle1-1=blabla Zelle1-2=blabla2 Zelle1-3=blabla3 Das Einlesen kannst du auch leicht über ne Schleife wieder machen, da du ja dir Zeilenanzahl gespeichert hast. Nimm das als Anhaltspunkt, damit müßte es leicht zu schaffen sein (frei Hand geschrieben):
Code:
StringGrid1.RowCount:=anzahl;
For y:=1 to anzahl do For x:=1 to 3 do StringGrid1.Cells[y,x]:=Ini.ReadString('Text','Zelle'+InttoStr(y)+'-'+InttoStr(x),''); |
@ Tpercon
StringGrid1.Cells[y,x]:=Ini.ReadString('Text','Zelle'+InttoStr(y)+'-'+InttoStr(x),''); kannste mir den teil mal erklären (den linken versteh ich ja aber den rechten net)?? und soll das jetzt schon mit speichern und so sein?? also ich bin eigentlich an jenem punkt! ButtonSave.click... und nu? :roll: |
Oder Einfach eine Textdatei:
Delphi-Quellcode:
//------------- SPEICHERN ----------------
procedure TForm1.Button4Click(Sender: TObject); var i,y :integer; list : TStringlist; begin list := TStringlist.Create; for i:=0 to stringgrid1.colcount-1 do begin for y := 0 to stringgrid1.RowCount-1 do begin list.Add(stringgrid1.Cells[i,y]); end; end; list.SaveToFile('C:\Strings.txt'); list.Free; end; //-------- LADEN --------- procedure TForm1.Button5Click(Sender: TObject); var i,y :integer; ffile:textfile; st:string; begin assignfile(ffile,'C:\Strings.txt'); reset (ffile); for i:=0 to stringgrid1.colcount-1 do begin for y := 0 to stringgrid1.RowCount-1 do begin readln(ffile,st); stringgrid1.cols[i].add(st); end; end; closefile(ffile); end; |
Und nochmal ne andere Ladelösung:
Delphi-Quellcode:
procedure TForm1.Button6Click(Sender: TObject);
var i,y,count :integer; list : TStringlist; begin list := TStringlist.Create; list.LoadFromFile('C:\Strings.txt'); count := -1; for i:=0 to stringgrid1.colcount-1 do begin for y := 0 to stringgrid1.RowCount-1 do begin inc(count); stringgrid1.Cells[i,y]:=list.strings[count]; end; end; list.Free; end; |
Zitat:
Das Beispiel von FuckRacism ist auch recht einfach und hat den Vorteil man brauch Ini nicht unter Uses einbinden. Ansonsten vielleicht etwas schwieriger zum Verstehen. Außerdem wird da die Anzahl Zelen nicht berücksichtigt, was aber auch nur eine Zeile Ergänzung wäre. Gruß |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:51 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 by Thomas Breitkreuz