Ouvrir une autre application

cs_piscine Messages postés 43 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 avril 2005 - 30 juil. 2004 à 13:21
cs_saib Messages postés 38 Date d'inscription mercredi 12 mars 2003 Statut Membre Dernière intervention 15 mars 2010 - 1 août 2004 à 18:44
Bonjour,
Cmt puis-je ouvrir une autre app à partir de delphi par ex ACDSee et me retrouver sur le fichier recherché?
Merci Merci

6 réponses

japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 8
30 juil. 2004 à 14:59
Pour ouvrir la visionneuse par défaut (ACDSee, si c'est le cas) sur le fichier désiré :

uses ShellApi;  // ajouter si nécessaire

procedure TForm1.Button1Click(Sender: TObject);
begin
  ShellExecute(Handle, 'Open', PChar('Chemin\TonFichier.jpg'), nil, nil, SW_SHOW);
end;


Bonne prog' :-p
0
cs_piscine Messages postés 43 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 avril 2005
30 juil. 2004 à 16:06
Merci c'est bien exact, mais cela reste trop statique. Si je veux faire marcher ca avec une base de données...
Je m'explique :dans une table de la BD, il y a un champ qui contient le chemin d'une image, soit sur ACDSee ou autre ou dans un TDBImage (j'ai essayé ca marche pas). Cmt récupérer la bonne image? par ex ici la photo d'un patient?
Merci pour votre aide.
0
japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 8
30 juil. 2004 à 17:03
Je ne suis pas du tout compétent en base de données, mais le principe devrait rester le même.
Je suppose que dans ta BD, dans un champ, figure le chemin de l'image ?
Il suffit dans ce cas de récupérer ce chemin et de l'utiliser comme décrit plus haut...
Mais bon, bases de données, là je passe la main... %-6

Bonne prog' :-p
0
japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 8
30 juil. 2004 à 17:08
J'avais mal lu ton message.
Tu dis qu'il y a bien un champ qui contient le chemin de l'image.
Ca devrait donc fonctionner ?????
L'image elle-même n'est pas stockée dans la BD, si ? ou je dis des bêtises...
Donc avec le chemin valide de cette image, ShellExecute doit ouvrir cette image dans la visionneuse par défaut.
Je n'en démords pas ;)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_piscine Messages postés 43 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 avril 2005
30 juil. 2004 à 18:58
A japee, merci pour tes réponses.
On est bien d'accord mais je ne peux pas mettre un bouton pour chaque patient, et qui plus est la base sera mise à jour ce qui augmentera le nombre de photos pour chaque patient à une date donnée (il s'agit en fait de photo de plaie, je suis infirmier).
0
cs_saib Messages postés 38 Date d'inscription mercredi 12 mars 2003 Statut Membre Dernière intervention 15 mars 2010
1 août 2004 à 18:44
Salut!

Je pense que le mieux dans ce cas ce serait que tu utilise des requettes SQL (type ADOQuery tres faciles a utiliser) qui te permetraient d'afficher l'image que tu veux pour le patient que tu veut
Je m'explique :
- tu fais une premiere requette qui te renvoie la liste des patients connus dans la base de donnée
- Tu mets les resultats dans une ComboBox, ou encore mieux, dans un ScrollBox en créant dynamiquement des TLabel par exemple (avec une simple boucle FOR, et tu te sert de la variale de boucle pour incrementer la position du TLabel), et tu assigne une procedure a l'evenement OnClick des labels ou a l'evenment OnChange du ComboBox

- Dans cette nouvelle procedure tu fais une nouvelle requette a laquelle tu passe comme parametre le nom du patient selectionné, et qui te renvoie la liste des chemins de fichier pour un patient donné (meme principe, resultats dans un ComboBox ou un ScrollBox et tu fait le ShellExecute sur evenement, ou encore tu crees des TImage dans un ScrollBox pour afficher un appercu des photos (TImage.Picture.LoadFromFile) et tu fait un ShellExecute sur le OnClick de l'image

Comme je disait l'utilisation de l'ADOQuery est tres simple:
Exemple :
Sur ta Form tu pose un ADOConnection pur lequel tu definit le format de base de données, l'emplacement, nom d'utilisateur/mot de passe s'il y en a

tu pose 2 ADOQuery pour lesquels tu associe la propriété Connexion a ton ADOConnection

pour chacun de test ADOQuery tu definit la propriété SQL avec la requette qu'il te faut (par exemple 'Select Distinct Patient From TablePatients' pour recuperer les données du champ Patient de la table TablePatients)

pour executer la requette:
- il suffit de faire ADOQuery1.Open si c'est une requette de selection ou ADOQuery1.ExecSQL si c'est une requette de mise a jour ou de creation de champs

- pour recuperer les resultats:
tu fait une boucle FOR du style
For i := 0 to ADOQuery1.RecordCount - 1 do
Begin
ComboBox1.Items.Add(ADOQuery1.FieldByName('Patient).AsString);
ADOQuery1.Next;
end;

Pour passer des parametres dans une requette:ta requette doit avoir des paramettres (par ex : 'Select Image from TableImages where Patient :NomPatient'> le parametre est identifié par ':')

avant de faire ADOQuery1.Open tu doit faire
ADOQuery1.Parameters.ParamByName('NomDuParametre');
le nom du parametre ne contient pas les ':' , dans l'exemple donné le nom du parametre est 'NomPatient'

Voila, j'espere avoir pu t'aider!

SaiB
0
Rejoignez-nous