Codage en Delphi sur librairie DeepL, composant Delphi "A Propos" et Web Task Scheduler

- 23/03/2022 - 2 heures 56 minutes - Patrick Prémartin

Plusieurs projets lors de cette session de développement en Delphi.

Tout d'abord ma librairie clients pour l'API de traduction en ligne DeepL.

Modifications sur le serveur proxy de traduction

Nous avions fait un serveur proxy, que j'ai ajouté aux exemples fournis avec la librairie, mais en testant des choses pour l'ESILV je me suis aperçu qu'il y avait un couac dans certains cas. L'entête CORS nécessaire pour qu'un script JavaScript (exécuté depuis un navigateur) traite les retours d'un appel AJAX n'étaient pas retournés systématiquement.

Quand une réponse était donnée, c'était ok.
En revanche en cas d'anomalie comme par exemple dans les paramètres envoyés, l'entête "Access-Control-Allow-Origin=*" était absent de la réponse.

J'ai donc commencé cette session de live conding par corriger ça et refaire des tests avant de publier la correction sur GitHub.

Je suis ensuite parti sur le développement du composant de boite de dialogue "A propos" entamé quelques jours plus tôt.

Modifications sur les composants VCL/FMX de boite de dialogue "à propos"

Nous en étions restés sur un couac : le composant VCL apparaîssait aussi sur la palette de composants des projets FMX et selon les cas il arrivait qu'aucun des deux n'accepte de se référencer.

Les corrections nécessaires ont été faites en déclarant un rattachement des classes à la bonne hiérarchie de composants. Grâce à ça l'éditeur sait distinguer la cible des composants et les afficher dans la bonne palette selon le projet ouvert.

J'ai également activé les assistants au niveau des propriétés images du composant afin de permettre le choix de l'image à afficher à partir d'une liste d'image comme ça se fait sur les composants habituels rattachés aux listes d'images. C'était juste une histoire de nommage (ce qui en soi est à la fois simple, mais aussi très douteux).

Pour finir j'ai ajouté une propriété permettant de définir la langue d'affichage des textes en dur des composants et leur traduction dans les codes sources.

Puis il fut temps de revenir au logiciel Web Task Scheduler.

Création du démon Linux pour Web Task Scheduler

Cette partie est disponible sous forme d'extrait dans les vidéos dédiées à Web Task Scheduler.

En soi ce n'est probablement pas le module le plus utile du projet. En effet tout système Linux a la possibilité d'exécuter des tâches plannifiées en installant simplement cron (ligne de commande, démon et crontab). Comme notre programme exporte les infos dans le format de la crontab, on peut le traiter en direct si "wget" est aussi installé.

En revanche "cron" ne gère pas les retours d'appels d'URL, ce que fait notre programme. Donc pas important de faire son démon Linux mais pas totalement inutile non plus. L'avenir et les utilisateurs le diront.

Je suis parti de la version WebBroker du programme de planification des tâches et ai fait les modifications pour qu'ils se référence comme démon sous Linux. Le principe étant différent des services Windows que nous avions déjà mis en place.

Le passage en démon Linux se fait en appelant le programme "cli" avec le paramètre -daemon.

J'ai également ajouté l'option -h sur la version en ligne de commande afin d'afficher l'aide du logiciel et le détail des options d'appel.

Pour finir on a tenté de mettre un style clair et un style foncé au programme client mais sans succès à cause de soucis de réajustement de taille des textes suite à mon choix d'empilage des composants TLabel+TEdit dont je forçais la hauteur. Finalement j'ai retiré cette possibilité qui sera remise au planning d'une future session de codage.

Certaines informations n'ont pas été affichées. Vous devez vous connecter pour y accéder.

Connexion Inscription


Liens associés

Ces liens s'ouvrent dans la même fenêtre que cette page. En cliquant dessus vous quitterez Serial Streameur.
Pensez à les ouvrir dans un nouvel onglet si vous préférez rester ici pour y revenir plus facilement.


Mots-clés associés

API, Delphi, FireMonkey, FMX, Linux, Live coding, Styles FMX, VCL, WebBroker


Classement

Live coding