Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi StrinGrid in einer Datei speichern und auch wieder öffnen (https://www.delphipraxis.net/4720-stringrid-einer-datei-speichern-und-auch-wieder-oeffnen.html)

dopeline 10. Mai 2003 13:01

mit der löschmethode (DeleteRow) löscht man immer die unterste zeile der tabelle. wie stelle ich das so um, dass nur die zeile, die ich markiert habe gelöscht wird?

Grüße, dopeline :dancer:

Jens Schumann 10. Mai 2003 18:20

Hallo dopeline,
ich habe DeleteRow gerade getestet. Es wird genau die Zeile gelöscht, die im Paramter ARow übergeben wird.

dopeline 10. Mai 2003 18:52

:( :( :( also irgentwie will das nicht...

und da gibt es keine andere möglichkeit?! :?

dass er einließt, in welcher zeile er gerade ist und diese dann löscht.

ssach 11. Mai 2003 02:21

hy,

also saven kannstdu ein stringrid in eine csv datei so :

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
R, C : integeR;
S : string;
begin
   if SaveDialog.Execute then
   begin
   for R := 0 to sg.RowCount - 1 do
      begin
         S := '';
         for C := 0 to sg.ColCount - 1 do
            S := S + sg.Cells[C,R] + ';';
         delete(S,length(S),1);  //loescht den ueberfluessigen ;
         lb.Items.Append(S);
      end;

   lb.Items.SaveToFile('SaveDialog.Filename');
   end;
end;
die passende funtion zum laden hab ich gerade nicht bei hand aber schicke dir sie so schnel es geht!

cu

dopeline 11. Mai 2003 07:05

Also das mit dem Speichern klappt schon wunderbar! jetzt ist noch dolgendes problem:

ich will (im laufenden programm) eine zeile markieren und diese dann mit einem button/short-cut entfehrnen. ich hab mir schon einige sachen ageschaut, aber da wurde immer nur die letzte (unterste) zeile der tabelle entfernt. man müsste gucken, welche zeile gerade markiert ist und sie dann löschen. (vielleicht mit onSelectCell ?)

Gruß, dopeline

Sharky 11. Mai 2003 07:52

Habe kein DeleteRow im StringGrid?
 
hmmm... eigentlich sollte das mit

StringGrid.DeleteRow (Stringgrid.row);

gehen. Aber mein StringGrid hat die Methode DeleteRow nicht :?:

Kann mir einer sagen warum?

dopeline 11. Mai 2003 14:38

ich hab da noch ne frage:

wenn ich eine datei öffne bearbeite und dann wieder speichern will, erscheint immer der savedialog. beim abspeichern kommt dann die anfrage zum überschreiben (ist auch richtig so). das ist aber eher eine "Speichern unter"-Lösung. ich will, dass wenn ich ein dokument öffne, bearbeite und dann normal auf "speichern" (nicht auf "speichern unter") gehe, er das dokument am gleichen ort und mit dem gleich dateinamen abspeichert. (ohne den savedialog!).

da müsste doch in einer variablen gespeichert werden, von wo die datei geöffnet wurde und wie sie heißt ==> und bei "normalem" speichern müsste er den savedialog weglassen. als dateipfad und dateiname springt dann die variable ein...

geht das irgentwie so in der art? (oder auch anders)
wenn ja, wie?

Grüße, dopeline

Luckie 11. Mai 2003 15:45

Das geht genauso, wie du es beschrieben hast. Warum programmierst du es nicht einfach und kuckst, was passiert? :roll:

dopeline 11. Mai 2003 18:36

ok habs hinbekommen. ich hab gesagt er soll beim öffnen die daten einlesen:
Code:
datei:=opendialog1.filename;
und beim "normalen" speichern guckt er, ob in "date" etwas drin steht.
wenn ja:
Code:
SaveToFile(datei);
wenn nicht, kommt der saveialog.

funktioniert super!

dopeline 11. Mai 2003 18:41

wie mache ich es, wenn die datei erfolgreich (ohne savedialog) abgespeichert wurde, dass unten in der satusbar, für eine gewisse zeit, eine Meldung kommt (z.b."Das Dokument wurde erfolgreich gespeichert")?


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:25 Uhr.
Seite 2 von 2     12   

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