Delphi-PRAXiS
Seite 1 von 2  1 2   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Stringgrid (oder was anders?): Nur makierte Zeilen speichern (https://www.delphipraxis.net/3000-stringgrid-oder-anders-nur-makierte-zeilen-speichern.html)

Quick_silver 17. Feb 2003 19:06


Stringgrid (oder was anders?): Nur makierte Zeilen speichern
 
Wie kann ich alle Makierten zeilen in einer Datei speichern Lassen? Und wieder Laden?
Ich wil ldas man sich aus einer liste Favoriten aussuchen kann!
Schon mal vielen Dank :D

Touchdown 17. Feb 2003 20:05

Da gibts besser Komponenten für. Ein Stringgrid ist kaum geeignet!

Quick_silver 17. Feb 2003 20:09

Ok dann sag mit bitte welche komponente besser ist!

Touchdown 17. Feb 2003 20:42

Hm der Standard gibt net viel her seh ich gerade.

Gehen würden 2 Memofelder wo in der Mitte 2 Buttons mit jeweils Pfeilen drauf zum verschieben der Inhalte.

Über den Itemindex gekommste den Wert zu packen. Bei dem einen Memofeld machste ein Delete und beim anderen ein Add, je nachdem welcher Button.

Musst schon ein paar Abfragen einbauen, vor allem auf Itemindex > 0 usw.

Quick_silver 17. Feb 2003 20:49

Naja zur not ja aber ich habe ne Tabelle mit:
Aktienname | Kurs | Order | Kaufpreis | Verkaufs oreder | Verkaufpreis

Die alle in ein Memo?

Quick_silver 17. Feb 2003 20:55

Ich würde dann eher ne Listbox nehmen wo nur der Aktienname steht.
Dann sagt mir wie ich den Inhalt so einer Listbox Speichern Laden kann!

Oder geht es doch über die StrinGrid (wäre das beste)
Und den Ganzen Speichern geht ja also wieso nicht nur makierte Zeilen?

Gute Nacht erstmal bis Morgen :witch:

MrSpock 18. Feb 2003 07:03

Hallo Quick_silver,

du kannst ja mit Selection feststellen, welche Zellen markiert sind und dann z.B. über das Cell-array direkt auf die entsprechenden Zellen zugreifen. Die Ergebnisse könntest du in eine Textdatei speichern:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
   i, j : Integer;
   save : TextFile;
begin
   { Zum Test füllen }
   for i := StringGrid1.Selection.Left to StringGrid1.Selection.Right do
     for j := StringGrid1.Selection.Top to StringGrid1.Selection.Bottom do
        StringGrid1.Cells[i,j]:= IntToStr(i)+'*'+IntToStr(j);

   { Selektion speichern }
   AssignFile(save, 'C:\tmp\save_cells.txt');
   Rewrite(save);
   writeln(save, StringGrid1.Selection.Left);
   writeln(save, StringGrid1.Selection.Right);
   writeln(save, StringGrid1.Selection.Top);
   writeln(save, StringGrid1.Selection.Bottom);
   for i := StringGrid1.Selection.Left to StringGrid1.Selection.Right do
     for j := StringGrid1.Selection.Top to StringGrid1.Selection.Bottom do
      writeln(save,    StringGrid1.Cells[i,j]);
   CloseFile(save);
end;
Hier ein Beispielergebnis der Speicherung:
Code:
2
4
1
3
2*1
2*2
2*3
3*1
3*2
3*3
4*1
4*2
4*3
Der Code überprüft zur Zeit noch nicht, ob überhaupt eine Selektion stattgefunden hat.

Quick_silver 18. Feb 2003 14:01

Ich teste das heute abend mal ich sag dann wie es funzt oder ob ich noch Fragen habe!
Danke auf jeden Fall.

oki 18. Feb 2003 15:46

Noch nen Tip,

wenn es eine Eigenschaft MultiSelection gibt kannst Du dort festlegen, ob mehr als ein Eintrag selectiert werden kann. Verbirgt sich hinter den Items ein Object-Typ (z.B. TListItem) kannst Du durch Prüfen auf nil herausbekommen das kein Eintrag selectiert ist.
Bsp.:
Delphi-Quellcode:
 // kein Eintrag selectiert
 IF MyList.Selection = nil then Exit;
Gruß Oki

Quick_silver 18. Feb 2003 18:07

Aber wie lade ich den Inhalt wieder?

Der speichert so ja nur die Positoionen und nciht den Inhalt


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:11 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