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 :

Affichage de détail x fois


Sujet :

Langage Delphi

  1. #1
    Membre actif
    Homme Profil pro
    Architecte de système d’information
    Inscrit en
    Juin 2002
    Messages
    177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte de système d’information
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2002
    Messages : 177
    Points : 223
    Points
    223
    Par défaut Affichage de détail x fois
    Bonjour,

    j'ai une fiche avec une liste de produit

    je souhaite afficher le détail du produit jusque là pas de souci.

    Par contre, je veux pouvoir aussi afficher plusieurs instances de la fiche détail du produit là non plus pas de souci
    mais là où est le problème c'est que si je resélectionne un produit déjà affiché je souhaiterais mettre au premier plan cette fiche et ne pas en ouvrir une nouvelle.

    Comment faire? peut être en utilisant le pattern Observer et Observable, si oui comment ?

    A+

  2. #2
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 770
    Points
    2 770
    Par défaut
    une idée
    crée un tableau de form qui = le nobre de produit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     var tabl:array of form
     i:integer;
    begin
       setlength(tabl,grid1.rowcount-1);
       for i:=0 to high(tabl) do tabl[i]:=nil;
    ajoute un variable globale dans ta fiche de détail (hand:integer)
    quant tu selection un produit vérifier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if tabl[grid1.row-1]=nil then
       tabl[grid1.row-1]:=fille.create(application)
       tabl[grid1.row-1].hand:=grid1.row-1;
    else
      tabl[grid1.row-1].show;
    a la férmeture de fille
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    tabl[hand].free;
    tabl[hand]:=nil;
    a toi d'amélioré tt sa
    PAS DE DESTIN, C'EST CE QUE NOUS FAISONS

  3. #3
    Membre actif
    Homme Profil pro
    Architecte de système d’information
    Inscrit en
    Juin 2002
    Messages
    177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte de système d’information
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2002
    Messages : 177
    Points : 223
    Points
    223
    Par défaut
    En effet, c'est un début de piste
    mais je voyais quelque chose de plus objet sans créer un tableau

    Merci quand même

    a+

  4. #4
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 770
    Points
    2 770
    Par défaut
    Citation Envoyé par BONNEFOI Patrick
    mais je voyais quelque chose de plus objet sans créer un tableau
    ????????????????
    PAS DE DESTIN, C'EST CE QUE NOUS FAISONS

  5. #5
    Membre actif
    Homme Profil pro
    Architecte de système d’information
    Inscrit en
    Juin 2002
    Messages
    177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte de système d’information
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2002
    Messages : 177
    Points : 223
    Points
    223
    Par défaut
    T'as pas du me comprendre

    Je voulais plus une solution à base de design pattern (si cela est faisable) que mettre un tableau en variable et y accèder

    A+

  6. #6
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    Normalement si la fiche info Produit a ete correctemetn programmé tu ne devrais pas avoir de soucis. Vu que ce n'ets pas le cas je suppose une erreur de conception, aussi je vais te donenr qques pistes pour eventuelement rectifier (si cela n'ets pas trop tard)
    Bon bien sur j'ai pas la pretention que cette solution est la meilleur masi elle ne m'a pas pose de problemes particuliers.

    Etape 1 : Definir la fenetre d'affichage des informations (placement des compos)
    Etape 2 : Creer uen prop Public : ProductID (ou tout autre type de variable permettant d'identifier un produit unique).
    Etape 3 : Rajouter a la form les fonction de lecture des infos. (je suppose que chez toi ca doit etre select sur une BdD shere ID = ProductID)
    Etape 4 : Afficher les infos recuperes par ces fonctions.

    Utilisation : La form principale recupere l'ID du produit a afficher le transmet a le form, qui lit les infos et les affichent.
    En aucun cas il est bon de directmeent ecrire les infos dans les edits/Labels de la form depuis l'application mere.

    Si ta forme respecte ce systeme, tu as donc oblicatoirement une var dont la valeur est unique pour retrouver les donenes a afficher. Donc avant de creer une fenetre d'info il faut chercher dans celles deja affichés si l'id est deja utilisé et dans ce cas faire un BringToFront de la form desiré.

    Ensuite quoi qu'i larrive il faut parcourir les forms deja afficé donc un tableau ..... (application.Forms surement ou un autre tableau de ta conception.

    Quand a la gestion par tableau : Aucun rapport avec la conception objet. Tu dois surement parler d'un tableau general .... mais dans ce cas pkoi pas le ratacher a une classe (genre la form principale ?)
    On passe du temps a vous repondre, alors soyez sympas, passez du temps ..... a vous relire !
    --
    Pourquoi tant de haine pour cette pauvre aide Delphi ????
    Aiiimezzz laaaaa .... Si-Non-Cham-Pi-Gnon !!!
    --
    Pour plus de Renseignements : Venez me rejoindre sur Msn .... Promis je mords pas

  7. #7
    Membre actif
    Homme Profil pro
    Architecte de système d’information
    Inscrit en
    Juin 2002
    Messages
    177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte de système d’information
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2002
    Messages : 177
    Points : 223
    Points
    223
    Par défaut
    Je te confirme que la fiche info Produit a été programmé correctement

    Dans la fiche liste, j'appelle une méthode qui ViewFrmProduit (icodeProduit, openstate)

    dans la fiche détail, j'implémente la méthode comme suit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    ViewFrmProduit (icodeproduit, openstate)
    begin
      with tfrmproduit.create(application) do
      begin 
          CodeProduit := icodeproduit;
           state := openstate;
           show;
      end;
    end;
    CodeProduit est une propriété qui permet d'afficher les données mais là c'est ok

    mon seul souci c'est de rechercher dans la liste des fiches si il y a une fiche de type tfrmproduit qui a le code produit déjà affiché.

    j'ai bien trouvé un application.mainform.mdichildren mais comme mon appli n'est pas mdi je n'ai rien.
    en ce qui concerne application.Forms j'y ai pensé mais ça n'existe

    En ce qui concerne l'objet je suis d'accord mais je me demandais si je ne pouvais pas utiliser le design pattern observer pour m'y aider
    A+

  8. #8
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 770
    Points
    2 770
    Par défaut
    c'est la premiére fois que j'entend ce mot design pattern observer
    j'ai lu:http://castelain.developpez.com/sources/Bouboules/
    alors Mr BONNEFOI Patrick si tu insiste sur ce DPO
    la vous aver des sujet qui sont des obsevateur (fich détail) et un seul observateur qui est aussi un sujet (fich list),non?

    citation:
    Ce simple mécanisme de base permet d'obtenir un effet très important : le sujet n'a pas besoin de connaître le type de l'observateur.
    Il sait seulement que celui-ci possède un moyen d'être averti d'une modification. L'observateur peut donc être à peu près n'importe quoi : un éditeur graphique ou textuel, un système de sauvegarde des sujets, un système de statistiques, etc.
    PAS DE DESTIN, C'EST CE QUE NOUS FAISONS

  9. #9
    Membre actif
    Homme Profil pro
    Architecte de système d’information
    Inscrit en
    Juin 2002
    Messages
    177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte de système d’information
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2002
    Messages : 177
    Points : 223
    Points
    223
    Par défaut
    Re

    je n'insiste pas sur ce DPO mais je souhaitais quelque chose d'approchant et c'est celui qui me semblait le plus proche de mon besoin

    Pour ce qui est de ma réponse je pense que je vais me débrouiller tout seul

    A+

  10. #10
    Membre chevronné
    Avatar de Pierre Castelain
    Inscrit en
    Avril 2002
    Messages
    523
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 523
    Points : 1 943
    Points
    1 943
    Par défaut
    Si tu veux un design pattern qui pour gérer ce problème, utilise un factory pour créer et afficher tes fiches. A implémenter sous forme de singleton.
    De cette manière cette classe peut décider de créer ou non une nouvelle fiche et de rappeler une fiche déjà crée. Tu vois ce que je veux dire ?

  11. #11
    Membre actif
    Homme Profil pro
    Architecte de système d’information
    Inscrit en
    Juin 2002
    Messages
    177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte de système d’information
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2002
    Messages : 177
    Points : 223
    Points
    223
    Par défaut
    ok

    j'avais pas pensé que le factory aosscié à un singleton pourrait résoudre mon problème

    Je vois ce que tu veut dire

    Merci

    A+

Discussions similaires

  1. [CR XI]Tableau croisé et affichage du détail
    Par Daximus dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 11/10/2007, 09h19
  2. Affichage des détails d'une jointure N-N
    Par granf dans le forum Ruby on Rails
    Réponses: 2
    Dernier message: 07/06/2007, 10h09
  3. Mise à jour affichage section détail form
    Par thb74 dans le forum Access
    Réponses: 3
    Dernier message: 27/08/2006, 13h39
  4. CR10 Problème d'affichage (bnd détail + sousrapport)
    Par claude dans le forum SAP Crystal Reports
    Réponses: 6
    Dernier message: 22/12/2005, 08h54
  5. affichage en détail par défaut
    Par Mut dans le forum Autres Logiciels
    Réponses: 3
    Dernier message: 18/05/2005, 09h15

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