AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

OpenDialog Mehrfachauswahl, Filename

Ein Thema von Freyr77 · begonnen am 19. Jul 2016 · letzter Beitrag vom 27. Jul 2016
Antwort Antwort
Seite 1 von 3  1 23      
Freyr77
(Gast)

n/a Beiträge
 
#1

OpenDialog Mehrfachauswahl, Filename

  Alt 19. Jul 2016, 10:15
Delphi-Version: 10 Seattle
Ich würde gerne mit einem OpenDialog folgendes realisieren:

Mehrere Dateien einer bestimmten Art auswählen, die einzelnen Filenames auslesen und anschließend untereinander in einem StringGrid darstellen.

Ich hab das jetzt erstmal Testweise so gelöst:

Delphi-Quellcode:
OpenDialog1.Options := [ofAllowMultiSelect];
OpenDialog1.Execute();
ShowMessage(OpenDialog1.FileName);
um zu sehen, was der eigentlich ausließt wenn man mehrere Dateien auswählt.

Mir ist bekannt wie man die Daten in das StringGrid einträgt.

Was ich wissen wollte ist:

Ich habe dem OpenDialog gesagt er soll nach .dproj - Dateien filtern. Für den Multiselect wäre es hilfreich wenn die Ordner in denen sich die Dateien befinden nicht mit angezeigt werden. Geht das irgendwie?

Wie lese ich die gewählten Dateinamen einzeln aus um sie dem StringGrid zuzuweisen?
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.771 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: OpenDialog Mehrfachauswahl, Filename

  Alt 19. Jul 2016, 10:23
.. sollte so funktionieren:
ShowMessage(extractFilename(OpenDialog1.FileName)); Wenn Du allerdings mit Multiselselect arbeitetest solltest Du dir OpenDialog1.Files anschauen.

Grüße
Klaus
Klaus

Geändert von Klaus01 (19. Jul 2016 um 10:26 Uhr)
  Mit Zitat antworten Zitat
Freyr77
(Gast)

n/a Beiträge
 
#3

AW: OpenDialog Mehrfachauswahl, Filename

  Alt 19. Jul 2016, 10:26
.. sollte so funktionieren:
ShowMessage(extractFilename(OpenDialog1.FileName)); Grüße
Klaus
Ja, Danke, damit sieht das ganze schon ordentlicher aus.
Ich wollte allerdings mehrere Dateien auf einmal anwählen und deren "Filenames" dann einzeln anzeigen lassen.
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.771 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: OpenDialog Mehrfachauswahl, Filename

  Alt 19. Jul 2016, 10:28
.. habe ich oben bereits ergänzt.
OpenDialog1.Files
Dies ist eine Liste mit den Dateinamen.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Freyr77
(Gast)

n/a Beiträge
 
#5

AW: OpenDialog Mehrfachauswahl, Filename

  Alt 19. Jul 2016, 10:31
Super, Danke!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#6

AW: OpenDialog Mehrfachauswahl, Filename

  Alt 19. Jul 2016, 14:51
Und nimm besser den TFileOpenDialog (VistaDialoge), statt dem TOpenDialog.

Emba war zwar auf die saudämliche geniale Idee gekommen den neuen Dialog intern zu verwenden, wenn man TOpenDialog verwendet und Windows diese API unterstützt/aktiviert hat,
aber ein paar neue Features wurden vergessen durchzureichen.
$2B or not $2B
  Mit Zitat antworten Zitat
Freyr77
(Gast)

n/a Beiträge
 
#7

AW: OpenDialog Mehrfachauswahl, Filename

  Alt 20. Jul 2016, 09:57
Irgendwie komm ich trotzdem nicht weiter.

Ich brauche dringend irgendeine Möglichkeit mehrere .dprojs auswählen und verarbeiten zu können. Ob durch Mehrfachauswahl auf einmal oder mehrere einzelne Auswahlen nacheinander.

Die ganze Prozedur mit der Auslesung und der Eintragung sieht (unfertig) so aus:

Delphi-Quellcode:
procedure TVersionNumberViewer.Button2Click(Sender: TObject);
var
  ProgrammName: string;
  iNummer, iName: integer;
  Abfrage: string;
  MaxAnzahl: integer;
begin
  MaxAnzahl := 8;
  OpenDialog1.Execute();

  // Programmname auslesen
  ProgrammName := (extractfilename(OpenDialog1.FileName));
  EditNameAuswahl.Text := (extractfilename(OpenDialog1.FileName));

  // XML-Dokument laden
  CurrentXML := NewXMLDocument;
  CurrentXML.LoadFromFile(String(OpenDialog1.FileName));
  CurrentXML.Active := True;

  // Versionsnummer auslesen
  for iNummer := 1 to MaxAnzahl do
  begin
    VersionsNummern[iNummer] := '0.0';
  end;

  // Eintragungen StringGrid
  for iNummer := 1 to MaxAnzahl do
  begin
    StringGrid1.Cells[0, 1] := ProgrammName;
    StringGrid1.Cells[1, iNummer] := inttostr(VersionsNummer);
  end;
Damit wird aber nur eins eingetragen. Weil dieses Programm aber unbedingt effizient werden muss, bräuchte ich hier dringend einen Lösungsansatz.
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.746 Beiträge
 
Delphi 2007 Professional
 
#8

AW: OpenDialog Mehrfachauswahl, Filename

  Alt 20. Jul 2016, 10:05
Damit wird aber nur eins eingetragen.
Weil du immer noch FileName und nicht Files benutzt?

BTW: Das
Delphi-Quellcode:
OpenDialog1.Execute();
...
schreibt man besser so:
Delphi-Quellcode:
if OpenDialog1.Execute then
begin
  ...
end;
Uli Gerhardt

Geändert von uligerhardt (20. Jul 2016 um 10:09 Uhr)
  Mit Zitat antworten Zitat
Freyr77
(Gast)

n/a Beiträge
 
#9

AW: OpenDialog Mehrfachauswahl, Filename

  Alt 20. Jul 2016, 10:09
Damit wird aber nur eins eingetragen.
Weil du immer noch FileName und nicht Files benutzt?
Das mit Files hat nicht so funktioniert wie ich mir das vorgestellt hatte Er zeigt mir trotz Mehrfachselektierung nur einen Programmnamen an. Damit komm ich nicht weiter.
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.746 Beiträge
 
Delphi 2007 Professional
 
#10

AW: OpenDialog Mehrfachauswahl, Filename

  Alt 20. Jul 2016, 10:16
Dann machst du was falsch.
Das funktioniert bei mir:
Delphi-Quellcode:
procedure TForm3.Button1Click(Sender: TObject);
var
  FileName: string;
begin
  ListBox1.Clear;
  if OpenDialog1.Execute(Handle) then
  begin
    for FileName in OpenDialog1.Files do
      ListBox1.Items.Add(FileName);
  end;
end;
Uli Gerhardt
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:02 Uhr.
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