AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Die Delphi-IDE Opendialog wird in IDE nicht angezeigt
Thema durchsuchen
Ansicht
Themen-Optionen

Opendialog wird in IDE nicht angezeigt

Offene Frage von "Flinx"
Ein Thema von ede57 · begonnen am 6. Mai 2011 · letzter Beitrag vom 28. Dez 2011
Antwort Antwort
Seite 1 von 3  1 23      
ede57

Registriert seit: 5. Apr 2008
Ort: Hamburg
46 Beiträge
 
Delphi XE Professional
 
#1

Opendialog wird in IDE nicht angezeigt

  Alt 6. Mai 2011, 21:40
Hallo,
wenn ich die procedure unter Win7 ausführe wird von > openDialog.Execute <
gleich nach > if dxfFilename = '' then Exit;< gesprungen
Also alles nach Execute wird gar nicht erst Ausgeführt
Außerhalb der IDE läuft alles i.o.

Habe Kasperski kein Avira.
Kasperski komplett ausgeschaltet
Trotzdem funktioniert es nicht

Bei einem Anderen Project funktioniert der OpenDialog innerhalb der IDE einwandfrei

Delphi-Quellcode:
procedure Tfo_main_form.sBtnLoadDxfFileClick(Sender: TObject);
Var
  DxfFilename : String;
  X,Y : integer;
  dxl : TDXF_Layer;
  DXXF : TDxf_Entitie;
begin
   opdlg_DxfOpen.InitialDir := ExtractFilePath( Application.ExeName);
   if opdlg_DxfOpen.Execute then
      begin
        DxfFileName := opdlg_DxfOpen.FileName;
        if dxfFilename = 'then Exit;
        DXFFileReader := TDxfReader.Create(dxfFilename);
        if DXFFileReader.DxfOk then
          begin
            DxfFile := TDxf_File.Create;
            DXFFileReader.DxfFile := DxfFile;
            DXFFileReader.Execute;
          end;
       FREEANDNIL(DXFFileReader);
      end;
// keine Datei ausgewählt
   if dxfFilename = 'then Exit;
   DxfFile.Calculate;
   FDxfFileShow := True;
   ShowMinMax;
end;
  Mit Zitat antworten Zitat
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
Benutzerbild von himitsu
himitsu

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

AW: Opendialog wird in IDE nicht angezeigt

  Alt 7. Mai 2011, 09:01
Und man kann dem Opendialog auch sagen, daß er die angegebene Datei prüfen soll (siehe .Options).
Dann läßt der Opendialog nur Dateinamen von existierenden Dateien zu.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
ede57

Registriert seit: 5. Apr 2008
Ort: Hamburg
46 Beiträge
 
Delphi XE Professional
 
#4

AW: Opendialog wird in IDE nicht angezeigt

  Alt 7. Mai 2011, 09:46
Vielleicht habe ich mich nicht richtig ausgedrückt.
Der OpenDialog wird gar nicht werst angezeigt bzw ausgeführt.
Vermute das der Fehler irgendwo im DFM liegt. Bei eine NEU erzeugten anwendung
funktioniert dieser CodeTeil einwandfrei.

Gibt es vielleicht unterschiede wenn man ein Formular mal mit D2010 und dann mit DXE
bearbeitet ??
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Opendialog wird in IDE nicht angezeigt

  Alt 7. Mai 2011, 10:15
Gibt es vielleicht unterschiede wenn man ein Formular mal mit D2010 und dann mit DXE
bearbeitet ??
Nee, eigentlich nicht.

Das Einzige, wo ich weiß, daß die dahinterliegende WinAPI einen Bug hat (schon seit vielen vielen Jahren) das ist,
wenn man bei Filename vor dem Aufruf einen ungültigen Pfad angegeben hat, dann wird der Dialog nicht angezeigt und es gibt auch keine Fehlermaldung.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
ede57

Registriert seit: 5. Apr 2008
Ort: Hamburg
46 Beiträge
 
Delphi XE Professional
 
#6

AW: Opendialog wird in IDE nicht angezeigt

  Alt 7. Mai 2011, 10:25
Gibt es vielleicht unterschiede wenn man ein Formular mal mit D2010 und dann mit DXE
bearbeitet ??
Nee, eigentlich nicht.

Das Einzige, wo ich weiß, daß die dahinterliegende WinAPI einen Bug hat (schon seit vielen vielen Jahren) das ist,
wenn man bei Filename vor dem Aufruf einen ungültigen Pfad angegeben hat, dann wird der Dialog nicht angezeigt und es gibt auch keine Fehlermaldung.
Das kann ja nicht sein. Ausserhalb der IDE läuft alles einwandfrei. Auch wenn ich ein komplett neues
Project erzeuge, funktioniert alles, auc innerhalb der IDE
  Mit Zitat antworten Zitat
Benutzerbild von ConnorMcLeod
ConnorMcLeod

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

AW: Opendialog wird in IDE nicht angezeigt

  Alt 7. Mai 2011, 10:32
Verstehe beinahe ... da würde ich mal auf den ersten Blick vermuten, dass opdlg_DxfOpen nicht erzeugt ist, oder ExtractFilePath ein Riesenproblem hat.

Ist der Pfad zur EXE verschieden bei IDE/ausserhalb?
Wird die Prozedur überhaupt aufgerufen?
Gibt es zwei verschiedene Datei-öffnen-Prozeduren? ( => diese hier versagt, aber die andere tut dann)
Ist der OpenDialog created?
Versuche vllt ein try-except mit Fehlermeldung(en).
Versuche vllt, alle Logik zu entfernen, bis nur noch *Datei öffnen* überbleibt.
Bau Log-Meldungen ein.

Pffuuhhh. Jetzt fällt mir spontan mal nix mehr ein
Nr.1 Delphi-Tool: [F7]
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#8

AW: Opendialog wird in IDE nicht angezeigt

  Alt 7. Mai 2011, 10:54
Pffuuhhh. Jetzt fällt mir spontan mal nix mehr ein
Einfach mal debuggen. Breakpoints setzen...
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Benutzerbild von ConnorMcLeod
ConnorMcLeod

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

AW: Opendialog wird in IDE nicht angezeigt

  Alt 7. Mai 2011, 11:08
Ist ausserhalb der IDE schwierig ...
Nr.1 Delphi-Tool: [F7]
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#10

AW: Opendialog wird in IDE nicht angezeigt

  Alt 7. Mai 2011, 11:20
Doch: Exzessives Logging (nach jeder Zeile 1x Logging aufrufen und alle fehlercodes nach außen führen (auch GetLastError).

Bernhard
Bernhard
Iliacos intra muros peccatur et extra!
  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 03:45 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