Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi TOpenDialog: nur TXTs öffnen können (https://www.delphipraxis.net/39134-topendialog-nur-txts-oeffnen-koennen.html)

bogomip 29. Jan 2005 11:00


TOpenDialog: nur TXTs öffnen können
 
Hallo,

ich möchte erreichen, dass ich mit einem TOpenDialog nur *.txt Dateien öffnen kann.
Die Filter-Eigenschaft habe ich schon probiert, bringt aber nichts, da man ja trotzdem mit "*" alles öffnen kann.

Deshalb möchte ich nach opnDatei.execute mit If einen Stringvergleich durchführen, wo ich opnDatei.FileName mit '*.txt' Vergleiche und opnDatei.FileName verwerfe und eine MSG Box ausgebe, wenn es keine txt ist. Dies funktioniert aber irgendwie nicht, ich bekomme immer "Typen inkompatibel".

Wie müsste dieser Stringvergleich aussehen?


Ach ja: Wie kann ich eigentlich mein Arbeitsverzeichnis einstellen?
Ich bekomme immer das Bin-Verzeichnis von Delphi angezeigt beim Speichern und öffnen, das nervt auf die Dauer etwas...


Vielen Dank für eure Hilfe,

bogomip :wink:

Neutral General 29. Jan 2005 11:12

Re: TOpenDialog: nur TXTs öffnen können
 
Delphi-Quellcode:
if ExtractfileExt(Opendialog1.Filename) = '.txt' then
machwasduwillst
else
ShowMessage('Es können nur Textdateien geöffnet werden !');

phXql 29. Jan 2005 11:19

Re: TOpenDialog: nur TXTs öffnen können
 
Delphi-Quellcode:
OpenDialog1.Filter := 'Nur Text-Dateien|*.txt';
müsste doch gehen...

Wuaegner 29. Jan 2005 11:26

Re: TOpenDialog: nur TXTs öffnen können
 
Ja das geht, im Objectinspektor auf Filter klicken und dann bei Filter *.txt eingeben.

bogomip 29. Jan 2005 11:45

Re: TOpenDialog: nur TXTs öffnen können
 
Hab ich gemacht mit dem Filter, aber das bringt doch nichts.
Mann muss nur im Dateifeld * eingeben und schon kann man wieder alle Dateien öffnen.

Jetzt habe ich es so:
Code:
repeat opnAdress.execute;
if ExtractFileExt(opnAdress.FileName) = '.txt' then
  begin
    FileName := extractfilename(opnAdress.FileName);
    FileDirectory := extractfilepath(opnAdress.FileName);
  end
  else begin
    showmessage('"'+ opnAdress.FileName + '"' + ' ist leider keine gültige txt-Datei!');
  end
until ExtractFileExt(opnAdress.FileName) = '.txt';
Funktioniert auch soweit, das Problem ist bloß, dass der OpenDialog auch wieder kommt, wenn man auf Abbrechen klickt :lol:

Und wie ist das mit dem Arbeitsverzeichnis?

mfg bogomip

Airblader 29. Jan 2005 11:45

Re: TOpenDialog: nur TXTs öffnen können
 
ABer der Filter gibt doch nur angezeigte Dateien (neben Ordnern) an.

Wenn man einen Dateinamen manuell eingibt, versucht er es trotzdem, oder?

air

Luckie 29. Jan 2005 11:56

Re: TOpenDialog: nur TXTs öffnen können
 
Delphi-Quellcode:
repeat
if opnAdresse.execute then
begin
if ExtractFileExt(opnAdress.FileName) = '.txt' then
  begin
    FileName := extractfilename(opnAdress.FileName);
    FileDirectory := extractfilepath(opnAdress.FileName);
  end
  else begin
    showmessage('"'+ opnAdress.FileName + '"' + ' ist leider keine gültige txt-Datei!');
  end;
end;
until ExtractFileExt(opnAdress.FileName) = '.txt';
Allerdings mich würde ein immer wieder aufpoppende Dialog ziemlioch nerven. :?

bogomip 29. Jan 2005 12:12

Re: TOpenDialog: nur TXTs öffnen können
 
Danke!

Tja, wer nicht fähig ist, eine Textdatein auszuwählen, kann auch etwas genervt werden :lol:

Christian Seehase 29. Jan 2005 13:19

Re: TOpenDialog: nur TXTs öffnen können
 
Moin Zusammen,

irgenwie scheint jeder die Ereignisse der Dialoge zu ignorieren ;-)

In diesem Falle käme das CanClose Ereignis in Frage:

Delphi-Quellcode:
procedure TForm1.OpenDialog1CanClose(Sender: TObject;var CanClose: Boolean);
begin
  CanClose := LowerCase(ExtractFileExt(OpenDialog1.FileName)) = '.txt';
end;


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