2009-02-25 23 views
1

ont une composante TOpenDialog Je crée sur l'exécution et je veux désactiver l'indication qui apparaît sur les fichiers lorsqu'il est utilisé. Je n'ai écrit aucun code exrta pour cela en créant l'objet, en exécutant l'objet et en extrayant le nom de fichier, puis en libérant l'instance.Y at-il un moyen de désactiver l'indice pour un TOpenDialog dans Delphi? Je

Puis-je faire ce que je veux faire? Si oui, comment je fais ça?

Répondre

2

I googlé pour « infobulle crash openDialog » et le premier coup m'a donné this. La solution pour leur problème (et probablement la vôtre) est la suivante:

[...]

Vous ne devez ajouter cette modification à la première forme de votre application:

uses ActiveX; 

initialization 
    OleInitialize(nil); 

finalization 
    OleUninitialize 
end. 
+0

où va le bit de finalisation? – Arthur

+0

À la fin de votre unité, juste au-dessus de la dernière extrémité, vous devez placer les instructions d'initialisation et de finalisation. ActiveX doit être placé dans votre section uses. –

1

Comme il est une boîte de dialogue commune de Windows, vous devrez peut-être sauter et crochet dans la DialogProc et essayer manuellement et traiter les messages d'info-bulle. Vous pouvez regarder ici pour commencer comment personnaliser les dialogues communs; http://msdn.microsoft.com/en-us/library/ms646951.aspx. Vous pouvez également créer votre propre descendant TOpenDialog et remplacer la méthode protégée WndProc pour accéder aux messages et notifications de la boîte de dialogue. Je soupçonne que vous auriez également besoin de faire un crochet plus profond et commencer à traiter avec le shell de l'explorateur. La liste de fichiers dans cette boîte de dialogue est en fait une instance de parties du shell de l'Explorateur Windows.

Une autre question est ce que vous êtes, il tente d'accomplir en se cachant ces informations de l'utilisateur? Peut-être y a-t-il une autre solution à ce que vous essayez de faire plutôt que de désactiver certaines fonctionnalités intrinsèques?

+0

J'ai un issuse où mon programme se bloque sur la pointe de l'outil, mais gère le fichier bien si elle est évitée. J'ai tracé tout et personellement fait que toutes les bougies sont fermées il vérifie même avant d'exécuter ce code, mais je reçois toujours un crash aléatoire que le débogueur n'a pas d'explication pour arond de travail si im – Arthur

+0

sons plus comme un problème avec un explorateur plugin sur la machine, plutôt que votre code. –