![]() |
Markierte Checklistboxeinträge speichern
Hi, hat jemand eine Idee, wie man nur die markierten
Checklistbox-Einträge speichert? Bei mir werden immer alle Einträge in einer Textdatei gespeichert statt nur die markierten. :twisted: |
Re: Markierte Checklistboxeinträge speichern
Moin Sui,
geh' in einer Schleife durch die Liste und schreibe nur die markierten Einträge. |
Re: Markierte Checklistboxeinträge speichern
Delphi-Quellcode:
...procedure TForm1.BitBtn7Click(Sender: TObject); var i: integer; begin for i := checklistbox1.Items.count-1 downto 0 do begin if checklistbox1.Checked[i] then begin Hm, stimmt das, bis dahin? |
Re: Markierte Checklistboxeinträge speichern
Zitat:
|
Re: Markierte Checklistboxeinträge speichern
Weil was fehlt was ich nicht hinkriege, das speichern...
|
Re: Markierte Checklistboxeinträge speichern
Ach ja.
Delphi-Quellcode:
:roll:
procedure TForm1.Button1Click(Sender: TObject);
var i: Integer; F: TextFile; begin AssignFile(F, 'x:\test.txt'); {$I-} Rewrite(f); if IOResult = 0 then begin for i := 0 to CheckListBox1.Items.Count - 1 do begin if CheckListBox1.Checked[i] then writeln(F, CheckListbox1.Items.Strings[i]); end; CloseFile(F); end {$I+} else RaiseLastOSError; end; |
Re: Markierte Checklistboxeinträge speichern
Eigentlich sollte es mit Ordner-Auswahl sein.
Warum klappt das denn nicht so:
Delphi-Quellcode:
Es werden wieder alle Einträge gespeichert, auch die nichtmarkierten.
var i: integer;
begin for i := 0 to checklistbox1.Items.count-1 do begin if checklistbox1.Checked[i] then begin if savedialog1.Execute then Checklistbox1.Items.SaveToFile(savedialog1.FileName); end; end; end; |
Re: Markierte Checklistboxeinträge speichern
Ok, habs so gemacht:
Delphi-Quellcode:
:drunken:
procedure TForm1.BitBtn7Click(Sender: TObject);
var i: Integer; F: TextFile; Pfad: string; begin if savedialog1.execute then begin pfad := extractfilename(savedialog1.FileName); AssignFile(F, Pfad + '.txt'); {$I-} Rewrite(f); if IOResult = 0 then begin for i := 0 to CheckListBox1.Items.Count - 1 do begin if CheckListBox1.Checked[i] then writeln(F, CheckListbox1.Items.Strings[i]); end; CloseFile(F); end ; end; end; end. |
Re: Markierte Checklistboxeinträge speichern
Delphi-Quellcode:
Und wo denkst du landet die Datei, wenn du nur den Dateinamen nimmst, aber ohne Pfadangabe? :gruebel:
pfad := extractfilename(savedialog1.FileName);
AssignFile(F, Pfad + '.txt'); Aus: "d:\eigene Daten\Bilder\Test.txt" wird bei dir "Test.txt". Desweiteren kann man beim SaveDialog eine standard Dateinamenerweiterung angeben, die genommen wird, wenn der Benutzer keine angibt. Das "+'.txt'" erübrigt sich dann auch. Ich sehe gerade, es fehlt auch noch das wieder einschalten des I/O-checkings {$I+}. |
Re: Markierte Checklistboxeinträge speichern
Hm, also es arbeitet wunderbar so.
War das einzige was mir heute nacht eingefallen ist. Mit dem I/O-checkings {$I+} weiss ich nicht so recht, kam immer ne Exception. Habs einfach weggelassen und scho hatt es geklappt. Die Pfadangabe hol ich mir doch mit dem Save-Dialog und speicher die in Pfad. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:52 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