PROFESSIONAL NEWSGROUPS
WINDEV
,
WEBDEV
and
WINDEV Mobile
Home
|
Recent messages
|
Connect
|
Sign out
|
English
Home
→
WINDEV (earlier versions)
→
Création de champ super longue
Création de champ super longue
Started by Mimi6257, May, 25 2018 10:01 AM - No answer
Connect yourself…
Mimi6257
#1
Registered member
1 message
Posted on May, 25 2018 - 10:01 AM
Bonjour
Mon application nécessite de créer n * champs de base (combobox, textfield, label, ...) , de les dimensionner et de les positionner , dans une fenêtre interne, tout ça uniquement par programmation.
Cette fenêtre sera le contenu d'un onglet d'un champ onglet déjà existant dans l'IHM.
Il y aura donc autant de fenêtre interne à créer que d'onglet existant.
Le soucis que je rencontre est que la création des champs de base prend énormément de temps, j'ai pu constater sur un mini projet à part que pour créer 100 combobox par programmation, les dimensionner et les placer, l'application prends en moyenne 500 millisecondes (100 combobox dans une fenêtre interne dans un onglet).
Ce qui me donne sur mon projet initial 3,5 seconde pour rafraichir mon IHM ( 7 onglets * une centaine de champs de base en moyenne)
L'idée est de raccourcir ce temps qui n'est pas acceptable pour mon client.
Ma première idée été de créer chaque fenêtre interne de chaque onglet dans un Thread secondaire, mais cela ne fonctionne pas. J'ai une pistes :
- une fois qu'un champ est créer dans son parent (fenêtre interne), il ne peut être uniquement gérer par le thread principal, comme le dis l'article (
http://blogs.pcsoft.fr/fr/manipulation-ihm-ouverture-fenetre-thread-secondaire-preferer-fonctions-wlangage-echange-messages/121/read.awp
), cependant, la méthode DemandeMiseAjourIHM() indique dans sa doc qu'elle peut être utilisée dans le cadre d'une mise à jour de l'interface via des Threads.
Ma seconde idée été de désactivé l'affichage, de créer mes champs, et de réactiver l'affichage des champs et de leur parents ( propriété ..visible et ..affichageActif), mais cela ne me fait gagner à peine 50 millisecondes. On dirai que l'application prend le temps de dessiner quand même les champs même s'ils ne sont pas affichés à l'écran.
Mes questions sont donc :
- est-il possible des créer par programmation des champs (de tout type) , sans parent ou avec un parent déjà affiché à l'écran, dans des threads secondaires, puis une fois les threads secondaires terminés, le thread principal rafraichira l'IHM ?
- est-il possible de forcer l'application à ne rien dessiner du tout pendant la création des champs, et de tout afficher à la fin du processus ? Normalement dessiner 100 combobox par programmation ne devrai pas prendre 500 millisecondes.
J'utilise Windev 21.0.168.7, pour une application bureau qui sera exécutée sur Windows.
Merci d'avance pour vos réponses.
Report
0
0
→ Go back to WINDEV (earlier versions)
WINDEV 2024
WEBDEV 2024
WINDEV Mobile 2024
WINDEV (earlier versions)
WEBDEV (earlier versions)
WINDEV Mobile (earlier versions)
Reports & Queries
Off-topic
Tools
Français
English
Español
Portuguesa
Close this window
Search type
Only topics
All the messages
Search period
Any time
Past hour
Past 24 hours
Past week
Past month
Past year
Cancel
Preview of your message
Adding an image
Import an image from a URL
Send an image from a file of your disk
Drop a file or click "Browse..."
or
Cancel
0%
WLanguage
SQL
XML, HTML
JAVA, Javascript
Text