IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Lazarus Pascal Discussion :

TOpenDialog n'apparaît pas à l'exécution


Sujet :

Lazarus Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 9
    Par défaut TOpenDialog n'apparaît pas à l'exécution
    Bonjour,

    Une question de débutant :

    J'ai dans un formulaire créé un TOpenDialog.

    Si je clique droit dessus puis "Tester le dialogue" ça fonctionne, c''est-à-dire que j'ai une fenêtre de choix d'un fichier ; même, si je choisis réellement un fichier, le nom de celui-ci avec le chemin complet est affiché dans la propriété FileName de l'inspecteur d'objet, et le chemin complet jusqu'au fichier dans la propriété InitialDir.

    Mais si j'exécute mon programme, le dialogue n'apparaît pas dans le formulaire qui s'ouvre .

    Qu'est-ce que j'ai oublié de faire ?

    Merci de votre aide, et bonne fin de journée,

    Louis V.

  2. #2
    Membre émérite
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2010
    Messages
    469
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2010
    Messages : 469
    Par défaut
    Bonjour,

    Pour un TOpenDialog il faut écrire quelque chose comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if MonDialog.Execute then
        TraiterMonFichier ( MonDialog.FileName );
    C'est l'appel à la fonction Execute qui affiche le dialogue et retourne TRUE si on a validé.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 9
    Par défaut
    Bonsoir Tintinux,
    et merci de ta réponse.

    Dans mon cas, le formulaire s'appelle TForm1, et le dialogue OpenDialog1. Si je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if OpenDialog1.Execute then
        MonFichier :=  OpenDialog1.FileName ;
    j'ai l'erreur "Error: Identifier not found "OpenDialog1"

    et si j'écris
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if TForm1.OpenDialog1.Execute then
         MonFichier := TForm1.OpenDialog1.FileName ;
    j'obtiens le message "Error: Only class methods can be referred with class references"

    Je crois qu'il y a vraiment quelque chose que je n'ai pas compris. Mais quoi ?

    Merci d'avance,
    L. V.

  4. #4
    Membre émérite
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2010
    Messages
    469
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2010
    Messages : 469
    Par défaut
    Dans la seconde méthode, le message d'erreur indique que tu ne dois pas mettre l'identifiant d'une classe (TForm1) mais d'un objet (Form1), c'est à dire une instance particulière de cette classe. Mais cela ne devrait pas être utile dans ton cas.

    La première écriture devrait être la bonne.

    Es-tu bien sûr du nom de ton objet OpenDialog1 ?

    Est-ce que ton code est dans une procédure de Form1 ?

    Peux-tu nous donner le source de toute la procédure où se trouve ton premier code, ou même de tout le programme.

  5. #5
    Membre éclairé
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2008
    Messages
    389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2008
    Messages : 389
    Par défaut
    Salut LouisV,
    Je suis un petit programmeur et j'utilise souvent cet objet OpenDialog, qui fonctionne bien alors une question ta variable MonFichier comment est-elle déclarée ?
    Je joins un exemple de ce que je fais avec cet composant, c'est surement pas parfait mais cela fonctionne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
     
    Déclaration 
    var
      Fimporter: TFimporter;
      FICHIER: TextFile;
      XTAMPON,MFICHIER,MLECTURE,MEXTENSION,MSOLDE,MDATESOLDE: string;  
    procedure TFimporter.BImportClick(Sender: TObject);
    begin
      // affichage des fichiers possibles et choix
      OpenChoix.execute;
      ValiderChoix;
    end;
     
    procedure TFimporter.ValiderChoix;
    begin
      //effacement de la table import,,M choix du fichier à lire
      data.import.SQL:='Delete from IMPORT';
      data.import.ExecSQL;
      data.import.ApplyUpdates;
      ChoixLectureFichier;
    end;
     
    procedure TFimporter.ChoixLectureFichier;
      {ouverture fichier texte dans le chemin indiqué}
    begin
    Openchoix.InitialDir:='/mnt/DONNEES/Nous/Releves_CL';
    MEXTENSION:=Copy(OpenChoix.FileName,Length(OpenChoix.FileName)-2,3);
    MEXTENSION:=UpperCase(MEXTENSION);
      if  OpenChoix.FileName<>'' then
      begin
      AssignFile(FICHIER, OpenChoix.FileName);{ Fichier dans la boite}
      MFICHIER:=OpenChoix.FileName;
      Reset(FICHIER); // on se positionne sur le premier enregistrement du fichier
      TAMPON:='';
        XTAB:=1;
        while not eof(FICHIER) do  // on charge un tableau avec chaque ligne lue
        begin
        Readln(FICHIER,XTAMPON);
        TAB[XTAB]:=XTAMPON;
        Inc(XTAB);
        end;
      CloseFile(FICHIER);
      DebutTraitement;
      end
      else
      begin
      MessageDLG ('Erreur, pas de fichier selectionné', mtError, [mbCancel],0);
      end;
    end;

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 9
    Par défaut
    Bonjour Tintinux et Ovni76,

    Merci de vos messages.
    Je commence à comprendre un peu mieux ce qui se passe.

    D'abord, quelques explications générales sur ce que je veux faire.
    J'avais il y a quelque temps écrit un programme (qui marche bien) fonctionnant en console uniquement, permettant de récupérer un sous-ensemble d'un fichier Gedcom (fichier de généalogie).
    Je voulais, pour qu'il soit plus convivial, le faire fonctionner en mode graphique. J'avais juste créé le formulaire, et appelé mes procédures anciennes avec les boutons du formulaire.

    Je crois que je vais devoir aller voir plus profondément comment utiliser les formulaires. En effet, je ne sais pas bien répondre à vos questions, ce qui signifie que j'ai du boulot à faire de ce côté là !

    Alors, excusez-moi si je met tout ça sous le coude en attendant d'avoir potassé. Je reviendrai vers vous d'ici quelques jours si je ne parviens à rien, mais à mon sens on doit commencer par chercher soi-même avant de demander. Si j'ai posé ma question hier, c'est que j'étais perdu. Vous m'avez mis sur la voie, je vous en remercie et vous dis à bientôt.

    Bonne soirée,

    Louis V.

Discussions similaires

  1. [Applet] qui n'apparaît pas.
    Par Vesperal dans le forum Applets
    Réponses: 2
    Dernier message: 09/06/2006, 16h28
  2. L'icône "retirer le périphérique.." n'apparaît pas
    Par al1_24 dans le forum Ordinateurs
    Réponses: 8
    Dernier message: 30/03/2006, 23h58
  3. Réponses: 5
    Dernier message: 12/12/2005, 08h52
  4. [débutant]pas d'exécution
    Par Chance666 dans le forum MFC
    Réponses: 5
    Dernier message: 15/01/2004, 11h32
  5. [TTHREAD] ne termine pas sont exécution
    Par Bbenj dans le forum Langage
    Réponses: 4
    Dernier message: 02/08/2002, 16h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo