AGB  ·  Datenschutz  ·  Impressum  







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

selectdirectory zugriffsverletzung

Ein Thema von Danyel · begonnen am 23. Jul 2010 · letzter Beitrag vom 24. Jul 2010
Antwort Antwort
Danyel

Registriert seit: 7. Okt 2009
Ort: Lübeck
15 Beiträge
 
Delphi 5 Standard
 
#1

selectdirectory zugriffsverletzung

  Alt 23. Jul 2010, 13:01
Delphi-Version: 2005
Hi,
da die Forensuche mich nicht weiter gebracht hat, stelle ich euch hier die Frage.

Ich möchte in meinem Programm vom User ein Pfad auswählen lassen und habe keine Lust neue Komponenten etc einzubinden. Bin dann auf SelectDirectory gestoßen.

Delphi-Quellcode:
uses FileCtrl;
procedure xy;
var dir : string;
begin
   SelectDirectory('Select a directory', '', Dir);
   ShowMessage(Dir);
end;
Soweit alles ganz schön und gut, doch funktioniert dies nicht, obwohl es eigentlich funktionieren müsste nachdem was ich hier schon so gefunden habe, doch bekomme ich eine Zugriffsverletzung und nichts passiert, dh der Dialog öffnet sich nicht.
Hier ein Bild der Fehlermeldung:
http://img186.imageshack.us/img186/3508/fehlerrt.jpg
Auch wenn am Ende dein Programm nicht läuft,
so bist mit dem Weg gewachsen und nichts war
umsonst!
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#2

AW: selectdirectory zugriffsverletzung

  Alt 23. Jul 2010, 13:04
In welcher Zeile tritt der Fehler konkret auf? Hast du das mal mit dem Debugger nachvollzogen?

Edit: Versuch es mal so...
Delphi-Quellcode:
uses FileCtrl;
procedure xy;
var dir : string;
begin
  if SelectDirectory('Select a directory', '', Dir) then
    ShowMessage(Dir);
end;
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.277 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: selectdirectory zugriffsverletzung

  Alt 23. Jul 2010, 14:06
Hallo,

F5 auf SelectDirectory und mal laufen lassen.
Ich tippe mal auf einen NIL-Zeiger durch nicht initialiserte Klasse in deinem Initialisieren.


Heiko
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#4

AW: selectdirectory zugriffsverletzung

  Alt 23. Jul 2010, 14:10
Also an deinem Code weiter oben kann eigentlich kaum was schief laufen, es muss wahrlich wo anders liegen! Dazu würde ich, wie omata schon geschrieben habe, das ganze mit einem if noch erweitern, da der User den Dialog ja auch abbrechen kann, denn dann bekommst du keinerlei Verzeichnis zurück -> schlecht!
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Danyel

Registriert seit: 7. Okt 2009
Ort: Lübeck
15 Beiträge
 
Delphi 5 Standard
 
#5

AW: selectdirectory zugriffsverletzung

  Alt 23. Jul 2010, 14:35
Delphi-Quellcode:
uses filectrl;
var bf2modtools:string;

procedure TForm1.FormCreate(Sender: TObject);
begin

      if firstrun=true then //wenn erster Programmstart
      begin
            if SelectDirectory('Select a directory', 'C:\', bf2modtools) then ShowMessage(bf2modtools);
      end;
end;
Fehler tritt bei
if SelectDirectory('Select a directory', 'C:\', bf2modtools) then ShowMessage(bf2modtools); auf.
Makiere ich SelectDirectory mit F5 und lasse das Projekt laufen, passiert nichts.
Oben links im "Aufruf-Stack" (was auch immer das sein soll) zeigt er
TForm1.FormCreate(???) an, keine Ahnung ob das normal ist.
Ansonsten kann ich mit Heikos Beitrag nichts weiter konkret anfangen, da ich nicht genau verstehe was gemeint ist.
Vielen Dank für die schnellen Antworten
Auch wenn am Ende dein Programm nicht läuft,
so bist mit dem Weg gewachsen und nichts war
umsonst!
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#6

AW: selectdirectory zugriffsverletzung

  Alt 23. Jul 2010, 16:56
Vielleicht darfst du das im FormCreate einfach noch nicht verwenden.

Und warum wird da eine Variable global deklariert, die nur lokal verwendet wird? Und bitte nicht auf True abfragen.

Delphi-Quellcode:
type
  TForm1 = class(TForm)
:
  private
    { Private-Deklarationen }
    FFirstRun:boolean;
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

uses filectrl;

procedure TForm1.FormCreate(Sender: TObject);
begin
  FFirstRun:=true;
end;

procedure TForm1.FormActivate(Sender: TObject);
var bf2modtools:string;
begin
  if FFirstRun then begin
    FFirstRun:=false;
    if SelectDirectory('Select a directory', 'C:\', bf2modtools) then
      ShowMessage(bf2modtools);
  end;
end;
  Mit Zitat antworten Zitat
Antwort Antwort


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 00:34 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-2025 by Thomas Breitkreuz