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

Langage Delphi Discussion :

tester une fiche


Sujet :

Langage Delphi

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    857
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 857
    Points : 267
    Points
    267
    Par défaut tester une fiche
    bonjour,

    pour tester si une fiche est créee, j'utilise la fonction:

    if not assigned(form1) then form1 := tform1.create(self) (si la fiche appelante n'est pas la fiche principale)
    if not assigned(form1) then form1 := tform1.create(application) si la fiche appelante est la fiche principale

    Est ce que c'est correct ou bien il y a d'autre moyen de le faire

    Autre question: avec le premier cas d'appels ci dessus (avec self), est ce qu'il faut faire un "caFree" sur le close de ladite fiche.

    merci

  2. #2
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 457
    Points
    28 457
    Par défaut
    Il n'y a pas de "bonne" réponse à ta question, tout dépend du contexte.

    Un point d'Owner:

    la valeur de Owner peut prendre quelques valeurs remarquables :
    Application, c'est l'objet de plus haut niveau d'une application Delphi, en créant un composant dont le propriétaire est "application", vous vous assurez qu'il sera détruit en quittant votre programme (fin de l'application).

    Form1, ou tout autre composant de type TForm, sur une application contenant différentes fenêtres, vous vous assurez de la destruction du composant à la fermeture de la fenêtre à qui vous attribuer le composant.

    SELF, ce paramètre parfois mal compris indique tout simplement que l'objet créé depuis une méthode objet aura pour propriétaire l'objet à qui appartient la méthode en cours ! Revoir l'explication de SELF dans le chapitre Object

    nil, il est tout à fait valide d'indiquer que le composant ne possède pas de propriétaire (nil = 0), mais il vous appartiendra alors de le détruire en temps util, personne ne le fera à votre place.

  3. #3
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 879
    Points : 11 379
    Points
    11 379
    Billets dans le blog
    6
    Par défaut
    Je pense (Paul pourra le confirmer j'espère, sinon il devra l'infirmer ) qu'il faut mettre l'action à caFree sauf si tu veux changer le comportement de ta fiche (la réduire ou la cacher).

    Et le fait qu'il y ait un Owner n'y change rien : il libèrera in fine la fiche lors de sa propre destruction, mais si on la détruit d'abord, il me semble qu'elle en informe son propriétaire qui le retirera alors de sa liste Components.

  4. #4
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 457
    Points
    28 457
    Par défaut
    en fait les trois éléments de la question n'ont aucun rapport

    if Assigned(Form1) permet de savoir si la variable Form1 est utilisée...ce qui n'a de rapport avec l'existence d'une instance TForm1 QUE si l'application n'en crée qu'une seule et qu'elle y fait référence par cette variable...je pinaille mais c'est vrai

    "self" ou "application", comme expliqué dans mon précédent post ça ne change pas grand chose...tout dépend de qui est "self" et de ce qu'on veux faire de la fiche.

    "caFree" même punition, le comportement de la fiche sur le onClose dépend de la conception de l'application, il n'y a pas à priori de raison de supprimer la fiche ou pas. J'ajouterais que si on utilise caFree sur TForm1 sans mettre à jour Form1 (la variable) le prochain test de Assigned(Form1) posera problème.

    voici quelques cas d'exemples:
    - boîte de dialogue "A propos": en général je ne la crée pas automatiquement et je l'affiche avec un code de ce type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    begin
      with TAboutForm.Create(Self) do
      begin
        try
         ShowModal;
       finally
         Free;
       end;
      end;
    end;
    - un fenêtre de saisie de paramètre appelée régulièrement: elle est crée automatique avec l'application et jamais détruite, on joue sur Show et Hide uniquement.

    - une fenêtre MDI de document : elle possède typiquement plusieurs instances, donc la variable globale n'est pas utilisée, un caFree peut-être utilisé pourquoi pas.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. comment tester si une instance d'une fiche est creer
    Par HASSANAIT dans le forum Langage
    Réponses: 4
    Dernier message: 31/08/2005, 14h40
  2. [Débutant] Tester une connection sur bdd
    Par lando dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 03/09/2003, 14h37
  3. Réponses: 2
    Dernier message: 19/08/2003, 15h45
  4. Image popup d'une fiche à partir d'un TListImage
    Par FW-S dans le forum Composants VCL
    Réponses: 3
    Dernier message: 17/11/2002, 13h42
  5. probléme d'affichage d'une fiche
    Par sb dans le forum Composants VCL
    Réponses: 7
    Dernier message: 29/08/2002, 09h43

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