FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Logiciel de planétarium.
Gestion des évènements par une DLL Emptypar Pedro Sam 23 Nov 2024 - 15:50

» Un autre pense-bête...
Gestion des évènements par une DLL Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Gestion des évènements par une DLL Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Gestion des évènements par une DLL Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Gestion des évènements par une DLL Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Gestion des évènements par une DLL Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Gestion des évènements par une DLL Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Gestion des évènements par une DLL Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Gestion des évènements par une DLL Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Gestion des évènements par une DLL Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Gestion des évènements par une DLL Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Gestion des évènements par une DLL Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Gestion des évènements par une DLL Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Gestion des évènements par une DLL Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Gestion des évènements par une DLL Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
Le Deal du moment :
Boutique Nike : -25% dès 50€ sur TOUT le ...
Voir le deal

 

 Gestion des évènements par une DLL

Aller en bas 
AuteurMessage
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

Gestion des évènements par une DLL Empty
MessageSujet: Gestion des évènements par une DLL   Gestion des évènements par une DLL EmptySam 18 Fév 2017 - 11:50

Dans la dernière version, Jack a ajouté l'évènement ON_USER_EVENT, et ça fonctionne parfaitement. C'est un grand pas en avant, et je suis en train d'en tirer avantage.

Il y a un problème similaire que j'aimerais pouvoir résoudre. Panoramic rend certains évènements Windows accessibles au niveau du langage Panoramic, concernant des objets (ON_CLICK, ON_KEY_DOWN etc). Mais il y en a beaucoup d'autres. J'ai parfaitement conscience qu'il est totalement hors de propos de rendre l'ensemble des évènements accessibles - Panoramic deviendrait une usine à gaz, en contradiction avec le concept initial. Par contre, j'aimerais pouvoir lever cette limitation à l'intérieur d'une DLL.

Pour cela, il faudrait pouvoir spécifier une fonction ou procédure interne à une DLL, comme routine évènement d'un type particulier. Le problème se pose pour moi au sujet de l'évènement ON_DRAWWCELL d'un objet GRID (TStringGrid en Delphi). J'ai développé un objet StringGrid créé directement dans la DLL et piloté uniquement par des appels à des fonctions de la DLL. Cela marche, mais reste très lourd et insatisfaisant au niveau d'une programmation Panoramic standard.

Concernant ON_DRAWWCELL d'un GRID, on pourrait évidemment créer, en Panoramic, l'évènement ON_DRAW_CELL, puis gérer tout en Panoramic. Mais il y a trois écueils à cela: d'une part, je ne suis pas certain que Panoramic ait suffisamment de fonctionnalités et performance pour gérer l'affichage individuel de chaque cellule d'un GRID (accès au canvas etc), ensuite un évènement ON_DRAWCELL reçoit cinq paramètres pour lesquels il faudrait définir des variables système, et pour finir cela resterait une solution spécifique à un seul évènement d'un seul objet. Je ne pense pas que ça vaille l'effort de faire cette réalisation.

Par contre, il serait utile de disposer d'une commande Panoramic définissant une procédure DLL comme routine évènement ! Une commande du type suivant:
ON_WINDOWS_EVENT N,E$,A%
avec:
N = numéro d'objet Panoramic
E$ = nom de l'évènement
A% = adresse d'une "class procedure" dans la DLL

et bien entendu la commande symmétrique
OFF_WINDOWS_EVENT N,E$
On pourrait alors faire facilement une fonction DLL retournant cette adresse A% qui serait mémorisée dans une variable standard de Panoramic. Le nom de l'évènement serait donné sous forme d'une chaîne de caractères (du genre "DRAWWCELL" ou "ONDRAWWCELL"...), et Panoramic, via les informations RTTI, pourra retrouver l'évènement ciblé et charger l'adresse spécifiée.

Tout ceci ne peut malheureusement pas être fait directement dans la DLL, car les versions VCL diffèrent. Je peux dévier la procédure WndProc via un API en utilisant le handle, mais je ne peux pas accéder aux propriétés ON... des objets.

J'ai conscience qu'en cas d'erreur de programation dans la DLL, ce genre de fonctionnalités peut conduire à de violents plantages du programme. Mais ceci est vrai pour beaucoup d'autres aspects de programmation des DLLs, et depuis que les violations de mémoire et autres crashs lourds sont captés dans Panoramic, les conséquences sont beaucoup moins spectaculaires, bien que cela complique un peu la mise au point des DLLs. Mais c'est mieux ainsi.

J'ai également conscience que cette demande, très technique, n'est certes pas prioritaire, surtout dans la situation actuelle de Jack. Mais je pense vraiment que cela ouvrirait de nouveaux domaines d'application dans les DLLs. De plus, la technique proposée ne serait pas limitée à une DLL en Delphi, mais pourrait également être utilisée à partir d'une DLL et FreeBasic ou en C.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
 
Gestion des évènements par une DLL
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Problème de gestion des évènements.
» Manipulation de la gestion des évènements
» Nouveaux évènements pour Panoramic
» Documentation des évènements
» Evènements dans une DLL

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos souhaits d'amélioration de Panoramic-
Sauter vers: