Einzelnen Beitrag anzeigen

Benutzerbild von ConnorMcLeod
ConnorMcLeod

Registriert seit: 13. Okt 2010
Ort: Bayern
490 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Opendialog wird in IDE nicht angezeigt

  Alt 7. Mai 2011, 02:36
Theoretisch kann gar kein leerer Filename ausgewählt werden, d.h. Execute kann nur False sein; wie auch immer:
Habe mir erlaubt, das ein bisschen umzubauen. Mir fehlen die DXF-Klassen, aber die Logik mit OpenDialog funkt.

Du bist besser dran, wenn keine exits mitten in der Funktion sind. Wenn überhaupt, dann gut sichtbar am Beginn einer Funktion.

Wenn DxfFile global ist, dann ist IMHO hier der falsche Zeitpunkt, es zu erzeugen.

Delphi-Quellcode:
procedure TForm1.Button3Click(Sender: TObject);
Var
  DxfFilename : string;
  opdlg_DxfOpen: TOpenDialog;
  dxl : TDXF_Layer;
  DXXF : TDxf_Entitie;
begin
  opdlg_DxfOpen := TOpenDialog.Create(Self);
  try
    opdlg_DxfOpen.InitialDir := ExtractFilePath( Application.ExeName);
    if opdlg_DxfOpen.Execute and ('' <> opdlg_DxfOpen.FileName) then
    begin
      DxfFileName := opdlg_DxfOpen.FileName;
      DXFFileReader := TDxfReader.Create(dxfFilename);
      try
        if DXFFileReader.DxfOk then
        begin
          DxfFile := TDxf_File.Create; // ist das global? wo wird das freigegeben?
          DXFFileReader.DxfFile := DxfFile;
          DXFFileReader.Execute;
        end;
      finally
        FreeAndNil(DXFFileReader);
      end;
      DxfFile.Calculate;
      FDxfFileShow := True;
      ShowMinMax;
    end
    else
    begin
      ShowMessage('Fehler beim Öffnen der Datei.');
    end;
  finally
    FreeAndNil(opdlg_DxfOpen);
  end;
end;
Nr.1 Delphi-Tool: [F7]
  Mit Zitat antworten Zitat