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

Autres IDE Pascal Discussion :

Dans une application desktop afficher une form d'un service Windows [CodeTyphon]


Sujet :

Autres IDE Pascal

  1. #1
    Membre actif
    Homme Profil pro
    Business Analyst
    Inscrit en
    Juillet 2005
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Business Analyst
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2005
    Messages : 108
    Points : 234
    Points
    234
    Par défaut Dans une application desktop afficher une form d'un service Windows
    Bonjour,

    J'ai un service windows qui a un serveur TCP intégré (composant TidTCPServer plus précisément).

    J'ai une application desktop qui se connecte au serveur TCP du service : OK, tout fonctionne. Le serveur reçoit bien les ordres de l'application desktop et interprète bien les ordres.

    J'ai créé une commande sur le serveur TCP qui fait que lorsque l'appli envoie cette commande serveur, le service crée une form : OK, tout fonctionne. Enfin, je pense car pas de message d'erreur dans le fichier de log du service

    Maintenant, j'aimerais, dans mon application desktop, pouvoir afficher la form créée dans le service windows via le serveur TCP (je ne sais pas si je suis très clair ). En gros, ce que j'aimerais faire c'est une sorte d'affichage déporté. Comme j'ai plusieurs services, chaque service ayant un serveur TCP intégré, avec une appli desktop je veux pouvoir gérer à distance les services via du TCP mais sans avoir à développer dans l'appli desktop une form pour chaque service. C'est pour cela que j'ai besoin d'avoir l'affichage de la form du service dans mon appli desktop via du déporté. En plus, je crois savoir qu'un service windows ne peut pas afficher de form.

    Bien sûr, les form de chaque services (à terme j'aurais plusieurs services) sont différentes des unes des autres et contiennent différents contrôles : TEdit / Tcaption et Tbutton pour le moment. Je dois pouvoir donc saisir des données et lancer un traitement par l'appui sur le bouton sur chaque form.

    Si j'arrive à faire fonctionner cela, le but est d'avoir l'application sur un terminal RF (avec Windows installé et connecté réseau en Wifi) et ainsi scanner les informations pour remplir les zones des forms de chaque service.

    Je n'arrive pas à trouver des infos sur le net (ou bien je suis une bille pour les rechercher ce qui est plus que probable).

    Est-ce que quelqu'un a une piste ou une idée ?

    Je vous donne quand même le but complet du projet : piloter, via des terminaux RF, un réseau de modélisme ferroviaire en digital. Les terminaux permettront de scanner des codes barres et, via les services sur un serveur, les informations scannées feront des actions sur le réseau. Eh oui, je "joue" au p'tit train à mon age

    D'avance merci.

    Cdt

    Laurent

  2. #2
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 728
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 728
    Points : 15 127
    Points
    15 127
    Par défaut
    Salut,

    ça serait pas ça le truc que tu cherches ?

    Nom : info_service.jpg
Affichages : 220
Taille : 34,0 Ko

    (L'infobulle apparait en sélectionnant le bouton [ ? ] et en cliquant sur le texte de la checkbox "Autoriser blabla...")

    Mais je n'en dirai pas plus, je suis sous Linux maintenant, alors les services...
    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

  3. #3
    Rédacteur/Modérateur
    Avatar de M.Dlb
    Inscrit en
    Avril 2002
    Messages
    2 464
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 464
    Points : 4 311
    Points
    4 311
    Par défaut
    Hello,

    Je pense que la proposition de Jipété permet d'afficher des forms uniquement sur l'ordinateur qui exécute le service, mais c'est à vérifier.
    Quant à la capacité pour un service d'afficher une form, il faut vérifier aussi mais par nature un service n'a pas besoin de form pour rendre un... service. Il est censé recevoir des commandes/données de l'extérieur et renvoyer d'autres données au composant qui le requête.

    Il faudrait peut-être revoir ton approche : pourquoi générer des form côté serveur, ce qui est typiquement fait côté client ? L'approche voudrait que tu développes les forms côté client, qui gère la communication avec le service, récupère les données de celui-ci et les affiche comme il faut.
    Sauf si il y a des contraintes que je n'ai pas comprises et qui n'ont pas été exprimées.
    M.Dlb - Modérateur z/OS - Rédacteur et Modérateur Pascal

  4. #4
    Membre actif
    Homme Profil pro
    Business Analyst
    Inscrit en
    Juillet 2005
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Business Analyst
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2005
    Messages : 108
    Points : 234
    Points
    234
    Par défaut
    Bonjour,

    Justement, c'est ce que voulais éviter : avoir une application "lourde" côté client qui contient toutes les définitions des écrans de chaque service. L'application cliente est destinée à être installé sur un terminal RF.

    Je pensais que le service pouvait définir une form et que l'affichage de cette form pouvait se faire via une connexion TCP dans une appli distante. J'étais parti sur le principe d'avoir comme une frame dans l'appli cliente et que la frame affichée était en fait la form du service. Un peu comme les accès à distance du style TeamViewer, UltraVnc ou TSE. J'avais vu cette pratique là où je travaille : les terminaux ne font qu'afficher les forms générées par les services qu sont sur le serveur via une connexion TCP. Je pensais pouvoir le reproduire pour mon besoin pour mon hobby.

    Je vais peut être effectivement revoir cette gestion : il peut y avoir des enchaînements de form (menus, saisies, ...) mais pour chaque service, ce sont les mêmes forms ... je peux donc envisager d'intégrer tous les écrans dans l'appli qui sera installée sur le terminal (j'espère que ce ne sera pas trop lourd par rapport aux capacités du terminal).

    Merci.

    Cdt

    Laurent

  5. #5
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 858
    Points : 11 301
    Points
    11 301
    Billets dans le blog
    6
    Par défaut
    Peut-être les services peuvent-ils transmettre des équivalents de fichiers dfm aux clients qui recréeront les fiches correspondantes ?
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  6. #6
    Membre actif
    Homme Profil pro
    Business Analyst
    Inscrit en
    Juillet 2005
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Business Analyst
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2005
    Messages : 108
    Points : 234
    Points
    234
    Par défaut
    Bonjour,

    Je profite de mes vacances pour donner des nouvelles

    Je vais changer de type de traitement. Comme ce sont toujours les mêmes modèles d'écran, je vais avoir un seul écran générique au niveau de l'appli cliente. Le serveur transmettra uniquement les informations concernant le service concerné et l'appli cliente renverra les informations saisies uniquement. Ainsi, les données réseau seront plus "lights".

    Merci à tous pour vos suggestions.

    Cdt

    Laurent

  7. #7
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 430
    Points
    28 430
    Par défaut
    bonjour, je vois deux solutions à cela

    1) que le service propose une interface Web, dans ce cas le client est un simple navigateur

    2) partir sur une solution que j'avais étudier il y a fort longtemps, la RemoteVCL, je n'ai jamais poursuivi ce début de projet, mais l'idée était de recompiler une application Delphi avec une VCL de remplacement qui agit comme un serveur applicatif. Le client est une application VCL classique qui reçoit le DFM du serveur et renvoie automatiquement les événements au serveurs qui les traite.

    dans la démo fonctionnelle, le clic sur Button1 du client provoque l'execution de Buton1Click sur le serveur, la fonction ShowMessage() côté serveur est renvoyée au client qui affiche le message

    par contre, pour rendre cela exploitable ça demande beaucoup de travail, c'est pour cela que c'est resté en l'état de Proof of Concept.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  8. #8
    Membre actif
    Homme Profil pro
    Business Analyst
    Inscrit en
    Juillet 2005
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Business Analyst
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2005
    Messages : 108
    Points : 234
    Points
    234
    Par défaut
    Bonjour Paul,

    Merci pour ces informations.

    Je vais, pour mon information personnelle, regarder plus en détails ta solution qui concerne le Remote VCL.

    Pourtant j'avais été sur ton site pas plus tard que la semaine passée mais je n'avais pas vu cela

    Cordialement.

    Laurent

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

Discussions similaires

  1. Comment afficher une page html depuis une application java?
    Par doudou7777 dans le forum Général Java
    Réponses: 3
    Dernier message: 15/04/2014, 11h55
  2. Réponses: 1
    Dernier message: 29/07/2009, 10h01
  3. Réponses: 5
    Dernier message: 28/10/2006, 14h50
  4. [Afficher une image] Comment afficher une impression écran ?
    Par mnina dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 2
    Dernier message: 10/11/2005, 10h30

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