View Full Version : gestionnaire d'evénement récalcitrant
tout d'abord , bravo pour ce soft...
quelques questions de débutant
1-quand je modifie un gestionnaire d'évent (dans le gestionnaire de form->control->Code),sur le pocketPc ,par exemple le code on_click d'un bouton ,il semble ne pas prendre en compte la modif de façon constante et je retrouve souvent le code d'avant la modif,après un run...même en ayant sauvegardé ce code.
2-un programme source (ppl+ppc+frm),mis au point sur WinXP, déplacé sur le pocketPC(Wm 5.0) ,me donne une fiche sans controle visible...
3-comment modifier les couleurs des fiches et controles?
cordialement
kornalius
10-14-2006, 12:29 AM
Bonjour et merci pour votre interet pour PPL.
1. Je suis presque certain que vous utilisez le code .ppl et non celui du .frm. Le code .ppl est auto-généré à partir du fichier .frm par PPL lors de la compilation dans le PIDE ou avec XLAT sur le PocketPC. Ne faites aucune modification dans le .ppl, seulement dans le .frm.
2. Executez vous le code ou bien vous tentez douvrir le .frm avec le visual form builder sous PocketPC. Envoyez moi le .frm ici pour que je puisses le tester.
3. Ceci n est pas possible à moins que le controle soit un custom-control et non un control de Windows. Windows ne nous aide vraiment pas ici désolé.
bon , je me suis mal expliqué..
j'ai créé un exemple dans visual builder form sur pocketPC avec 2 boutons ,un champ edit et un champ label.
bouton1 m'envoi un texte ds label,l'autre bouton2 me copie le texte d'edit dans label
quand j'ouvre le code du bouton1 dans control->code et que modifie le texte ,que je sauvegarde ,déjà si je fais form->view form source , je ne vois pas de changement.
ensuite , si je fais un run , a partir du VBForm , des fois j'ai le fichier .ppl d'affiché dans le sous-menu et là la modif est prise en compte , mais le plus souvent je ne l'ai pas et suis obligé de suivre Select pour trouver le .ppl corespondant au .frm , et là la modif n'est pas faite non plus
pourtant quand je reviens dans le VBForm à Form->code de ce bouton , le texte correspondant a la modif est bien là !!!!....
pourquoi des fois ca marche ? mystère
merçi de votre aide
pour le transfert d'un fichier .ppl du PC au pocket , il faut ouvrir le .frm ou .ppl ?
cordialement
Finalement , je crois avoir trouvé pour la prise en compte des modifs
dans le VFormB , si je modifie un code d'event de control , il faut sauvegarder la modif , puis sauvegarder le Form après , sinon le Run se fait avec la version d'avant.
Bon ,maintenant je m'attaque au transfert de fichier .ppl du Pc au PocketPc.....
à suivre
cordialement
Finalement , le transfert se fait bien , sauf s'il y a n champ image (je mets pourtant l'image bitmap(bmp)) dans le même dossier comme sur le PC , mais au lieu de se mettre sur le fond , j'ai un grand panneau blanc qui cache les autres controles (tout est ok pourtant sur la version PC)
voiçi le code :
// Code auto-generated by PPL version 1.05 Lite
// Do not modify this code directly.
#include "swapi.ppl"
#define FORM100_ID 100
#define BITMAP105_ID 105
#define LABEL101_ID 101
#define BUTTON102_ID 102
#define BUTTON103_ID 103
#define EDIT104_ID 104
#code {myfr.ppl,13}
#code {myfr.frm#FORM100}
func Menu5001_OnClick(hWnd$, Msg$, wParam$, lParam$)
HandleEventParms
PostMessage(hWnd$, WM_CLOSE, 0, 0);
return (true);
end;
#code {myfr.frm#BUTTON102}
func BUTTON102_OnClick(hWnd$, Msg$, wParam$, lParam$)
HandleEventParms
Edit_Set(Label101$,Edit_Get(Edit104$));
return (true);
end;
#code {myfr.frm#BUTTON103}
func BUTTON103_OnClick(hWnd$, Msg$, wParam$, lParam$)
HandleEventParms
Edit_Set(Label101$,"rrr");
return (true);
end;
#code {myfr.ppl,35}
func WinMain
Global(MsgList$, FORM100$, BITMAP105$, LABEL101$, BUTTON102$, BUTTON103$, EDIT104$, m5000$);
Local(fnt$, keys$);
List(MsgList$);
FORM100$ = NewFormEx("My Form100", "PPLForm", 0, WS_BORDER|WS_VISIBLE, 0, 26, 240, 269, NULL);
BITMAP105$ = NewControl(105, "STATIC", NULL, "", WS_VISIBLE|SS_BITMAP, FORM100$, 0, 0, 240, 272);
SendMessage(BITMAP105$, STM_SETIMAGE, IMAGE_BITMAP, Image_Load({imgbbb.bmp}));
CreateEvent("BITMAP105", BITMAP105$);
LABEL101$ = NewControl(101, "STATIC", NULL, "Static101", WS_VISIBLE, FORM100$, 40, 128, 144, 24);
CreateEvent("LABEL101", LABEL101$);
BUTTON102$ = NewControl(102, "BUTTON", NULL, "Button102", WS_VISIBLE|WS_TABSTOP, FORM100$, 144, 40, 64, 24);
AddEvent(BUTTON102$, BN_CLICKED, 102, &BUTTON102_OnClick);
CreateEvent("BUTTON102", BUTTON102$);
BUTTON103$ = NewControl(103, "BUTTON", NULL, "Button103", WS_VISIBLE|WS_TABSTOP, FORM100$, 144, 8, 64, 24);
AddEvent(BUTTON103$, BN_CLICKED, 103, &BUTTON103_OnClick);
CreateEvent("BUTTON103", BUTTON103$);
EDIT104$ = NewControl(104, "EDIT", NULL, "", WS_VISIBLE|ES_AUTOHSCROLL|ES_AUTOVSCROLL|WS_BORDER |WS_TABSTOP, FORM100$, 72, 80, 128, 32);
CreateEvent("EDIT104", EDIT104$);
CreateEvent("FORM100", FORM100$);
list(keys$);
if (Count(keys$) > 0)
CreateAccelTable(FORM100$, keys$);
end;
m5000$ = NewMenu(FORM100$, "File", 5000);
NewMenuItem(m5000$, -1, "Exit", 5001);
AddEvent(NULL, WM_COMMAND, 5001, &Menu5001_OnClick);
CenterForm(FORM100$);
ShowWindow(FORM100$, SW_SHOW);
SetForegroundWindow(FORM100$);
#code {myfr.frm#}
return (true);
end;
CerfVolant
10-14-2006, 04:05 PM
Au niveau de la visualisation du bitmap, cela rejoint le probleme que j'avais evoqué dans un précedent post, moi non plus le bitmap ne se visualise pas, meme en rajoutant un apppath$ ??
j'essaye ce logiciel depuis hier et je rame un peu...
par exemple quand on mets au point l'interfage avec le créateur de form , il génère un fichier .ppl du mème nom qui écrase éventuellement le fichier .ppl dans lequel on aimerait mettre des fonctions propres..
la solution ?
un fichier include , pour ses fonctions perso?
mais faut pas oublier de rajouter un #include "myfunc.ppl" à chaque modif de l'interface graphique , car tout est nettoyé....à moins qu'il y ait un endroit dans le fichier .ppl principal qui ne soit pas modifié à chaque modif du .frm....
à suivre
pour l'image j'ai essayé tout les tailles , tous les emplacements..rien à faire..d'autant qu'il ne semble pas possible d'incorporer une image dans le visual form builder sur le pocketPc (pas de champ fichier dans propriétés du control bitmap).
un tout petit exemple SVP...
merçi d'avance
cordialement
kornalius
10-14-2006, 08:54 PM
Je crois que le problème c'est le VFB sous PocketPC qui est programmé par une autre personnne. Le fichier .ppl devrait être re-genénéré à chaque RUN ou Compile. Il ne faut jamais modifier ce fichier manuellement. Nous avons une belle place pour stocker les defines ou functions du user. Initialization code section et Form Creation section. Il devrait avoir une option dans les menus pour l'edition de code personalisés.
Je vais devoir faire des testes sur le PocketPC pour l'image. Je vais arranger le problème pour la version de cette semaine, si la solution ne requière pas de modifications je vais vous en faire part en début de semaine.
Encore une fois merci pour intérêt en PPL, nous allons tout faire pour que l'expérience soit agréable.
CerfVolant
10-15-2006, 11:24 AM
Ce qui est sur c'est que quand on utilise VFB il ne faut absolument pas s'occuper du fichier .ppl, toutes les parties de codes doivent etre incorporé dans la section accessible dans le menu Form --> Intialization section code et/ou Form creation code.
Pour le bitmap, que l'on crée un exe avec pide et transfert sur le PDA ou que l'on crée l'exe directement sur le pda, meme résultat, pas d'image, une image blanche sur l'emplacement du controle.
kornalius
10-15-2006, 03:35 PM
Et sans créer de .EXE ? Est-ce que l'image apparait?
pour ce qui me concerne , dans la mesure où j'essaye PPL avec la version Lite , je ne peut pas créer d'exe...donc je transfere image et source .ppl dans le dossier my_documents\ppl du Pda.
(mais en mettant le bmp à la racine c'est idem..)
à signaler un pbs , dans les options sur Pide , il refuse de m'enregistrer de façon durable le directorypar défaut du programe sur le pda , qui est sur la SDcard : \sd-mmc card\program files\ppl et donc quand je fait un run avec target=pocketPC , il ne me trouve pas ,bien sur ,PPL.exe , qu'il s'obstine à chercher sur la mémoire du Pda(\program files\ppl .
Donc je fait les transferts "à la main".
kornalius
10-15-2006, 09:07 PM
Essayez de changer les options dans File -> Preferences. Les options devraient rester permanentes.
Je vais m'assurer que les bitmaps et icones fonctionnent bien sur PocketPC dès Lundi.
CerfVolant
10-15-2006, 10:00 PM
Pour repondre à kornalius que je creé un exe sur pc ou pda, que je fasse un run direct sur pda, je n'ai pas d'image,
s'il faut un source, je peux envoyer un zip
kornalius
10-15-2006, 11:30 PM
Ok merci cela répond à ma question je peux enlever le .exe de ma liste de problème relié aux bitmaps.
kornalius
10-16-2006, 05:31 PM
J'ai trouvé le problème les amis.
Il faut ajouter les AppPath$ au nom du fichier.
Ex:
SendMessage(BITMAP101$, STM_SETIMAGE, IMAGE_BITMAP, Image_Load(apppath$+{ball.bmp}));
Donc dans l'editeur, ajouter AppPath$ + {fichier.bmp}
Ce "fix" devrait fonctionner sur PPC et PC.
Ceci est temporaire vous allez perdre le display de l'image dans l'editeur. Je vais ajuster le GenForm pour fixer le problème.
kornalius
10-16-2006, 05:35 PM
Ok voici le fix.</p>
Décompressez le fichier atttaché et remplacer le fichier Classes.ini dans C:\Program Files\PPL\Classes.ini par le nouveau et aussi dans C:\Program Files\PPL\Editor\Classes.ini. Meme chose sur PocketPC, remplacer \Program Files\PPL\Editor\Classes.ini.</p>
Si vous avez des questions vous savez quoi faire! ;)</p>
En passant si vous appliquez ce "fix" n'ajoutez pas AppPath$ dans la propriétée de l'editeur.</p>[br]1161016521_1_FT749_classes.zip [/html]
-En tout cas , j'apprecie votre Sav+++
-le Fix est parfait sur le PC
-le Fix permet d'afficher l'image sur le pocket , mais cache tous les controles créés par dessus+++(pourtant le BITMAP est réglé sur send to back)
dans les deux cas ,l'image est ds le même dossier que le .frm
si j'essai de reprendre avec VFB sur le pocket en plaçant le BITMAP"on the back" (en fait elle y est déjà ,donc je fais "front" , puis "back") ,à ce moment là l'image disparait, laissant un carré blanc...frustrant!!
-y-a-t-il un moyen de manipuler le nom de fichier dans le VFB du pocket comme sur le PC ?
-depuis que j'ai paramétré les dossiers par défaut du pocket , j'ai un panneau IO error 103 , et un panneau PPL.exe non register (pourtant je l'ai registré) qui apparait lors d'un run avec target->PocketPC.
mais tout marche(programme exécuté sur le pocket).
en fait , ce que j'aimerais faire , c'est un interface plus colorée en utilisant des images ou icones..mais une procedure ON_Click sur un BITMAP ne donne aucun effet++(quelle propriété faut-il modifier?)
encore merçi de votre ténacité..
cordialement.
CerfVolant
10-16-2006, 10:49 PM
En fait sur le Pda il n'y aps le fichier Classes.ini dans le répertoire
\Program Files\PPL\Editor
il est dans
\Program Files\PPL\VFB
j'ai changé et en effet ca fonctionne.
Super la réactivité, j'adore.
kornalius
10-16-2006, 11:52 PM
CerfVolant: Je m'excuses mon erreur c'est dans le VFB vous êtes correcte.
ybes: Le VFB est une version plus rudimentaire du PIDE elle est developement mais de ces temps-ci le programmeur principal est bien "busy". J'esperes qu'il pourra mettre un peu de temps bientot, je vais lui faire part des petits problèmes. L'erreur 103, c'est sur le pocket ou le PC?
Pour ce qui est de l'image cachant les controles, je vais my mettre demain pour comprendre le problème.
vBulletin® v3.8.4, Copyright ©2000-2012, Jelsoft Enterprises Ltd.