Bonjour !
voilà j'ai une table avec un champ OLE qui contient un doc PDF. J'aimerais pouvoir visionner le doc. Existe-t-il un composant pour ça ? Ou à défaut, comment lancer acrobat reader avec le fichier ?
Merci de votre attention.
Bonjour !
voilà j'ai une table avec un champ OLE qui contient un doc PDF. J'aimerais pouvoir visionner le doc. Existe-t-il un composant pour ça ? Ou à défaut, comment lancer acrobat reader avec le fichier ?
Merci de votre attention.
Bon lancer acroreader, c'est ok donc ce qui m'intéresse c'est s'il existe une visionneuse delphi.
Merci
Salut,
avec un TWebBrowser tu peux visualiser un Fichier PDF.
Apprends la science de celui qui sait, et enseigne ta science à celui qui ignore, comme ca, tu auras appris ce que tu ignores et utilisé ce que tu sais.
ben, sauf erreur ça va utiliser le navigateur internet... donc pas mieux que acrobat reader. Ce que je cherche c'est juste une visionneuse qui pourrait me donner un aperçu (rapide) du fichier pdf sans lancer d'appli externe...
Merci quand même
Salut
J'ai fais une visionneuse pour fichier PDF... utilisant une appli externe
mais pas Acrobat, beaucoup trop lent.
La méthode que j'ai utilisée:
- un logiciel gratuit se nommant Foxit Reader, très rapide
- démarrage de Foxit DANS l'appli Delphi, avec détourage de la fenetre windows
- L'appli externe n'est démarrée qu'une seule fois
- La liste des fichiers PDF
- simulation d'un glisser-déposer dans l'appli externe lorsque clic sur un des fichiers PDF
Derriere, je laisse le soin au prog externe de gérer l'impression, les rotations zoom etc...
Ceci est très rapide et l'appli externe ne pose aucun soucis. si tu veux plus de détails, n'hésite pas
Section Delphi
La mine d'or: La FAQ, les Sources
Un développement compliqué paraitra simple pour l'utilisateur, frustrant non ?
Notre revanche ? l'inverse est aussi vrai ;-)
OK pour foxit, qui est très rapide, mais j'ai quelques soucis pour l'intégrer dans mon code...
1- Quand je lance foxit:
shellexecute(0, 'OPEN', pchar(\foxit\foxitreader.exe'), nil, nil, SW_HIDE);
malgré SW_HIDE et bien il s'affiche à l'écran !
je suppose qu'il existe un moyen d'éviter ça ?
2- je ne sais pas récupérer le handle de l'appli lancée (ceci afin d'affecter le lecteur foxit à un conteneur). Est-ce que c'est renvoyé par shellexecute ? ou faut-il aller le chercher une fois le programme externe lancé ?
3- Quel conteneur est le mieux adapté pour accueillir l'appli externe ?
merci
Heu j'avais pas regardé comment faire un glisser déposer d'un doc, là c'est pas encore de mon niveau, je n'y comprend pas grand chose...
re zarbouine
1. pourquoi le lancer invisible ?
2. pour récupérer le handle d'une fenêtre tu peux chercher du coté de FindWindow, il y a pas mal d'infos sur DVP , c'est une commande simple.
Il y a aussi EnumWindows, un peu plus complexe.
3. un panel fait l'affaire , le handle du panel: 'panel.handle'
Pour le glisser, essaye d'adapter le code que je t'ai fourni
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 wParam := GlobalAlloc( GMEM_ZEROINIT or GMEM_MOVEABLE or GMEM_DDESHARE, Length( SFichier ) + 20); pDrop := GlobalLock( wparam ); try pDrop^.pFiles := 20; pDrop^.fWide := False; pFiles := Pointer(pDrop); Inc( pFiles, pDrop^.pFiles); for i := 1 to Length( SFichier ) do begin pFiles^ := SFichier[ i ]; Inc( pFiles ); end; pDrop.fNC := False; pDrop.pt := Point( 10, 10 ); finally GlobalUnLock( wParam ); end; // Glisser virtuel PostMessage( HandleViewver, WM_DROPFILES, wparam, 0 );
Le principe est d'envoyer un message (équivalent au glisser), à l'appli, ainsi que les paramètres spécifique au type de message.
Ces paramétres il faut les mettre aux normes Windows (avec les structures API), ceci peut donc dérouter au 1er abord.
Il n'est pas forcément nécessaire de tout comprendre
Section Delphi
La mine d'or: La FAQ, les Sources
Un développement compliqué paraitra simple pour l'utilisateur, frustrant non ?
Notre revanche ? l'inverse est aussi vrai ;-)
merci, je vais essayer de m'y mettre dès que j'aurai 5 minutes...
pdrop: pdropfiles;
c quoi le type pdropfiles ?
oops, désolé, j'ai oublié
c'est une structure définie dans les API Windows
et avec un 'uses ....., ShellAPI' également
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 wparam : THandle; pDrop: PDropFiles; pFiles: PChar;
voila, j'espère que tu t'en sortira, sinon n'hésite pas à revenir
Section Delphi
La mine d'or: La FAQ, les Sources
Un développement compliqué paraitra simple pour l'utilisateur, frustrant non ?
Notre revanche ? l'inverse est aussi vrai ;-)
j'ai bien avancé... et ça marche presque comme je veux (je n'ai pas tout compris, mais bon...)
waitfor c dans quelle unité ? je cherche et je trouve pas...
Merci du coup de main
il me reste un problème sur la manière de passer le nom du fichier à droper
SFichier c'est du string ?
J'essaye de mettre le nom du fichier dedans, mais curieusement il me rajoute des trucs pas catholiques...
Envoyé par zarbouine
SFichier est bien en string.
Par contre je comprends pas trop ton problème... dedans ou ?
Section Delphi
La mine d'or: La FAQ, les Sources
Un développement compliqué paraitra simple pour l'utilisateur, frustrant non ?
Notre revanche ? l'inverse est aussi vrai ;-)
ben voilà :
sfichier='truc.pdf' en dur;
et quand je lance le drop, j'obtiens (mais pas toujours !!!) un message d'erreur de fox diant que le fichier truc.pdf# was not found (où # est un ou plusieurs caractères qui varient, ça peut être un 'f', un 'CT', ou n'importe quoi).
Ce qui est dingue c'est que ça va marcher correctement 5 ou 6 fois, et puis le coup d'après bing.
C'est la chaleur ou quoi ?
Je remonte cette vieille discussion, car je voulais jouer avec ça (appli dans panel) , et je rencontre le même pb :Envoyé par ZarbouineZarbouine n'a pas répondu, et moi je pourrais répondre : parce que ! mais sans rire, parce que c'est moche : le prog s'affiche d'abord n'importe où avant de se positionner dans le panel (ça, ça fonctionne impec, merci TicTacToe ! )Envoyé par TicTacToe
Je fais un test comme ça :et bien sûr la calculatrice s'affiche,
Code : Sélectionner tout - Visualiser dans une fenêtre à part ShellExecute(0, 'open', PChar('calc.exe'), nil, nil, SW_HIDE);
Quelqu'un(e) aurait une idée ?
D'avance merci,
--
jp
Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peut–être qu'il peut être sûr, etc.
Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
Mes 2 cts,
--
jp
Salut.
Devant l'enthousiasme délirant soulevé par mon "Up", j'ai cherché ailleurs (j'espère qu'on ne m'en voudra pas...) et il m'a été répondu ça :J'ai testé et je confirme.Ca ne dépend pas de ShellExecute, mais de l'application qui supporte ou non le SW_HIDE.
Exemples :
- Internet Explorer le supporte et peut s'ouvrir en mode caché
- Firefox ne le supporte pas et ne peut pas s'ouvrir en mode caché.
Idem avec le Bloc-note, qu'on peut cacher, mais pas la Calculatrice.
En espérant que ça sera utile à la communauté,
--
jp
Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peut–être qu'il peut être sûr, etc.
Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
Mes 2 cts,
--
jp
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager