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

Composants VCL Delphi Discussion :

composants pour afficher des informations cliquables


Sujet :

Composants VCL Delphi

  1. #1
    Membre du Club
    Inscrit en
    Août 2009
    Messages
    308
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 308
    Points : 50
    Points
    50
    Par défaut composants pour afficher des informations cliquables
    Bonjour,
    Dans mon projet de gestion du courrier, j'utilise un DBGrid pour afficher les informations des courrier d'un utilisateur.
    Dès qu'un utilisateur se connecte il a accès aux courriers qui le concernent.
    Mais cela est fait avec DBGrid.
    Maintenant je veux que ces informations à afficher soient des liens cliquables faisant reference au contenu d'un champ. C'est à dire quand l'utilisateur se connecte il voit les titres des courriers qu'il a reçu et s'il clique sur un titre on ouvre le courrier concerné (qui est la version numerique du courrier papier enregistré dans un champ).

    En bref, c'est afficher les courriers comme les mails d'une boite de reception.

    quels sont les composants à utiliser?

    Merci bien de m'aider!

  2. #2
    Membre émérite
    Avatar de skywaukers
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2005
    Messages
    1 216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 216
    Points : 2 306
    Points
    2 306
    Par défaut
    bonjour,

    la dbgrid peut faire l'affaire à mon avis, tu as un event sur le onclick, dans ce dernier tu fais l'opération que tu veux, sachant que l'enregistrement courant de la table correspond à la ligne cliquée.

    @++
    Dany

  3. #3
    Membre éprouvé Avatar de redoran
    Homme Profil pro
    Développeur-Amateur
    Inscrit en
    Juin 2010
    Messages
    1 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur-Amateur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 346
    Points : 1 031
    Points
    1 031
    Par défaut
    salut; idem que sky avec le dbgrid répond au sujet avec soit avec onclik ou doubleclik sinon avec clique droit de la souris avec un popmenu et localisation de le lignes....

  4. #4
    Membre du Club
    Inscrit en
    Août 2009
    Messages
    308
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 308
    Points : 50
    Points
    50
    Par défaut
    Bonjour,
    Merci pour vos reponses, mais j'avoue que je n'arrive pas à m'ensortir.
    Je vous prie de bien vouloir m'aider avec un exemple. Je veux que les enregistrements affichés dans mon DBGrid soit cliquable. Par exemple quand on clique sur l'intitulé du courrier qu'on ait accès à son contenu. Un clic sur l'intitulé affiche le champs contenu correspondant.

    Merci bien!

  5. #5
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Tu utilises un DbMemo qui tu le lies au même DataSource que ta DbGrid et tu mets le champs où tu stockes le contenu des mails.
    Quand tu cliqueras sur une lignes du DbGrid, ca déplacera automatiquement le curseur sur le DataSet et rempliera correctement le DbMemo

  6. #6
    Membre du Club
    Inscrit en
    Août 2009
    Messages
    308
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 308
    Points : 50
    Points
    50
    Par défaut
    Merci pour votre aide ,quand je l'ai testé ça fait ce que vous dites.
    Mais dans mon cas du courrier, le champs contenu contient le scan du courrier physique. Quand un courrier arrive on saisit les infos le concernant et on le numerise. C'est cette numerisation qui est enregistré dans le champs contenu et qui doit être affiché par clic.

    Je ne sais pas si votre solution marchera car sa sera comme une image à afficher dans mon cas precis.

    Merci toujours de m'aider!

  7. #7
    Membre du Club
    Inscrit en
    Août 2009
    Messages
    308
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 308
    Points : 50
    Points
    50
    Par défaut
    Bonjour,
    Je vous demande de me secourir sinon je suis bloqué.
    S'il ya une autre solution pour resoudre le problème , ça sera la bienvenue.

    Je réexplique ce que je veux faire.
    Dans ma table courrier j'ai un champ contenu dans lequel doit être enregistré le scan de mon courrier papier.
    Maintenant je veux pouvoir afficher ce courrier numerique.

    je ne sais pas si l'utilisation d'un bouton (clic sur un bouton) est envisageable.

    Merci bien de me secourir!

  8. #8
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 158
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 158
    Points : 41 340
    Points
    41 340
    Billets dans le blog
    63
    Par défaut
    Citation Envoyé par Abou Zar Voir le message
    Mais dans mon cas du courrier, le champs contenu contient le scan du courrier physique.
    Donc un Blob ? de la précision, de la précision ....

    Une DBGrid pour afficher les 'courriers'
    l'évènement on DblClick pour gérer l'ouverture .
    Ensuite cela dépend du format d'enregistrement du scan
    supposons un JPG ?

    je ferais par exemple la chose suivante : je crée une form avec un TImage, ou un TDBImage (mais je crois que le format supporté n'est encore que Bitmap) ou mieux encore un jvDBImage (de la suite JVCL qui lui supporte BMP et JPG) .

    dans l'évènement on DblClick de la grid il suffit alors de

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    var F : TForm2
    begin
      F:=TForm2.Create(self);
      try
        F.jvDBImage1.DataSource:=DBGrid1.DataSource;
        F.JVDBImage1.FieldName:='nomdumemo';
        F.ShowModal;
      finally
        F.Free;
      end;

  9. #9
    Membre du Club
    Inscrit en
    Août 2009
    Messages
    308
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 308
    Points : 50
    Points
    50
    Par défaut
    Merci beaucoup SergioMaster,

    Je vais definir un champ Blob pour mon courrier. S'il (Blob)n'est pas le meilleur dans mon cas merci de me corriger.
    je vais essayer votre solution.

  10. #10
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 158
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 158
    Points : 41 340
    Points
    41 340
    Billets dans le blog
    63
    Par défaut
    un Blob n'est pas forcément le bon choix car la BDD risque de devenir très importante rapidement surtout s'il s'agit de courrier . De nombreuses discussions on déjà eu lieu à ce sujet sur le forum .

    Pour une GED (Gestion Électronique de Documents) de ce genre j'aurais plutôt stocké le document scanné dans un répertoire et mis le chemin et nom du document scanné dans la base . Autrement , le principe reste le même , sauf que dans ce cas, un simple TImage suffi pour Form2

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    var F : TForm2
    begin
      F:=TForm2.Create(self);
      try
       F.Image1.LoadFromFile(Table1.FieldByname('CHEMINDOC').asString);
        F.ShowModal;
      finally
        F.Free;
      end;

  11. #11
    Membre du Club
    Inscrit en
    Août 2009
    Messages
    308
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 308
    Points : 50
    Points
    50
    Par défaut
    encore merci SergioMaster, j'avoue que je suis entrain d'apprendre beaucoup avec vous à travers mes 2 projets.
    J'ai une erreur que je n'arrive pas à comprendre.
    Voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    var F :TForm;
    begin
      F :=  Form19.Create(self);
      try
        F.Image1.LoadFromFile(DataModule1.IBTable1.FieldByname('CHEMIN').asString);
        F.ShowModal;
      finally
        F.Free;
      end;
    Il me dit que l'identifiant Image1 n'est pas declaré. Or ma Form19 a bel et bien l'objet Image1.
    Je ne sais pas s'il ya quelque chose à mettre.

    Merci toujours pour votre aide!

  12. #12
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Ce n'est pas

    Mais

    qu'il faut mettre

    et aussi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     F :=  Form19.Create(self);
    à remplacer par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     F :=  TForm19.Create(self);

  13. #13
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 158
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 158
    Points : 41 340
    Points
    41 340
    Billets dans le blog
    63
    Par défaut
    +1 Rayek
    un peu plus d'attention AbouZar

  14. #14
    Membre du Club
    Inscrit en
    Août 2009
    Messages
    308
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 308
    Points : 50
    Points
    50
    Par défaut
    Exact! je n'ai pas fait preuve d'attention!

    Cette fois-ci c'est LoadFromFile qui me pose problème.
    On me dit que " l'identificateur LoadFromFile n'est pas declaré".

    J'ai fouillé sur le net mais je n'ai pas eu satisfaction!

    Merci de m'aider!

  15. #15
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 158
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 158
    Points : 41 340
    Points
    41 340
    Billets dans le blog
    63
    Par défaut
    OK nul n'est parfait j'avais oublié le picture

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Image1.Picture.LoadfromFile(.....)
    cependant un , ou un avec ces mots clefs : delphi timage loadfromfile donne largement la réponse

Discussions similaires

  1. [Lazarus] Quel composant doit-on utiliser pour afficher des thumbnails ?
    Par limax dans le forum Lazarus
    Réponses: 1
    Dernier message: 28/02/2010, 10h51
  2. composants pour afficher des statistiques
    Par inter_amine dans le forum Windows Forms
    Réponses: 6
    Dernier message: 09/07/2007, 13h31
  3. Réponses: 3
    Dernier message: 01/03/2007, 21h54
  4. [delphi 7] composant pour afficher des pdf ?
    Par PhD13 dans le forum Composants VCL
    Réponses: 6
    Dernier message: 06/03/2006, 17h40
  5. Pb pour afficher des composants dans la palette
    Par Captain_JS dans le forum C++Builder
    Réponses: 1
    Dernier message: 12/07/2005, 18h35

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