Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   TComboBox gespeicherte Dateien anzeigen lassen und öffnen. (https://www.delphipraxis.net/184191-tcombobox-gespeicherte-dateien-anzeigen-lassen-und-oeffnen.html)

M1ndgr4ve 6. Mär 2015 08:06

TComboBox gespeicherte Dateien anzeigen lassen und öffnen.
 
Guten Tag allerseits


Ich möchte ich meinem Program eine Treeview einstellung abspeichern und öffnen können. Gespeichert wird es indem man in einer Edit Komponente den Speichernamen eintippt und auf den

Speicherbutton drückt. Bis jetz funktionierts. Zumm öffnen dachte ich mir das könnte man mit einer TComboBox machen funktioniert im Prinzip auch jedoch nur wenn man in der Box den

Speichernamen angibt. Ich möchte aber das wenn man bei der ComboBox auf den Pfeil geht, die Dateien die man öffnen kann/möchte, gleich angezeigt werden.

Da ich das nie gemacht habe, habe ich auch keine Ahnung wie das gehen könnte.

Hat jemand eine Idee?


Greez

Sir Rufo 6. Mär 2015 08:33

AW: TComboBox gespeicherte Dateien anzeigen lassen und öffnen.
 
Es ist eigentlich ganz einfach:

Erstelle dir eine Liste mit allen Dateien, die du öffnen könntest und klatsche diese Liste an die ComboBox

M1ndgr4ve 6. Mär 2015 08:40

AW: TComboBox gespeicherte Dateien anzeigen lassen und öffnen.
 
Ok? Ääähm und jetz speziell für mich bitte :stupid:

Luckie 6. Mär 2015 22:11

AW: TComboBox gespeicherte Dateien anzeigen lassen und öffnen.
 
Was wird hier wie, wo gespeichert? Ein Edit kann nur Eingaben entgegennehmen, aber nichts speichern.

Sir Rufo 7. Mär 2015 08:54

AW: TComboBox gespeicherte Dateien anzeigen lassen und öffnen.
 
Ist es das hier Most Recently Used was gemeint ist? Dann steht die Erläuterung der Umsetzung auch da :stupid:

M1ndgr4ve 9. Mär 2015 08:22

AW: TComboBox gespeicherte Dateien anzeigen lassen und öffnen.
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe hier mal einen Screen hochgeladen von der Oberfläche. Vlt. versteht ihr so was ich meine.

Wenn ich im Edit Fenster den speichernamen eingebe und auf Speichern Drücke ist der TreeView gesaved.

Und die gesaveden .txt Dateien möchte ich mir dann direkt darunter anzeigen lassen damit ich nicht erst in

einem anderen Fenster suchen muss. Aber hab auch schon wieder diverse andere Probleme entdeckt ^^

DeddyH 9. Mär 2015 08:26

AW: TComboBox gespeicherte Dateien anzeigen lassen und öffnen.
 
Dann speichere die Dateinamen irgendwo an bekannter Stelle ab (Textdatei, IniFile, Registry, etc.) und lies sie später wieder aus.

Sir Rufo 9. Mär 2015 08:30

AW: TComboBox gespeicherte Dateien anzeigen lassen und öffnen.
 
Es gibt aber keinen Zauberbefehl in Delphi oder eine Zauber-ComboBox.

Wenn in der ComboBox bestimmte Werte in der Liste stehen sollen, dann muss man diese Werte in die Items-Eigenschaft der ComboBox eintragen.

Sollen diese Werte auch das Programm-Ende überleben, dann muss man diese Werte sogar (selber programmieren) irgendwie auf dem Datenträger speichern und beim nächsten Start von dort hervorholen und wieder der ComboBox zuweisen.

M1ndgr4ve 9. Mär 2015 08:39

AW: TComboBox gespeicherte Dateien anzeigen lassen und öffnen.
 
Danke Sir Rufo... Für deine Aufklärung das es keinen Zauberbefehl gibt.

Und DeddyH: Wie gesagt das speichern und der speicherort ist kein Problem. Aber ich habe keine Ahnung wie man es wieder ausliest.

DeddyH 9. Mär 2015 08:50

AW: TComboBox gespeicherte Dateien anzeigen lassen und öffnen.
 
Wie speicherst Du denn?

Sir Rufo 9. Mär 2015 08:51

AW: TComboBox gespeicherte Dateien anzeigen lassen und öffnen.
 
Na ganz einfach so (z.B. mit Delphi-Referenz durchsuchenTIniFile):
Delphi-Quellcode:
procedure SaveStringsToIni( Ini : TCustomIniFile; const Section, Ident : string; AStrings: TStrings );
begin
  Ini.WriteString( Section, Ident, AStrings.CommaText );
end;

procedure LoadStringsFromIni( Ini : TCustomIniFile; const Section, Ident : string; AStrings: TStrings );
begin
  AStrings.CommaText := Ini.ReadString( Section, Ident, '' );
end;

M1ndgr4ve 9. Mär 2015 08:58

AW: TComboBox gespeicherte Dateien anzeigen lassen und öffnen.
 
procedure TForm1.SpeichernButtonClick(Sender: TObject);
var
F: TFileStream;
begin
F := TFileStream.Create('D:\\TreeView.txt', fmCreate or fmShareCompat);
try
F.WriteComponent(TreeView1);
finally
F.Free;

end;

Bei mir sieht das so aus. Wird daran liegen das ich das erst seit 2 Wochen mache ^^

DeddyH 9. Mär 2015 09:05

AW: TComboBox gespeicherte Dateien anzeigen lassen und öffnen.
 
Wenn Du immer hardkodiert nach D:\Treeview.txt speicherst, brauchst Du auch keine Liste.

M1ndgr4ve 9. Mär 2015 09:12

AW: TComboBox gespeicherte Dateien anzeigen lassen und öffnen.
 
Das ist momentan noch hauptsächlich für mich damit es überhaupt irgendwo abspeichert.

Das ganze kommt später auf einen Chip bzw. der Tree.

Die Software ist dann nur da um zB. Parents zu erstellen oder einfach im allgmeinen für den Betrieb vorzubereiten.

Auch wenn ich das so mache sollte ich mir das doch anzeigen lassen können?

DeddyH 9. Mär 2015 09:15

AW: TComboBox gespeicherte Dateien anzeigen lassen und öffnen.
 
Vielleicht reden wir an einander vorbei. Ich dachte, es geht eher nicht darum, wie man den Inhalt einer TreeView abspeichert, sondern darum, dass man sich eine Liste der Speicherdateien erstellt und diese abspeichert bzw. neu einliest.

M1ndgr4ve 9. Mär 2015 09:18

AW: TComboBox gespeicherte Dateien anzeigen lassen und öffnen.
 
Ja eben ^^ Das speichern klappt ja.

Nur das auslesen nicht.

Oder muss ich das mit dem speichern anders machen damit ichs auslesen und anzeigen lassen kann?

DeddyH 9. Mär 2015 09:20

AW: TComboBox gespeicherte Dateien anzeigen lassen und öffnen.
 
Dein Code oben ist für das Speichern der TreeView an sich zuständig. Das hat aber nichts mit der Liste der Speicherdateien zu tun.

M1ndgr4ve 9. Mär 2015 09:25

AW: TComboBox gespeicherte Dateien anzeigen lassen und öffnen.
 
Ja das ist mir klar. Ich wurde gefragt wie ich speichere deswegen hat sich das Gespräch glaub grad ein bisschen verlagert.

DeddyH 9. Mär 2015 09:30

AW: TComboBox gespeicherte Dateien anzeigen lassen und öffnen.
 
OK, dann mal ganz langsam: pack Dir am Besten einen TSaveDialog auf Dein Formular, damit der Anwender den Speicherort bestimmen kann. Für die Liste der Dateinamen kann man eine TStringlist nehmen, die man im FormCreate erzeugt und im FormDestroy wieder freigibt. Damit keine doppelten Dateinamen vorkommen, kann man Sorted auf true und Duplicates auf dupIgnore setzen. So, wenn der Anwender nun also eine Speicherdatei festgelegt hat, fügt man diesen der Liste hinzu und speichert diese dann ab. Zusätzlich kann man sie noch den ComboBox.Items zuweisen (ComboBox.Items.Assign(Liste)). Genügen Dir diese Infos vorerst?

M1ndgr4ve 9. Mär 2015 09:33

AW: TComboBox gespeicherte Dateien anzeigen lassen und öffnen.
 
Super !! Danke ja das hilft mir.

Jumpy 9. Mär 2015 10:32

AW: TComboBox gespeicherte Dateien anzeigen lassen und öffnen.
 
Wenn die gespeicherten Dateien immer in das selbe Verzeichnis gespeichert werden, dass entweder hardcodiert oder irgendwie kofigurierbar ist, dann könnte es für das Füllen der Combobox oder Listbox ausreichen, beim Programmstart und danach bei Bedarf dieses Verzeichnis nach Dateien zu durchsuchen. Dafür sollten sich hier in der DP viele Beispiele finden lassen.

Sollten die Dateien dagegen irgendwo gespeichert werden können, ist der SaveDialog, den DeddyH vorgeschlagen hat sinnvoll. Dann musst du aber noch dafür sorgen, dass du in deiner Anwendung eine Struktur/Liste verwaltest, in der gespeicherte Dateinamen drin stehen. Diese Liste musst du dann natürlich auch bei Progammende irgendwo speichern und beim nächsten Start ggf. wieder laden können.
Als einfachste Struktur bietet sich dafür eine Stringlist an, oder eine Ini-Datei, wie von Sir Rufo vorgeschlagen.


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