Omega a écrit :Pourquoi la fenêtre ne se redimensionne pas? Pourtant j'utilise les dimensions de l'écran
1) Oui ta fenêtre prend tous l'écran, mais si tu essaie de la déplacer pour la changer d'ecran par exemple, tu te retrouve avec une fenêtre de 0 par 0
Code : Tout sélectionner
OpenWindow(#winmvt, 0,0,0,0, "",#PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_MinimizeGadget|#PB_Window_Maximize)
vue que tu ne lui donne pas de taille...
2) Oui ta fenêtre prend tout l'ecran mais on se retrouve avec un énorme vide puisque tu resize ta fenêttre mais pas son contenu, Si tu ne veux pas gérer le resize, le plus simple c'est de ne pas l'autoriser.
Comment veux tu retrouver quoi que ce soit dans un code comme ça ?
Ton code ne compile pas avec EnableExplicite ! donc tu ne déclare pas tes variables = pas bien !
Un code qui atteind un certain volume peut être découpé en plusieurs petits code, utilise les modules ils sont là pour ça !
Pure basic a (enfin) une gestion des event par callback très simple d'utilisation et natif, utilise bindevent ! La boucle select event n'a plus lieu d'exister c'est illisible et ça gonfle le volume d'un code sans aucune raison...
Toutes tes variables sont déclarées en global, pourquoi ? Si tu as besoin de variables pour tes procédures, déclare les à l'intérieur de ta procédure, "protected ou static" (et non define) en fonction du besoin, ça t'évitera de remonter de 5000 lignes pour revoir les variables que tu as déclaré (et ça t'évitera d'avoir 2 global avec le même nom).
Certaines de tes procédures se terminent pas un label pour i fair appel via un goto à l'intérieur même de ta procédure afin d'en sortir... Pourquoi pas "Procedurereturn" ??? c'est plus simple, ça ne prend pas de mémoire et c'est surtout fait pour...
Code : Tout sélectionner
If Val(wJ$)>=1 And Val(wJ$)<=31
Result=1
Else
Result=0
Goto FinIsDate
EndIf
Code : Tout sélectionner
If Val(wJ$)>=1 And Val(wJ$)<=31
Result=1
Else
ProcedureReturn #False
EndIf
Omega a écrit :Je pense que le code est trop long pour une opération si simple.
Hé bah... tu ne manque pas de gueule au moins
La taille de ton code pourais être /2 juste en supprimant les multiples actions totalement innutil :
????? bah déclare juste ta variable en .s à ce moment la.
Code : Tout sélectionner
Procedure xcm(x.f)
result = x * (PrinterPageWidth()/21) ; 21cm A4
ProcedureReturn result
EndProcedure
=
Code : Tout sélectionner
Procedure xcm(x.f)
ProcedureReturn x * (PrinterPageWidth()/21) ; 21cm A4
EndProcedure
Code : Tout sélectionner
;Enlever les espaces
wSt$=""
For u=1 To Len(string$)
If Mid(string$,u,1)<>Space(1)
wSt$=wSt$+Mid(string$,u,1)
EndIf
Next u
On le retrouve plusieurs fois dans ton code par exemple.... Utilise les Macro dans ce cas, ou fait en une procédure.
Code : Tout sélectionner
If CountGadgetItems(#fbl_numdoc)<=0
ClearGadgetItems(#fbl_numdoc)
Si ton gadget est vide (ou plus que vide ???) alors on le vide <=========== ??? bon bah la c'est bon il est bien vide ton gadget.
Code : Tout sélectionner
ForEach (facvNumListe())
numdoc$=facvNumListe()\numdoc
AddGadgetItem(#facv_numdoc,-1,numdoc$)
Next
Donc la tu copie ta mémoire dans ta mémoire pour le copier dans ta mémoire... WHAT ?
Code : Tout sélectionner
ForEach (facvNumListe())
AddGadgetItem(#facv_numdoc,-1,facvNumListe()\numdoc)
Next
L'utilisation d'une variable pour y copier le contenu d'une variable pour remplacer ce contenu par un autre contenu (car on est dans une boucle foreach) c'est peut être too much...
Certe ça fonctionne, mais pourquoi faire des actions innutil supplémentaire si on peut s'en passer ??
Bref j'en suis rendu ligne 3000 en scrollant un peut au pif et je suis limite de l'AVC donc je vais m'arréter là, mais le seul conseil que je puisse te donner avant de continuer dans ton code : FAIT DU RANGEMENT !!! (Et utilise EnableExplicite au début de TOUS tes codes... Ca t'évitera bien de problèmes...