Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Opendialog filename problem (https://www.delphipraxis.net/191605-opendialog-filename-problem.html)

Innovation 1. Feb 2017 12:48

Opendialog filename problem
 
Hallo,

vermutlich total der Anfängerfehler. Ich benutze einen TOpendialog um einen file auszuwählen und will dann in einer anderen procedure ein file benutzen.

Code:
procedure TForm1.Open1Click(Sender: TObject);
var
  bopendialog : TOpenDialog;
  //BFileName : string;
begin
  bopendialog := TOpenDialog.Create(Self);
  Bopendialog.Execute;
  //BFileName := Bopendialog.FileName;
end;

procedure TForm1.TestbtnClick(Sender: TObject);
begin
  testmemo.Lines.LoadFromFile(Bopendialog.FileName);
end;
ich erhalte folgende Fehlermeldung:

cannot open file ""...

und wie war das nochmal mit dem Opendialog.Free? Reicht es wenn ich das in TForm1.close reinapacke.

MfG

TBx 1. Feb 2017 12:58

AW: Opendialog filename problem
 
Aus Deiner Fehlermeldung entnehme ich, dass Du auch noch einen TOpenDialog mit dem Namen BOpenDialog auf der Form liegen haben musst.
Ansonsten könntest Du diesen in Deiner procedure TForm1.TestbtnClick nicht ansprechen.
In Deiner procedure TForm1.Open1Click erstellst Du aber immer einen neuen TOpendialog und verwendest diesen. Den auf der Form führst Du nie aus. Dadurch erhälst Du den leeren Filename.
Ändere es wie folgt ab, dann sollte es funktionieren:
Delphi-Quellcode:
procedure TForm1.Open1Click(Sender: TObject);
begin
  Bopendialog.Execute;
end;

procedure TForm1.TestbtnClick(Sender: TObject);
begin
  testmemo.Lines.LoadFromFile(Bopendialog.FileName);
end;

Luckie 1. Feb 2017 13:13

AW: Opendialog filename problem
 
Dann machen wir es doch gleich richtig sauber:
Delphi-Quellcode:
if BopenDialog1.Execute then
  testmemo.Lines.LoadFromFile(BopenDialog1.FileName);

himitsu 1. Feb 2017 13:39

AW: Opendialog filename problem
 
Aber das Hauptproblem war erstmal nicht die ständig neue TOpenDialog-Instanz, sondern die doppelte Definition der Variable bopendialog. :angle:

TBx 1. Feb 2017 13:40

AW: Opendialog filename problem
 
Zitat:

Zitat von himitsu (Beitrag 1360556)
Aber das Hauptproblem war erstmal nicht die ständig neue TOpenDialog-Instanz, sondern die doppelte Definition der Variable bopendialog. :angle:

JAIN. Hätte er die Instanz nicht creiert, wäre ihm das Programm mit einer entsprechenden Fehlermeldung um die Ohren geflogen.

Bernhard Geyer 1. Feb 2017 16:51

AW: Opendialog filename problem
 
Zitat:

Zitat von TBx (Beitrag 1360557)
Zitat:

Zitat von himitsu (Beitrag 1360556)
Aber das Hauptproblem war erstmal nicht die ständig neue TOpenDialog-Instanz, sondern die doppelte Definition der Variable bopendialog. :angle:

JAIN. Hätte er die Instanz nicht creiert, wäre ihm das Programm mit einer entsprechenden Fehlermeldung um die Ohren geflogen.

Das bopendialog das er in der zweiten Methode anspricht ist aber ein anderes das immer wieder in der ersten Methode erzeugt.

himitsu 1. Feb 2017 17:01

AW: Opendialog filename problem
 
Zitat:

Zitat von TBx (Beitrag 1360557)
JAIN. Hätte er die Instanz nicht creiert, wäre ihm das Programm mit einer entsprechenden Fehlermeldung um die Ohren geflogen.

Ja, bezogen auf Open1Click.

Aber bezogen auf "der FileName ist leer" in TestbtnClick lag es an der Doppelten Variable.
Hätte er da die Richtige genommen, wäre zwar immernoch der Dialog doppelt, aber das Auslesen hätte immer geklappt.
"immer", wenn auf der Form ein TOpenDialog lag, was hier ich annehm, aber wie und wo das golbale Bopendialog definiert war, wurde ja nicht verraten. :angle:

Innovation 2. Feb 2017 08:28

AW: Opendialog filename problem
 
Danke für die Antworten.:thumb:


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