nmacines
Messages postés34Date d'inscriptionmercredi 17 septembre 2008StatutMembreDernière intervention31 mars 2014
-
10 juin 2009 à 20:19
cs_cantador
Messages postés4720Date d'inscriptiondimanche 26 février 2006StatutModérateurDernière intervention31 juillet 2021
-
11 juin 2009 à 11:11
bonsoir a tous
excusez oi pour le desagrement mais je souhaite savoir comment faire pour gerer les photos en même temps que les données dans mon application
en effet je souhaite qu'a chaque fois que je me deplace dans un dbgrid la photo correspondant a la ligne s'affiche elle aussi dans un dbimage ou un Timage ; cependant les photos sont situés dans un fichier crée aillleurs que dans la base de donnée
comment faire
s'il vous plaît voici un exemple de ce que j'ai fait pour un bouton qui localise un matricule et charge la photo
pour ce cas lorsque la photo n'est pas dans le fichier elle me renvoit une erreur et pourtant je souhaite que si la photo est inexistante, elle localise malgre tout le client
procedure tform 1 . button1.click
adoquery 1.locate('matricule' edit1.text[] );
dbimage1.picture.loadfromfile('c\perso\photo+'(edit1.text)+'.jpg;
merci pour votre aide
cs_cantador
Messages postés4720Date d'inscriptiondimanche 26 février 2006StatutModérateurDernière intervention31 juillet 202113 11 juin 2009 à 11:11
bonjour,
dès l'instant, où tu utilises un TdbGrid, tu n'as plus besoin de localiser ton enregistrement.
Ton composant db est en effet en relation directe avec la base.
Voilà pour le premier point..
Ensuite, sur le OnDataChange du TDataSource,
il faut détecter le changement d'enregistrement :
procedure TForm1.DataSource1DataChange(Sender: TObject; Field: TField);
BEGIN
IF Sender = NIL THEN exit;
IF Field <> NIL THEN exit;
IF Form1= NIL THEN exit;
// Mettre ici ta procédure de test si pas de photo alors on va chercher le fichier
// tester si le champ de type BLOB contient quelque chose
// sinon loader le fichier
END;
Pour le load du fichier, il te faudra nécessairement une identification du matricule afin de choisir le bon fichier..
ça peut fonctionner, mais si tes images sont un peu volumineuses, les déplacements seront ralentis..