AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit OpenDialog

Ein Thema von xi.xi · begonnen am 20. Jan 2010 · letzter Beitrag vom 17. Mai 2013
Antwort Antwort
Seite 2 von 4     12 34      
Andreas L.
(Gast)

n/a Beiträge
 
#11

Re: Problem mit OpenDialog

  Alt 20. Jan 2010, 11:54
Guck mal hier: http://www.delphipraxis.net/internal...084178#1084178

Vielleicht ist das bei dir auch der Fall.
  Mit Zitat antworten Zitat
xi.xi

Registriert seit: 5. Mai 2008
7 Beiträge
 
#12

Re: Problem mit OpenDialog

  Alt 20. Jan 2010, 12:09
Die Debuger einstellungen "Debug in spawned Prozessen" ist ausgeschalten. Die Datei kann üball auf dem Rechner liegen, immer das gleiche Problem.

Aber guter Tipp. Danke für die Hilfe!
War es aber leider nicht!
  Mit Zitat antworten Zitat
Bbommel

Registriert seit: 27. Jun 2007
Ort: Köln
652 Beiträge
 
Delphi 12 Athens
 
#13

Re: Problem mit OpenDialog

  Alt 20. Jan 2010, 12:58
Was heißt denn eigentlich "Programm stürzt ab"? Wie genau äußert sich das? Gibt es eine Fehlermeldung, friert das Programm ein, oder "verschwindet" es einfach? Erscheint denn eigentlich der OpenDialog oder wird der erst gar nicht angezeigt?

Delphi 2009 & Win7 geht jedenfalls, habe ich hier auch.

Bis denn
Bommel
  Mit Zitat antworten Zitat
Frankfurtoder

Registriert seit: 27. Mär 2008
112 Beiträge
 
RAD-Studio 2010 Pro
 
#14

Re: Problem mit OpenDialog

  Alt 20. Jan 2010, 13:11
Passiert der "Absturz" nur wenn du im Debugger bist oder auch außerhalb der IDE?
Erik
Alles gut?
  Mit Zitat antworten Zitat
xi.xi

Registriert seit: 5. Mai 2008
7 Beiträge
 
#15

Re: Problem mit OpenDialog

  Alt 20. Jan 2010, 15:53
Hab jetzt mal ohne Debugger laufen lassen und da läuft alles.
Also bestimmt andere Debugger Einstellunge.

Aber so komme ich erst mal weiter. Danke Frankfurtoder
  Mit Zitat antworten Zitat
maddin1502

Registriert seit: 19. Aug 2009
6 Beiträge
 
#16

AW: Problem mit OpenDialog

  Alt 15. Jun 2010, 01:36
Hallo, ich weiß dieses Thema ist schon etwas älter, ist aber das Neuste, das ich finden konnte.

Ich habe das gleich Problem mit dem OpenDialog (mit dem SaveDialog ists das Gleiche).
Egal was für Quellcode zwischen den Zeilen steht. Hier ein einfaches nichts machendes Testprogramm:
DAS IST DAS KOMPLETTE PROGRAMM, ALSO BITTE NICHT DIE STANDARTANTWORT, DASS HIER CODE VERHEIMLICHT WIRD!!!
Wer es nicht glaubt sollte es doch erstmal kurz testen (Win7+Delphi2009)
Code:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    OpenDialog1: TOpenDialog;
    SaveDialog1: TSaveDialog;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  if form1.OpenDialog1.Execute then
  begin

  end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  if form1.SaveDialog1.Execute then
  begin

  end;
end;

end.
Und nun zur genauen Fehlerbeschreibung.
1. Ich öffne das Projekt
2. Klicke auf Start (F9, der kleine grüne Pfeil) --> Programm startet
3. klicke auf button1 ODER button2 (ist egal, beides führt zum gleichen Fehler)
4. schließe den entsprechend geöffneten Dialog
5. schließe das ausgeführte Programm per "X"

Nun spuckt mir Delphi die Fehlermeldung aus:
http://s5.directupload.net/images/100615/m9u2c9ig.jpg

Egal ob man nun ja oder nein drückt hängt sich Delphi beim nächsten bedienen auf, z.B.: wenn man Delphi dann schließen möchte oder das Projekt neu Starten (F9) möchte --> Freeze und man bekommts nur noch mit Gewalt geschlossen. Ob ein weiterarbeiten und speichern ohne weiteres möglich ist wieß ich nicht, habs nie probiert und wäre mir auch einfach zu unsicher zwecks Datenverlust.

Ohne Debugger läufts übrigegens und auch außerhalb von Delphi, wenn man dann einfach nur die EXE ausführt.
Es ist ja aber nicht Sinn und Zweck der Sache den Debugger immer auszuschalten...

Mein System ist WIN 7 Professional + Delphi 2009

Grüße
Maddin1502
Miniaturansicht angehängter Grafiken
m9u2c9ig.jpg  

Geändert von mkinzler (15. Jun 2010 um 05:30 Uhr) Grund: Verlinktes Bild angehängt
  Mit Zitat antworten Zitat
daywalker9

Registriert seit: 1. Jan 2010
Ort: Leer
594 Beiträge
 
Delphi XE3 Professional
 
#17

AW: Problem mit OpenDialog

  Alt 15. Jun 2010, 04:47
Das ist ein Problem von Delphi auf Win 7 X64. Hier gibt es einen Workaround um diesen Fehler zu vermeiden:


Debugger Workaround
Lars
  Mit Zitat antworten Zitat
Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.268 Beiträge
 
Delphi 11 Alexandria
 
#18

AW: Problem mit OpenDialog

  Alt 15. Jun 2010, 08:53
Hat nicht direkt was mit deinem Fehler zu tun aber

Du schreibst

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  if form1.OpenDialog1.Execute then
  begin

  end;
end;

form1 kannst du weglassen.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  if OpenDialog1.Execute then
  begin

  end;
end;
Du greifst direkt auf die instanzierte Variable zu. Was passiert, wenn das TForm1 neu instanziert wird? Dann greift die neue Instanz auf OpenDialog1 von form1 zu und nutzt nicht die eigene instanz. Noch schlimmer, wenn Form1 nicht das Hauptformular ist, kann es ja sein, daß form1 zufällig mal freigegeben wird, die andre Instanz noch auf form1 zugreift. Dann knallt's.
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de
  Mit Zitat antworten Zitat
maddin1502

Registriert seit: 19. Aug 2009
6 Beiträge
 
#19

AW: Problem mit OpenDialog

  Alt 15. Jun 2010, 09:57
OK, aber was jetzt mit instanziert gemeint ist, versteh ich nicht. Habe zwar schon ein paar Programme geschrieben,
aber mit den Wort Instanz ansich kann ich nichts anfangen. Vielleicht kannst du es nochmal für Anfänger erzählen.
Ich habe es mir im Prinzip aus groben Grundkenntnissen selber beigebracht mit Delphi zu programmieren,
da sind ein paar Fachbegriffe leider auf der Strecke geblieben...

Ich nutze es immer so, weil nun mal der Opendialog auf Form1 liegt (bei mir war Form1 bisher immer das Mainform), das habe ich bisher bei allen Proceduren und Komponenten so gemacht. Arbeite ich auf einem andere Form und möchte den Opendialog ansprechen, muss ich dem Programm doch mitteilen wo er liegt und dies muss ich doch nunmal so machen oder nicht?!? Und wenn man eigene Proceduren im Stile "procedure oeffnen" ist es doch zwingend notwendig "Form1." davor zu setzen, sonst findet die procedure keinerlei Komponenten (heißt ja nun auch nicht TForm1.oeffnen)...

Naja, ich schaue mir mal den Debuger Workarround an.
Danke erstmal für die Hilfe.

EDIT:
@daywalker9, DANKE ES GEHT. Habe das automatische Programm genutzt zum verändern der Datei und jetzt kommt keine Fehlermeldung mehr und Delphi läuft wunderbar. SUPER. (Und natürlich hab ich ein 64bit System, fehlte in meiner Beschreibung)

Geändert von maddin1502 (15. Jun 2010 um 10:08 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#20

AW: Problem mit OpenDialog

  Alt 15. Jun 2010, 10:07
TForm1 ist die Klasse, Form1 die Instanz der Klasse, also das konkret erzeugte Objekt. Zur Verdeutlichung:
Delphi-Quellcode:
type
  TMyClass = class //Definition der Klasse
  end;

...
var Class1, Class2: TMyClass; //2 Variablen vom Typ der Klasse
begin
  Class1 := TMyClass.Create; //Anlegen einer Instanz und Speicherung in der 1. Variablen
  try
    Class2 := TMyClass.Create; //Anlegen einer weiteren Instanz und Speicherung in der 2. Variablen
    try
      ShowMessage('Wir haben jetzt 2 Instanzen von TMyClass.');
    finally
      Class2.Free;
    end;
  finally
    Class1.Free;
  end;
end;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 4     12 34      


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 13:42 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