Création de fenêtre et de champs de façon dynamique

Inscrit:
08/10/2003 15:30
De Montfort sur Argens (83)
Post(s): 209
Bonjour à toutes et à tous,

Voici mes besoins, je dois pouvoir créer dans mon application des fenêtres de façon dynamique et les champs qui lui seront associés également.

Le principe est le suivant, le client ayant besoin de pouvoir modifier l'interface à sa guise et sans forcément repasser par notre société souhaite pouvoir lorsqu'il en a besoin rajouter par exemple un champ texte dans la fenêtre, établir une relation vers la base de données et éventuellement vers les états prédéfinis de l'application.

J'ai bien vu dans la documentation les fonctions 'ChampClone' et 'ChampSupprime', mais la fonction 'ChampClone' impose certaines limites qui ne rentrent pas dans le cadre de ce que je souhaite faire.

Ce que je souhaite, c'est pouvoir créer une classe qui permette de créer un champ à la volée (avec un type, un nom, un libellé, position X, position Y, une action sur clic, etc...). Je veux pouvoir également créer une table dans SQL SERVER qui sera dédié à cette classe et qui permettra d'administrer finement chaque champ d'une fenêtre.

Pensez vous qu'avec les fonctions fournies dans WinDev cela soit réalisable ??


Contribution le : 13/08/2004 12:07
_________________
Cordialement,
Thernius
-------------------------------------------
Itanéa.com, réalisations de logiciels & créations webs......
Créer un fichier PDF de la contribution Imprimer


Re: Création de fenêtre et de champs de façon dynamique

Inscrit:
08/10/2003 15:30
De Montfort sur Argens (83)
Post(s): 209
Après une courte réflexion et vu qu'apparemment WinDev ne permet pas la création dynamique de tels champs, mais seulement un clônage, la solution ne serait elle pas de dire ceci :

Je créée une fenêtre avec tous les types de champs (1 champ par type), en leur donnant la caractéristique invisible au départ. Ensuite, il suffit d'activer à la demande, les champs voulus (de les clôner au besoin) et de les repositionner selon les besoins.

C'est une piste de départ, évidemment je suis preneur de toutes propositions!!

Bon appétit

Contribution le : 13/08/2004 12:13
_________________
Cordialement,
Thernius
-------------------------------------------
Itanéa.com, réalisations de logiciels & créations webs......
Créer un fichier PDF de la contribution Imprimer


Re: Création de fenêtre et de champs de façon dynamique
Anonyme
J'ai déjà travaillé sur quelque chose de similaire,... mais je pense que tu sera obligé de passer par des champs clonés.
Allé un premier jet:

Tu crées un champ standard(Saisie, bouton,...). Tu crées les fonctions associées en fonction d'une variable que tu stocke dans champ..note à la création du champ clone moi je mettrais l'identifiant dans ta base de données.

En suite, la fonction double clic par exemple, te permet d'ouvrir une fenêtre de paramètrage de ton objet. Et tu ouvre la fenêtre avec en paramêtres, l'instance de ta classe ou l'enregistrement associé. Tu fais les modifs, et un bouton 'ok' valide les changements, modifi la base ou l'instance de classe.

Si ça te va fait le moi savoir sinon je développerais un peu plus ...

Contribution le : 13/08/2004 13:58
Créer un fichier PDF de la contribution Imprimer


Re: Création de fenêtre et de champs de façon dynamique
Utilisateur WDF
Inscrit:
03/06/2004 14:31
De Bourgoin Jallieu (38)
Post(s): 52
Bon grrr la connexion !!!
Voila cétait moi le post du dessus !!!

Contribution le : 13/08/2004 14:00
Créer un fichier PDF de la contribution Imprimer


Re: Création de fenêtre et de champs de façon dynamique

Inscrit:
08/10/2003 15:30
De Montfort sur Argens (83)
Post(s): 209
Oulà, va pas si vite!!
Quel est l'intérêt de placer les fonctions dans le champ note (qui d'après la doc ne sert qu'à mettre des commentaires pour les développeurs, si je ne m'abuse) ?

Ensuite OK pour le double clic pour paramétrer l'objet, mais comment concrètement s'appliquent les modifications sur le champ au niveau du programme.
Je prends un exemple :
Je crée un champ texte 'dynaTexte_1'
Lorsque je double cliques dessus, je veux paramétrer que ce champ est relié à 'Adresse2' dans ma base 'Test' de SQL SERVER.

PLUSIEURS QUESTIONS :
--------------------------------

Lorsque je clique sur le bouton 'Appliquer' de ma fenêtre de paramétrage, par quelle méthode j'insère le code au bon endroit ? Par un fichier EXTERNE ?

Est ce qu'une fois le paramètrage effectué, je dois réaliser une compilation dynamique ?

Comment redéfinir la position du champs alors qu'il est déjà en place ? (sans doute avec ..X = X + valeur) Mais est ce que cela va s'appliquer dans le programme ?

Et pour finir une question de plus haut vol encore, est il possible d'après vous de développer un mini wysiwyg qui permettrait de disposer à la volée des champs dans une fenêtre (oui, je sais sans doute là je rêve, mais bon...) ?

Contribution le : 13/08/2004 14:12
_________________
Cordialement,
Thernius
-------------------------------------------
Itanéa.com, réalisations de logiciels & créations webs......
Créer un fichier PDF de la contribution Imprimer


Re: Création de fenêtre et de champs de façon dynamique
Utilisateur WDF
Inscrit:
03/06/2004 14:31
De Bourgoin Jallieu (38)
Post(s): 52
Ok alors je vais essayer dans l'ordre.

1 : Dans le champ note, tu ne place pas de fonction, mais un identifiant d'objet, je pense a une base de données, l'identifant dans ta base. Sinon, si c'est une classe, l'indice dans le tableau dynamique des objets.

Ainsi, a partir de ton champ Windev, tu peux retrouver l'instance de l'objet, ou l'enregistrement de ta classe.

Création du champ :

ChampClone(SaisieStd, "DynaTexte_" + NoTexte)
{"DynaTexte_" + NoTexte}..Note = IdNouvelObjet
Donc la on fait le lien entre la base de donnée ou le tableau des objets, et le champ Windev.

2 DBClic :

ouvre(Fen_ConfigTexte,MoiMeme..Note)
ou:
Rechercher l'objet et
ouvre(Fen_ConfigTexte,Tab_Objet[Moimeme..Note])
..pareil pour la base de donnée
Ensuite dans ta fenêtre de config, tu affiche toutes les données de ton champ, + les données de ta classe ou de ton instance.

Pour retrouver l'objet, stocke dans l'instance le nom du champ Windev que tu as cloné.

Pour modifier les coordonnées du champ:

{Objet:NomDeLObjet}..X = NouvelleValeur
Et voila...

3: Pas de compilation dynamique. Les champs réagiront directement.

4: Tes champs standard, seront bien invisible. Ici, il faut bien les créer, je m'explique:

Pour un champ texte, il faudra surement une initialisation différente que les champs bouton,... Au double clic, tu n'ouvrira pas la même fenêtre pour tout les champs. Un champ image devra pouvoir selectionner une image par exemple. un bouton devra pouvoir selectionner un type d'action... Donc pour chaque type de champ, une fenêtre de gestoin différente.

Dans un bouton :
DBClic : Ouvre(Fen_ConfigBouton...
Dans un Texte :
DBClic : Ouvre(Fen_ConfigTexte...
...

5: Le WYSIWYG est très faisable, c'est mon projet actuel...

Remarque : La stratégie des champs clones est très facile à mettre en oeuvre pour un WYSIWYG, par contre, tu vas rencontrer beaucoup de problèmes, liés a la mémoire que cela va prendre. Tu va rencontrer des ralentissements d'execution, qui risquent de te saouler à force... Personellement, j'ai opté pour une solution toute diférente, je déssine les champs dans une image, ça a l'intérêt d'accelerer énormément l'execution du programme, par contre, le code est plus compliqué,... voilou !!


Contribution le : 13/08/2004 14:40
Créer un fichier PDF de la contribution Imprimer


Re: Création de fenêtre et de champs de façon dynamique
Animateur WDF
Inscrit:
02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
Salut,

le projet ExplorerBar repose sur le principe du champs clone
Le clic des boutons son gérées dans mon projet par une classe.

Ceci pourra je l'espère vous servir de support pour en comprendre le fonctionnement.

Contribution le : 13/08/2004 23:00
_________________
@A+
Contact (privé)......
email : drcharly@wdforge.org
[DrCharly93]
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant




Enregistrer votre réponse
CompteNom   Mot de passe   Authentification
Message:


Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2