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 :

TImage Blob LiveBinding


Sujet :

Langage Delphi

  1. #1
    Membre confirmé
    Avatar de alheuredudejeuner
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Août 2005
    Messages : 376
    Points : 632
    Points
    632
    Billets dans le blog
    4
    Par défaut TImage Blob LiveBinding
    Bonjour,

    Comment on relie un TImage a un champ blob d'une table, par liveBinding ?

    Cordialement

    André

  2. #2
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 041
    Points : 40 950
    Points
    40 950
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    le plus simplement qu'il soit, à partir du moment où l'image est dans le blob de la BDD
    ceci est attaché à mon tutoriel FMX+Livebindings+BDD à paraitre bientôt (pressés de le lire ? faites un tour dans mon blog DVP je vous y propose une lecture "privée")
    Nom : ChinookExe.PNG
Affichages : 278
Taille : 74,4 Ko
    avec le concepteur visuel cela donne ceci
    Nom : T_Liaisons.PNG
Affichages : 279
Taille : 14,2 Ko
    sans concepteur visuel il faut ajouter à la liste des Liaisons (BindingsList) un LinkPropertyToFieldBitmap
    Nom : T_LinkPToB.PNG
Affichages : 275
Taille : 39,5 Ko

    [Edit] dans cet exemple la source de données (une Query) est en lecture seule donc la la liaison est en sens unique source vers composant, elle eut été en lecture écriture (ajout et implémentation des SQLs d'un UPDateObject) la liaison aurait été bidirectionnelle.

    N.B. pour information le tutoriel indiqué est en cours de relecture technique, un autre tutoriel en rédaction proposera de créer un composant TImagePathName qui permet de lier le nom d'un fichier image contenu dans un champ (ou pas) à un TImage (c'est avec une version de ce dernier que j'ai rajouté les images de pochette, données qui n'existaient pas dans la base initiale)
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  3. #3
    Membre confirmé
    Avatar de alheuredudejeuner
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Août 2005
    Messages : 376
    Points : 632
    Points
    632
    Billets dans le blog
    4
    Par défaut live bindind créé
    Bonjour,

    J'essaye d'enregistrer une image
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    procedure TfOptions.bLogoClick(Sender: TObject);
    var
      od :TOpenDialog;
    begin
      od:= TOpenDialog.Create(self);
      try
        if od.Execute then
        begin
          ImageLogo.Bitmap.LoadFromFile(od.FileName);
        end;
      finally
        od.Free;
      end;
    end;
    pour enregistrer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if fdQryIdentite.State in [dsEdit,dsInsert] then fdQryIdentite.Post;
    J'ai essayé avec un BinNavigator, pas mieux.
    J'ai ajouté un FDUpdatesql pas mieux.

    Une idée ?

    Cordialement

  4. #4
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 041
    Points : 40 950
    Points
    40 950
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    C'est un peu flou ! mais la première question l'était aussi puisqu'il n'était pas indiqué que c'était du bidirectionnel qu'il fallait, ni d'ailleurs s'il s'agit de FMX ou VCL

    charger l'image ok ça j'ai compris , par contre quel est/sont les clauses du UpdateSQL ?
    Si je me souviens bien du programme que j'ai fait pour implémenter mes pochettes (il faut que je le retrouve) il manque/faut la création d'un blobstream et l'affectation de ce dernier au paramètre (la colonne image) dans l'évènement beforePost
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  5. #5
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 041
    Points : 40 950
    Points
    40 950
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    pour répondre complètement à la question, n'ayant pas retrouvé le programme que j'avais utilisé je l'ai refait (différemment j'en ai peur !)
    donc, voici l'image écran (FMX) de ce programme
    Nom : Modification Pochette.PNG
Affichages : 264
Taille : 189,9 Ko
    et les sources et la base de données dans le zip joint.

    Non, les livebindings ne font pas tout pour preuve le code nécessaire.
    Il est à remarquer que le composant TImage n'est pas bidirectionnel (LinkPropertyToFieldBitmap ne propose pas de ParseFormat) et je n'ai pas trouver la manière de passer par un TBindLink qui aurait peut être permis de le faire.
    Fichiers attachés Fichiers attachés
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  6. #6
    Membre confirmé
    Avatar de alheuredudejeuner
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Août 2005
    Messages : 376
    Points : 632
    Points
    632
    Billets dans le blog
    4
    Par défaut ça fonctionne
    Bonsoir
    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
    procedure TfOptions.bLogoClick(Sender: TObject);
    var
      od :TOpenDialog;
    begin
      od:= TOpenDialog.Create(self);
      try
        if od.Execute then
        begin
          ImageLogo.Bitmap.LoadFromFile(od.FileName);
          if not (fdQryIdentite.State in [dsEdit,dsInsert])
            then fdQryIdentite.Edit;
          (fdQryIdentite.FieldByName('logo') as TBlobField).LoadFromFile(od.Filename);
        end;
      finally
        od.Free;
      end;
    end;
    Cordialement

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

Discussions similaires

  1. Afficher un champs BLOB dans TImage
    Par Socrat dans le forum C++Builder
    Réponses: 1
    Dernier message: 12/11/2012, 10h30
  2. [Timage et Blob, Firebird]
    Par Lucien dans le forum Bases de données
    Réponses: 3
    Dernier message: 02/10/2005, 14h32
  3. Champ BLOB pour IMAGE format JPG and TImage et Interbase
    Par alain_bastien dans le forum InterBase
    Réponses: 1
    Dernier message: 20/10/2004, 16h15
  4. [TImage] Transfert de Picture par pixels.
    Par H2D dans le forum Langage
    Réponses: 9
    Dernier message: 25/10/2003, 14h37
  5. TImage
    Par Thylia dans le forum C++Builder
    Réponses: 5
    Dernier message: 09/07/2002, 20h03

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