Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Opendialog.filename - Problem (https://www.delphipraxis.net/33921-opendialog-filename-problem.html)

MrFish 14. Nov 2004 22:12


Opendialog.filename - Problem
 
Nabend Leute;

Ich hab mal wieder ein Problem:
Ich kann die StringList nicht mit OpenDialog.FileName öffnen.
Ich erhalte die Meldung EAopen Error kann die Datei c:\delphi\€ÄB :cyclops: nicht öffen.
Im Objektinspektor steht korrekt c:\delphi\42_2004.pln.
Wie kann das? :gruebel:

Delphi-Quellcode:
procedure TWochenplan.OpenDialog1Close(Sender: TObject);
Var
  LoadKW : TStringlist;
  i     : Integer;
  j     : Integer;
  l     : Integer;
  test  : String;
begin
test := OpenDialog1.Filename;
LoadKW := TStringlist.Create;
LoadKW.LoadFromFile(Opendialog1.FileName);
KW.Text  := LoadKW[0];
Jahr.Text := LoadKW[1];

l := 2;
for i := 0 to 15 do
begin
  for j := 1 to 40 do
  begin
    StringGrid1.Cells[i,j] := LoadKW[l];
    l := l+1;
  end;
end;
end;

Luckie 15. Nov 2004 00:13

Re: Opendialog.filename - Problem
 
Äh, warum steht der Code in OpenDialogClose? Soöllte er nicht in einem Button- oder Menüklick Ereignis stehen?

alcaeus 15. Nov 2004 00:31

Re: Opendialog.filename - Problem
 
Hi MrFish,

wie Luckie schon richtig bemerkt hat sollte der Code wirklich nicht im OnClose des OpenDialogs stehn. Dieses Ereignis wird nämlich auch ausgelöst, wenn auf "Abbrechen" geklickt wird. Vielmehr würd ich das ganze im OnClick eines Buttons wie folgt machen:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  LoadKW : TStringlist;
  i     : Integer;
  j     : Integer;
  l     : Integer;
  test  : String;
begin
  if OpenDialog1.Execute then
  begin
    LoadKW := TStringlist.Create;
    LoadKW.LoadFromFile(Opendialog1.FileName);
    KW.Text  := LoadKW[0];
    Jahr.Text := LoadKW[1];

    l := 2;
    for i := 0 to 15 do
    begin
      for j := 1 to 40 do
      begin
        StringGrid1.Cells[i,j] := LoadKW[l];
        l := l+1;
      end;
    end;
  end;
end;
TOpenDialog.Execute zeigt den OpenDialog an, und liefert true zurück, falls auf "Öffnen" geklickt wurde. So kannst du sicherstellen, dass der Code wirklich nur ausgeführt wird, falls eine Datei ausgewählt wurde.

Greetz
alcaeus

MrFish 15. Nov 2004 13:36

Re: Opendialog.filename - Problem
 
Ich danke euch für euren Tip, habe ich umgesetzt.
Leider behebt das nicht mein Problem. Es scheint so zu sein das Opendialog1.Filename nicht richtig übergebn wird. Wenn ich den Ausdruck Test mit dem Debugger überwache erhalt ich nur kryptische Zeichen.

Vieleicht habt Ihr auch dafür eine Idee.

Gruß MrFish :hi:

Steve 15. Nov 2004 13:53

Re: Opendialog.filename - Problem
 
Hi,

falls Du alcaeus' Code benutzt hast: Da wird 'test' gar nimmer benutzt, test wird also kein Wert zugewiesen und ist somit nicht initialisiert. Da kann schonmal Unfug dabei rauskommen. (Kryptische Zeichen z.B.)

Gruß
Stephan :dance:

MrFish 15. Nov 2004 14:03

Re: Opendialog.filename - Problem
 
Huraaaaaa es geht.

Danke :love:


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:19 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 by Thomas Breitkreuz