Προς το περιεχόμενο

Delphi - Σφάλμα στην selectdirectory


smilefreeware

Προτεινόμενες αναρτήσεις

Δημοσ.

Σφάλμα με την selectdirectory.

 

Οταν χρησιμοποιήσω το παρακάτω είτε με οκ είτε με cancel

IF not selectdirectory('Choose Folder','',P) THEN EXIT;

και μετά κλείσω το πρόγραμμα παίρνω το παρακάτω σφάλμα

 

Debugger Exception Notification

Project AAA.exe raised exception class EAccessViolation with message

'Access violation at address 4485C6BD. Read of address 4485C6BD'. Process stopped.

Use Step or Run to continue.

 

Με το οκ με στέλνει στο...

destructor TObject.Destroy;

begin

end;

 

και μετά με F8 με debug με στέλνει στο ..

finalization

FreeAndNil(DockSiteList);

DoneControls;

 

Μετά στο procedure FinalizeUnits; στο....

{$IFDEF LINUX}

CallProc(P, InitContext.Module^.GOT); //Εδώ σταματάει (το LINUX ???)

{$ENDIF}

 

και τέλος ERROR 216

  • 2 εβδομάδες αργότερα...
Δημοσ.
Δηλαδή αντί να πατήσω Χ να κλείσει το πρόγραμμα , να βάλω button που να καλεί το halt ?

 

ΝΑΙ ΒΑΛΕ ΕΝΑ BUTTON KAI ΣΤΟΝ ΟΝCLICK EVENT ΒΑΛΕ APPLICATION.TERMINATE

EAN ΔΕΝ ΠΑΙΞΕΙ ΒΑΛΕ ΤΟΝ ΚΩΔΙΚΑ ΝΑ ΤΟ ΔΟΚΙΜΑΣΩ ΚΑΙ ΕΓΩ

Δημοσ.

Το P πώς έχει δηλωθεί;

 

Όσο για το {$IFDEF LINUX}, δε νομίζω να πηγαίνει όντως εκεί η εκτέλεση, bug του debugger θα είναι. Δοκίμασέ το όμως για σιγουριά, βάλε κάπου ένα

{$IFDEF LINUX}

{$MESSAGE FATAL 'Something is very wrong!'}

{$ENDIF}

κάν' του ένα full rebuild, και αν δεις ότι σταματάει στη μεταγλώττιση βρες που έχει γίνει {$DEFINE LINUX}.

Δημοσ.

@Το P πώς έχει δηλωθεί;

VAR P:STRING;

(Για LINUX θα το δω λίγο αργότερα)

 

@χωρις αλλαγες, τρεξε το executable (εκτος compiler δλδ) και πες μας αν πεταει το ιδιο μηνυμα

Ναι τα ίδια κάνει.

 

@ΝΑΙ ΒΑΛΕ ΕΝΑ BUTTON KAI ΣΤΟΝ ΟΝCLICK EVENT ΒΑΛΕ APPLICATION.TERMINATE

Τα ίδια.

 

---------------------------------------------

 

Προς το παρόν βολεύτηκα με TShellTreeView;

Το θέμα είναι ότι το selectdirectory το χρησιμοποιώ χρόνια χωρίς πρόβλημα. Μήπως κάποιο άλλο κομμάτι του προγράμματος χτυπάει σε συνδυασμό ?

 

Πχ. έχω βάλει TSTRINGLIST

var LST : TSTRINGLIST;

LST := TSTRINGLIST.Create;

μήπως με τη μνήμη, αν και δεν φορτώνετε πολύ.

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...