Autor Beitrag
Rekursion
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Di 12.10.10 15:46 
Hi ich habe folgenden Code:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
procedure TForm1.Button2Click(Sender: TObject);
var opf1 : TOpenDialog;
begin
  opf1 := opf1.Create(self);
  opf1.Title := 'Waehlen Sie die zu analysierende Chunk-Datei aus';
  opf1.InitialDir := 'c:\';
  opf1.Options := [ofFileMustExist];
  opf1.Filter := 'Szenen-Dateien (*.scnd)|*.scnd|Alle Dateien (*.*)|*.*';
  opf1.FilterIndex := 1;
  opf1.Execute;
  Datei := opf1.FileName;
  opf1.Free;
end;


Datei soll eine globale Variable (AnsiString) sein.

Da bekomme ich immer eine Zugriffsverletzung. Was mache ich falsch? Der OpenDialog erscheint nie, dafür fehlt nach der Fehlermeldung der Button auf meinem Formular, den löscht es zur
Laufzeit einfach raus!

Moderiert von user profile iconNarses: Code- durch Delphi-Tags ersetzt
Tropby
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 71
Erhaltene Danke: 4

Vista, Win XP, Win 89
Turbo Delphi Ex.
BeitragVerfasst: Di 12.10.10 15:50 
Probier mal
ausblenden Delphi-Quelltext
1:
opf1 := TOpenDialog.Create(self);					

anstatt
ausblenden Delphi-Quelltext
1:
opf1 := opf1.Create(self);					


Dann sollte es gehen.

_________________
Tropby

Für diesen Beitrag haben gedankt: Rekursion
Dude566
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1592
Erhaltene Danke: 79

W8, W7 (Chrome, FF, IE)
Delphi XE2 Pro, Eclipse Juno, VS2012
BeitragVerfasst: Di 12.10.10 15:51 
Warum erzeugst du deinen OpenDialog denn überhaupt manuell, die weiteren Einstellungen kann man doch auch so angeben oder?

_________________
Es gibt 10 Gruppen von Menschen: diejenigen, die das Binärsystem verstehen, und die anderen.
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8549
Erhaltene Danke: 478

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Di 12.10.10 15:51 
Das Erzeugen einer dynamischen Komponente zur Laufzeit geht so:
ausblenden Delphi-Quelltext
1:
opf1 := TOpenDialog.Create(nil);					

Als Owner sollte man iirc auch Nil angeben, wenn man die Komponente selbst wieder zerstört.

_________________
We are, we were and will not be.
Rekursion Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Di 12.10.10 15:53 
Danke, jetzt funktioniert es tatsächlich.
elundril
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: Di 12.10.10 22:58 
Ist keiner draufgekommen das es Probleme geben kann wenn man den Rückgabewert von Opendialog.Execute überprüfen sollte? Sonst könnte es ev. böse Probleme geben. also immer brav

ausblenden Delphi-Quelltext
1:
2:
3:
4:
  if opf1.Execute then
    // Jetzt das was gemacht werden soll wenn eine datei ausgewählt wurde und auf OK gedrückt wurde
  else
    // Jetzt das was gemacht werden soll wenn der Benutzer auf Abbrechen o.ä. geklickt hat.


lg elundril

_________________
This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.