Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi stringgrid-komponente (https://www.delphipraxis.net/1585-stringgrid-komponente.html)

Haegar 10. Dez 2002 21:09


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

Tpercon 10. Dez 2002 21:24

Ist die Spaltenzahl variabel?

Haegar 10. Dez 2002 21:29

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!

hacki 10. Dez 2002 21:29

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

Haegar 10. Dez 2002 21:32

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? ;)

Tpercon 10. Dez 2002 21:44

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),'');

Haegar 10. Dez 2002 21:52

@ 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:

RomanK 10. Dez 2002 21:53

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;

RomanK 10. Dez 2002 22:03

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;

Tpercon 10. Dez 2002 22:05

Zitat:

Zitat von Haegar
@ Tpercon

StringGrid1.Cells[y,x]:=Ini.ReadString('Text','Zelle'+InttoStr(y)+'-'+InttoStr(x),'');
[color=#000000]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??

Das war natrülich nur das Laden (daher .ReadString!). Schau dir mal die Hilfe zu den Ini's an! Ist ganz einfach!
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 06:59 Uhr.
Seite 1 von 3  1 23      

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