Free 4D Tool Kit


Liste des suggestions pour étendre et améliorer F4DTK

# Date Auteur Description Développement Réservé pour Contre Implémentation finale par Version
2 3.6.1998
Louis Thoumin
Repositionner le curseur après un coller sur un caractère spécial du style
If (¥)
else
end if
¥ indique de repositionner le curseur apres le coller... pratique
       
8 5.6.1998
Louis Thoumin
Possibilite de sauvegarder la proc dans un fichier text et inversement d'importer..
       
12 8.6.1998
Benoit Angibault
Vieux developpeur avec des langages structurés, je n'ai pas toujours le courage d'inserer des commentaires sous 4d sur les commande du type SI ...
Fin de si, Au cas ou ... Fin de cas. Dans mes bases j'imbrique très très souvent ces instructions et je m'y retrouve que quand j'imprime mes sources car à l'écran je n'est pas très facile de si retrouver.
Mais voila actuellement je suis sous windows et je n'ai pas d'imprimante, alors comment faire ?
J'ai réalisé une petite méthode dans soul'kit (je viens de voir à l'instant les résultats du vote pour F4DTK) qui permet de commenter automatiquement les instructions imbriquées.
Par exemple voici un bout de code avant les commentaires :
Boucle ($i;1;$t)  `ici un commentaire existant
Boucle ($i;1;$t)
Si ()
Sinon
Au cas ou
Sinon   `ici un commentaire existant
Fin de cas
Fin de si
Fin de boucle
Repeter
Jusque ()
Boucle ($i;1;$t)
Boucle ($i;1;$t)
Si ()
Sinon
Boucle ($i;1;$t)
Fin de boucle
Fin de si
Fin de boucle
Fin de boucle
Fin de boucle

et avec les commentaires

Boucle ($i;1;$t)  `~DB001 ici un commentaire existant
Boucle ($i;1;$t)  `~DB002
Si ()  `~DS003
Sinon   `~SN003
Au cas ou   `~DA004
Sinon   `~SN004 ici un commentaire existant
Fin de cas   `~FA004
Fin de si   `~FS003
Fin de boucle   `~FB002
Repeter   `~DR005
Jusque ()  `~FR005
Boucle ($i;1;$t)  `~DB006
Boucle ($i;1;$t)  `~DB007
Si ()  `~DS008
Sinon   `~SN008
Boucle ($i;1;$t)  `~DB009
Fin de boucle   `~FB009
Fin de si   `~FS008
Fin de boucle   `~FB007
Fin de boucle   `~FB006
Fin de boucle   `~FB001

Pour chaque jeu d'instructions une codification à été créée :
B = Boucle
FB = Fin de boucle
A = Au cas ou
FA = Fin de cas
etc ...
La valeur numérique est un identifiant unique pour chaque jeu
Le symbole ~ sert au repérage dans les commentaire et pour la
désintentation. En effet on peu aussi enlever tout ce qui à déjà été
commenté.
Quand des commentaires existent dèjà la méthode ne les écrase pas mais les
complète (dans la limite des 80 car autorisés).

En cas d'erreur d'imbrication la méthode le signale ainsi :
Boucle ($i;1;$t)ici un commentaire existant  `~DB001
Boucle ($i;1;$t)  `~DB002
Si ()  `~DS003
Sinon   `~SN003
Au cas ou   `~DA004
Sinon    ici un commentaire exi  `~SN004
Fin de cas   `~FA004
Fin de si   `~FS003
Fin de boucle   `~FB002
Repeter   `~DR005
Jusque ()  `~FR005
********* &Mac240;ERREUR D'INDENTATION&Mac240; --->Fin de si
Boucle ($i;1;$t)
Boucle ($i;1;$t)
Si ()
Sinon
Boucle ($i;1;$t)
Fin de boucle
Fin de si
Fin de boucle
Fin de boucle
Fin de boucle
Benoit Angibault
     
13 9.6.1998
Alain Meunier
Commande qui recentre le fenetre de premier plan sur l'ecran qui n'est pas le principal.
Alain Meunier
     
14
Alain Meunier
Une gestion des raccourcis claviers (paramétrables) pour chaque ligne de menu.
       
20 11.6.1998 Eric Rochant Ne serait-il pas possible d'inclure une fonction qui, a chaque fois qu'une variable est creee dans une methode, ecrit la declaration correspondante dans la methode "Compiler_" ?
On lui affecterait un raccourci clavier
Par exemple : j'ecris la variable MaVar, je la selectionne, je tape le raccourci clavier, une liste hierarchique s'ouvre et propose les differents typages avec, en particulier, quand le typage alpha est selectionne, un "demander" pour lui affecter une longueur. Une fois que le tout est choisi, la declaration s'ecrit dans la methode compiler_
       
21 12.6.1998 Hubert Gailly J'essaye de finir un petit editeur de ressources pour les ressources TEXT, STR#, STR, PICT.
Fonctionnalités prévues:
Edition de fichiers de ressources multiples.
Drag and drop de l'un à l'autre.
choix de remplacement ou d'ajout suivant l'existance ou non d'une ressource de même Id.
1ere version très bientot avec les STR#
2eme version avec le reste
3eme version... si on est encore là
Hubert Gailly      
22 17.6.1998 Nicolas GLAD Procédures et formats d'imports-exports que l'on pourrais utiliser en
menu créé.
       
23 18.6.98  villeteau christian   L'explorateur est un truc interessant:
Déployé, il permet de jeter un coup d'oeil sur l'objet en cause.Replié il devient efficace avec le Glisser-Deposer
Mais il est souvent caché par une fenetre d'avant plan.
Il serait génial d'avoir un raccourci clavier permettant de mettre la fenêtre en cours à droite de l'écran en amenant l'explorateur replié a gauche.
       
24
24.6.1998
Alain Meunier
En admettant que les utilisateurs utilisent un protocole particulier permettre le typage automatique des locales :
  • Recherche des "$"
  • Extraction du type contenu dans le nom de la variable au nEme caractere (prevoir un dialogue de parametrage pour que chacun y trouve son compte...)
  • Collage du typage de toutes les variables en en-tete

On peut aussi imaginer tenir a jour une liste des variables interprocess
dans une ressource.

Lorsqu'on cree une nouvelle varaible interprocess (recherche des <>) meme methode que pour les locales mais dans la ressource. Une autre option permettrait aussi de coller, plus tard, le contenu de la ressource dans une methode "Compiler_"

       
28 16.12.98 Jacques Bossy Dans la liste des methodes personnelles, il est possible :
- d'ajouter une commande en provenance de la liste des commandes
- d'ajouter une methode en provenance de l'explorateur
- d'ajouter une commande manuelle libre
- de supprimer une ligne
- de supprimer un groupe
- d'ajouter un groupe en fin de liste
- de deplacer une methode d'un groupe a un autre

Mais,

il n'est pas possible de deplacer un groupe dans la liste.
29 16.12.98 Maurice Inzirillo Il faudrait avoir une nouvelle option pour Rechercher/Remplacer sur toutes les méthodes. Avec la petite bidouille que vient de nous concocter Jacques Bossy, il est possible de récupérer, en deux coup de cuillère à pot, dans un tableau, l'ensemble des noms des méthodes... et cric crac boum uhhhh !!
30 16.12.98 Maurice Inzirillo Il faudrait pouvoir créer automatiquement le squelette des nouvelles fonctions créées dans un groupe (voir méthodes préférées). Du Style :

  ` Méthode : F4DTK_fct_Xxxx
  ` Créé par XXX YYY le dd/mm/yyyy
  ` Modifié le dd/mm/yyyy à hh:mm par WWW ZZZ
C_ENTIER($0)  `mon commentaire0
C_ENTIER($1)  `mon commentaire1
C_BOOLEEN($2)  ` mon commentaire2

$0:=0

Au cas ou
: (Nombre de parametres=0)
`faire .....
: (Nombre de parametres=1)
`faire .....
: (Nombre de parametres=2)
`faire .....
Sinon
`$0=-xxx <- $0 renvoie un négatif qui défini le type d'erreur
Fin de cas

au niveau du dialogue de création :

Mais c'est juste une idée....

31 6.1.1999 Maurice Inzirillo Au lieu d'avoir une liste "Evenement" je propose de rebaptiser cette
liste "Macro".

Cette liste serait une liste hiérarchique avec comme structure :

- Evènement
- Formulaire
- Sur chargement
- ...
- Moteur
- Sur sauvegarde nouvel enreg
- .....
- Fonction
- Trigger
- etc...

Fonction et Trigger étant des générateurs de squelette. Principe :

Par un double clic sur "Fonction" on créerait automatiquement une
nouvelle méthode après avoir défini par une fenêtre de dialogue , le nom
de la fonction, le nombre de paramètres, leurs types, les commentaires

` Méthode : F4DTK_fct_Xxxx
` Créé par XXX YYY le dd/mm/yyyy
` Modifié le dd/mm/yyyy à hh:mm par WWW ZZZ

C_ENTIER($0) `mon commentaire0

C_ENTIER($1) `mon commentaire1
C_BOOLEEN($2) ` mon commentaire2

$0:=0

Au cas ou
: (Nombre de parametres=0)
`faire .....
: (Nombre de parametres=1)
`faire .....
: (Nombre de parametres=2)
`faire .....
Sinon
`$0=-xxx <- $0 renvoie un négatif qui défini le type d'erreur
Fin de cas

Idem pour les Triggers

Un double-clic sur Trigger génère le code suivant

`Trigger [MATABLE]

C_ENTIER LONG($0;$Erreur)

$Erreur:=0

Au cas ou
: (Evenement moteur=Sauvegarde enregistrement)
$Erreur:=SauvegardeClientExistant

: (Evenement moteur=Sauvegarde nouvel enreg)
$Erreur:=SauvegardeNouveauClient

: (Evenement moteur=Suppression enregistrement)
$Erreur:=SuppressionClient

: (Evenement moteur=Chargement enregistrement)
`aucune règle définie actuellement

Sinon `Evènement moteur inconnu (un bug 4D)
$Erreur:=-15000

Fin tant que

$0:=$Erreur

Comme pour le générateur de fonction, on pourrait avoir un dialogue de
définition du trigger avec nom de la table et paramètres et tout et
tout... Bref quelque chose de sexy qui fait crac boum uh ! :-)
32              
33

 


dernière mise à jour le 9/6/02- MI