![]() |
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 |
Da gibts besser Komponenten für. Ein Stringgrid ist kaum geeignet!
|
Ok dann sag mit bitte welche komponente besser ist!
|
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. |
Naja zur not ja aber ich habe ne Tabelle mit:
Aktienname | Kurs | Order | Kaufpreis | Verkaufs oreder | Verkaufpreis Die alle in ein Memo? |
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: |
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:
Hier ein Beispielergebnis der Speicherung:
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;
Code:
Der Code überprüft zur Zeit noch nicht, ob überhaupt eine Selektion stattgefunden hat.
2
4 1 3 2*1 2*2 2*3 3*1 3*2 3*3 4*1 4*2 4*3 |
Ich teste das heute abend mal ich sag dann wie es funzt oder ob ich noch Fragen habe!
Danke auf jeden Fall. |
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:
Gruß Oki
// kein Eintrag selectiert
IF MyList.Selection = nil then Exit; |
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 08:37 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