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

 Delphi Discussion :

Ouverture multiple de fiche


Sujet :

Delphi

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2005
    Messages
    202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Services à domicile

    Informations forums :
    Inscription : Septembre 2005
    Messages : 202
    Points : 124
    Points
    124
    Par défaut Ouverture multiple de fiche
    Bonjour,
    N'ayant rien trouvé à ce sujet dans le moteur de recherche du forum j'en viens à poser la question que voici :
    Quelle est la méthode pour ouvrir la même fiche plusieurs fois ?
    Voici plus de précisions : J'ai une application avec de DBGrid affichant des données. Lorsque je clic sur une ligne une fiche arrive avec diverses infos concernant la ligne cliqué (dans ne DBGrid).
    Ce que je souhaite faire lorsque je clic sur une autre ligne, c'est afficher une autre fiche à l'écran en tout points identique à la première sauf biensur pour les données présentes dessus.
    Pour l'instant, à chaque clic, la fiche de détail et détruite et ré-affichée avec les nouvelles données.
    En espérant avoir été clair dans mon explication

    Merci bien

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 586
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 586
    Points : 25 262
    Points
    25 262
    Par défaut
    Suffit de créer plusieurs instances avec Create et faire autant de Show (ou ShowModal)
    Je suppose que tu n'as encore jamais créer de fenêtre, tu laisse la création automatiquement dans le DPR avec Application.CreateForm ?

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2005
    Messages
    202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Services à domicile

    Informations forums :
    Inscription : Septembre 2005
    Messages : 202
    Points : 124
    Points
    124
    Par défaut
    Oui, c'est exact, je laisse la création se faire dans le .dpr
    Sinon j'ai bien compris qu'il fallait créer une nouvelle instance par fenêtre appelée mais c'est la méthode qu'il me manque. Connais tu une bonne doc à ce sujet ?

  4. #4
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 586
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 586
    Points : 25 262
    Points
    25 262
    Par défaut
    Citation Envoyé par Shiva Voir le message
    ...mais c'est la méthode qu'il me manque...
    Lorsque tu parles de Méthode ?
    C'est la façon de faire ? voir les cours plus bas
    C'est la méthode au sens objet du terme ? donc Show ou ShowModal, idem voir cours !

    La Touche est une excellente documentation à ce sujet : TForm et TCustomForm !

    Ainsi que les cours du Forum comme
    Guide Pascal et Delphi - X. Découverte des composants les plus utilisés - 1ère partie - X-A. La fiche : Composant "Form"
    ou Cours complet sur Delphi en PDF

    Tient un sujet récent : [D6] Multi Form, cela pourrait t’intéresser !

  5. #5
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2005
    Messages
    202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Services à domicile

    Informations forums :
    Inscription : Septembre 2005
    Messages : 202
    Points : 124
    Points
    124
    Par défaut
    Je regarde de suite tes liens, sinon quand je dis méthode je parle bien de la façon de faire. J'aurai du utiliser un autre terme.

    Tu parles de ShowModal : c'est ce que j'utilisai au début mais avec cette façon d'appeler la fiche, il n'était plus possible de revenir cliquer sur la fiche parent contenant le DBGrid, ce qui est normal, d'ou l'utilisation de Show

    Sinon la touche F1 ne me donne rien mais ça c'est une autre histoire qui sens l'installation d'éléments maquant.

  6. #6
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 586
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 586
    Points : 25 262
    Points
    25 262
    Par défaut
    Pour l'aide !
    Si Delphi 7 sur Window Vista ou Seven, il faut télécharger WinHLP32 ou WinHLP64
    Si Delphi 2000+ ou XE, l'aide s'installe séparement, dans l'installeur, tu as l'installation de Delphi et un autre bouton pour l'installation de l'Aide

    Dans les autres cas, ... ce n'est pas normal

  7. #7
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2005
    Messages
    202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Services à domicile

    Informations forums :
    Inscription : Septembre 2005
    Messages : 202
    Points : 124
    Points
    124
    Par défaut
    Oui en effet, je viens de trouver le fichier d'install Help_Setup.exe qui m'a réglé ce petit problème. Merci pour l'info

  8. #8
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2005
    Messages
    202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Services à domicile

    Informations forums :
    Inscription : Septembre 2005
    Messages : 202
    Points : 124
    Points
    124
    Par défaut
    Je viens de trouver une solution à mon problème, voilà comment j'ai procédé :
    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
     
    procedure Tliste_dossier.DBGrid_ListeDossierCellClick(Column: TColumn);
    var
      id_dossier, numero, titre, description: string;
      f_clone: Tdetail_dossier;
    begin
      id_dossier := SimpleDataSet1.FieldByName('id_dossier').AsString;
      SQLQuery1.SQL.Clear;
      SQLQuery1.SQL.Text := 'SELECT LPAD(id, 5, "0") AS numero, titre FROM dossier WHERE id = '+id_dossier;
      SQLQuery1.Open;
     
      numero := SQLQuery1.Fields[0].AsString;
      titre  := SQLQuery1.Fields[1].AsString;
     
      f_clone := Tdetail_dossier.Create(detail_dossier);
      f_clone.Caption                      := 'Détail du dossier '+numero;
      f_clone.label_numero_dossier.Caption := numero;
      f_clone.champ_titre.Text             := Utf8ToString(titre);
      f_clone.Show;
    end;
    Ca fonctionne mais y a t-il une meilleure manière de faire ?

  9. #9
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 586
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 586
    Points : 25 262
    Points
    25 262
    Par défaut
    Si il y a possibilité de supprimer un Dossier et que ton application devra fonctionner en réseau et sur plusieurs postes simultanés, tu auras des accès concurrentiels !
    Pense à vérifier SQLQuery1.IsEmptycomme ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
      SQLQuery1.Open;
      if not SQLQuery1.IsEmpty then
      begin
         numero := SQLQuery1.Fields[0].AsString;
         ...
        f_clone.Show;
      end
      else
        ShowMessage('Dossier Inexistant');
    end;
    Si c'est la méthode classique, il n'y en a pas d'autres !
    tu peux aussi mettre caFree comme Action du OnClose de Tdetail_dossier pour libérer automatiquement ta fenêtre dès sa fermeture !
    De toute façon le Owner passé en paramètre au Create libérera la fenêtre !

    Question nommage, Tdetail_dossier ça me fait plutôt penser à un objet métier, tu ne semble pas séparer IHM et Métier, ça viendra avec le temps (ou pas)
    En général, mes fenêtres contiennent le mot Form, ça donnerait TDetailDossierForm, cela permet de tout de suite de reconnaître une fenêtre dans un code !
    Evite le _ dans les noms de type, ce n'est pas conseillé : Object Pascal Style Guide - Naming Conventions
    En général, _ c'est dans les constantes !

  10. #10
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2005
    Messages
    202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Services à domicile

    Informations forums :
    Inscription : Septembre 2005
    Messages : 202
    Points : 124
    Points
    124
    Par défaut
    C'est noté. Je vais renommer les fenêtre histoire que ce sois plus clair.
    En tout cas merci pour les conseils.
    a+

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

Discussions similaires

  1. Ouverture multiple de modèle mais, ils portent tous le même nom
    Par f.leduc dans le forum API, COM et SDKs
    Réponses: 1
    Dernier message: 17/01/2009, 21h32
  2. Ouverture multiple en mode partagé
    Par benoit13 dans le forum Modélisation
    Réponses: 2
    Dernier message: 31/08/2007, 15h23
  3. [delphi 4] erreur d'affichage apres l'ouverture d'une fiche 2 fois
    Par manu7901 dans le forum Bases de données
    Réponses: 1
    Dernier message: 16/01/2007, 17h32
  4. Empecher l'ouverture multiple d'une application
    Par Revan777 dans le forum C++Builder
    Réponses: 3
    Dernier message: 11/10/2006, 14h33
  5. Base de données access à ouverture multiple
    Par rangernoir dans le forum Access
    Réponses: 2
    Dernier message: 06/09/2005, 10h35

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