Micro Systèmes n°102 novembre 1989
Micro Systèmes n°102 novembre 1989
  • Prix facial : 30 F

  • Parution : n°102 de novembre 1989

  • Périodicité : mensuel

  • Editeur : Société Parisienne d'Edition

  • Format : (203 x 271) mm

  • Nombre de pages : 230

  • Taille du fichier PDF : 188 Mo

  • Dans ce numéro : technologie... laser et informatique.

  • Prix de vente (PDF) : gratuit

Dans ce numéro...
< Pages précédentes
Pages : 192 - 193  |  Aller à la page   OK
Pages suivantes >
192 193
TECHNIQUE Main. C : main ()//Lancement de l'application. WinBegin() ; WinLoop() ; WinEnd() ; //Initialise les ressources PM et la Thread Serveur//Boucle de traitement des messages//Fermeture et libération des ressources WinBegin() (//Creation des ressources PM//Lancement de la Tache Serveur WinLoop() while (Message() ! = WM_Quit) PostMessage() ; //Attend les messages et//les envoi a la procédure//window ou DialogBox Main est la routine d'entrée de l'application. Elle ouvre la fenêtre, traite les commandes, puis ferme la fenêtre. WinBegin : WinBegin est une fonction booléenne qui crée la fenêtre de l'application et lance la tâche serveur de requêtes. Elle retourne TRUE si l'opération s'est effectuée avec succès, sinon FALSE. WinLoop : WinLoop est une procédure qui reçoit les messages relatifs à l'application et qui les renvoie aux WindowProcedure concernées, fnwpClient notamment. Elle ne se termine qu'à la réception du message WM_QUIT. WinEnd : la procédure WinEnd met fin à l'application. Elle ferme la fenêtre et rend la main au DOS en terminant toutes les tâches relatives à l'application. Les Dialog Procedures : dans le fichier main.c se trouvent aussi les Dialog et Window Procedure. Toujours en Pseudo-C, elles ont l'apparence suivante : WindowProc (HWND hwnd, unsigned short msg, MPARAMmpl, MPARAMmp2) switch (msg) case WM_xyz : break ; case WM_zxy : break ; default WinDefWindowProclhwnd, msg,mpl,mp2) ; Presentation Manager est « Event Driven ». Cela veut dire que lorsqu'un événement survient en provenance du clavier ou de la souris, PM va le transformer en message et l'envoyer à la Window Procedure. Dans la plupart des cas, PM transforme cet événement en quelque chose de 192 - MICRO-SYSTEMES traitable par l'application. Ainsi, si l'on choisit une des options d'un menu, PM va envoyer le message indiquant que le bouton de la souris a été pressé, mais il va envoyer également un message indiquant qu'une des options du menu a été choisie. A partir de cela, il n'y a plus qu'à reconnaître le message et agir en conséquence. Voilà pourquoi PM est dit aussi « Case Oriented » ! Les Dialogs et Window Procedures écrites pour TPV vont filtrer des messages et les traiter. Les actions associées aux messages sont décrites dans les lignes suivantes : WCommand : la procédure WCommand est appelée par la WindowProcedure lors de la réception d'un message WM_COMMAND. Elle exécute les commandes correspondantes ; la liste de ces commandes est : MI_UN : création de la tâche secondaire. MI_DEUX : ouverture de la base de données. MI_TROIS : fermeture de la base de données. MI_QUATRE : pour future extension. MI_CINQ QUERY1 : test de mise au point. Utilisation de la DialogBox. MNU_QUERY01 : choix Résultats Nets par Rayon/Famille dans le menu des queries statiques. Lance la DialogProcedure fnwpDlgQuery01. MNU_QUERY1 : choix Résultats Nets pour Un Rayon/Famille dans le menu des queries statiques. Lance la Dialog- Procedure fnwpDlgQuery. MNU_QUERY2 : choix Evolution des Ventes durant la Journée dans le menu des queries statiques. Lance la Dialog- Procedure fnwpDlgQuery2. MNU_QUERY3 : choix Ventilation des Moyens de Paiement dans le menu des queries statiques. Lance la Dialog- Procedure fnwpDlgQuery3. MI_EXIT : choix Exit dans le menu. Termine l'utilisation de l'application. fnwpClient : fnwpClient est la WindowProcedure de traitement des messages envoyés à la fenêtre de l'application. Elle traite elle-même les messages suivants, sinon elle fait appel à la procédure de traitement des messages par défaut WinDefWindowProc. WM_MINMAX : minimisation/maximisation de la fenêtre. Appelle la procédure WndMinMax de AVIO.C. WM_CREATE : message envoyé à la fenêtre lors de sa création. Initialise l'espace de présentation de la fenêtre (CreatePS et InitColor de AVIO.C), puis crée la ListBox d'affichage des résultats (ListBox, LST_CREATE de LIST- BOX.C) et ouvre la base de données (message WM_COM- MAND/MI_DEUX). WM_MEASUREITEM : taille d'un item de la ListBox d'affichage des résultats (ListBox, LST_MEASUREITEM de LIST- BOX.C). WM_DRAWITEM : dessin d'un item dans la ListBox d'affichage des résultats (ListBox, LST_DRAWITEM de LIST- BOX.C). WM_SIZE : changement de la taille de la fenêtre de l'application : change également la taille de la ListBox d'affichage des résultats (WndSize de AVIO.0 et ListBox, LST_SIZE de LISTBOX.C). WM_COMMAND : commandes utilisateur via le menu ; lance la procédure WCommand. Une commande sur la fenêtre principale a été choisie. WM_ERASEBACKGROUND : message en provenance de la ListBox d'affichage des résultats ; on ne fait rien. WM_PAINT : la fenêtre est redessinée (ShowPS de AVIO.C). WM_CLOSE : terminaison dé l'application (message Novembre 1989
SYSTEMES WM_QUIT). THREAD_IS_STARTED : message en provenance de la tâche secondaire. Rend les choix du menu accessibles à l'utilisateur (SetMenuSelectable de MENU.C). fnwpD1gBusy : fnwpDlg est la DialogProcedure d'accès à la base de données. L'application reste bloquée tant que la requête SQL n'a pas été accomplie. Elle traite les messages suivants, sinon passe la main à la DialogProcedure par défaut WinDefDlgProc. WM_INITDLG : message généré lors de l'appel de la DialogProcedure. précise à la tâche secondaire qu'elle est la procédure appelante (LogThreadUser et ClearThread- User de THREAD.C) et envoie la transaction à effectuer (PMPostThread de THREAD.C). Si cette dernière ne peut être accomplie, envoie le message NOT_PROCESSED. NOT_PROCESSED : la requête SQL n'a pu être exécutée. Affiche un message d'erreur (WinMessage Box) et libère la tâche secondaire (ClearThreadUser de THREAD.C). PROCESSED : la requête SQL a été correctement effectuée, libère la tâche secondaire (ClearThreadUser de THREAD.C). La figure suivante montre le chaînage des modules. Main.H : #define ID_NULL 260 #define ID_DIALOGS 261 #define ID_MAINWND 262 #define ID_EXIT 263 #define ID_FILE 264 #define ID_MSG 265 #define LA_LIST 270 #define LA_LIST2 271 #define MI_EXIT 280 #define MI RESUME 281 #define MI:UN 282 #define MI_DEUX 283 #define MI_TROIS 284 #define MI_QUATRE 285 #define MI CINQ 286 #define MNU_TPV 290 #define MNU_QUERY01 291 #define MNU_QUERY1 292 #define MNU_QUERY2 293 #define MNU_QUERY3 294 #define MNU_QUERY4 295 #define MNU QUERYDYN1 296 #define MNU_QUERYDYN2 297 Window Procédure ialog Procédure Main.RC : #include "os2.h" #include "main.h" ICON ID_MAINWND PRELOAD main.ico ACCELTABLE ID_MAINWND PRELOAD BEGIN VR_F3, MI_EXIT, VIRTUALREY END Résultat Tâche Serveur de Requêtes SQL —> Dialog Procédure Serveur Les ressources Le codage d'une application PM est très structuré. Il y a, d'une part, l'apparence de l'interface formée de sa fenêtre principale avec son menu et les fenêtres de saisie et, d'autre part, le traitement associé à ces objets. L'apparence des fenêtres de saisie est obtenue à partir de fichiers ayant l'extension RC ou DLG. Ces fichiers sont construits à partir de l'éditeur de DialogBox et du compilateur de ressources. Pour avoir une application complète sous PM, on doit donc assembler trois composants : les modules de code traitant les messages ; les fichiers contenant ces messages sous la forme de « define » ; le fichier à l'extention RC et DLG contenant la description des menus et fenêtres de saisie. Ainsi, on aura un élément commun dans ces trois composants. C'est la valeur du define, associé à la ressource PM d'un côté et au traitement de l'autre. A titre d'exemple, on donne ici trois courts extraits des fichiers correspondants. MENU ID_MAINWND PRELOAD BEGIN SUBMENU "-File", ID_FILE BEGIN MENUITEM "-Demarrer La Tache", MI_UN, MENUITEM "-Ouvrir La Base", MI_DEUX, MENUITEM "-Fermer La Base", MI_TROIS, MENUITEM "- Sortir\tF3", MI_EXIT, END SUBMENU "-Tpv", MNU_TPV BEGIN MENUITEM "Résultats Nets Par -Rayon/Famille", MNU_QUERY01, MIS_TEXT, MIA_DISABLED MENUITEM "Résultats Nets Pour -Un Rayon/Famille", MNU_QUERY1, MIS_TEXT, MIA_DISABLED MENUITEM "-Evolution des Ventes Pour La Journée", MNU_QUERY2, MIS_TEXT, MIA_DISABLED MENUITEM "-Ventilation des moyens de paiement" MNU_QUERY3, MIS_TEXT, MIA_DISABLED MENUITEM "Query Dynamique en -ligne", MNU_QUERYDYN1,MIS_TEXT, MIA_DISABLED MENUITEM "Query Dynamique en -menu", MNU_QUERYDYN2,MIS_TEXT, MIA_DISABLED END ENDrcinclude main.dlg La fonction de traitement : void cdeci WCommand (HWND hwnd, USHORT Command)/. Process the command *7 char buffr80] ; HWND hwndl ; MIS_TEXT MIS_TEXT MIS TEXT MIS:TEXT Novembre 1989 MICRO-SYSTEMES - 193



Autres parutions de ce magazine  voir tous les numéros


Liens vers cette page
Couverture seule :


Couverture avec texte parution au-dessus :


Couverture avec texte parution en dessous :


Micro Systèmes numéro 102 novembre 1989 Page 1Micro Systèmes numéro 102 novembre 1989 Page 2-3Micro Systèmes numéro 102 novembre 1989 Page 4-5Micro Systèmes numéro 102 novembre 1989 Page 6-7Micro Systèmes numéro 102 novembre 1989 Page 8-9Micro Systèmes numéro 102 novembre 1989 Page 10-11Micro Systèmes numéro 102 novembre 1989 Page 12-13Micro Systèmes numéro 102 novembre 1989 Page 14-15Micro Systèmes numéro 102 novembre 1989 Page 16-17Micro Systèmes numéro 102 novembre 1989 Page 18-19Micro Systèmes numéro 102 novembre 1989 Page 20-21Micro Systèmes numéro 102 novembre 1989 Page 22-23Micro Systèmes numéro 102 novembre 1989 Page 24-25Micro Systèmes numéro 102 novembre 1989 Page 26-27Micro Systèmes numéro 102 novembre 1989 Page 28-29Micro Systèmes numéro 102 novembre 1989 Page 30-31Micro Systèmes numéro 102 novembre 1989 Page 32-33Micro Systèmes numéro 102 novembre 1989 Page 34-35Micro Systèmes numéro 102 novembre 1989 Page 36-37Micro Systèmes numéro 102 novembre 1989 Page 38-39Micro Systèmes numéro 102 novembre 1989 Page 40-41Micro Systèmes numéro 102 novembre 1989 Page 42-43Micro Systèmes numéro 102 novembre 1989 Page 44-45Micro Systèmes numéro 102 novembre 1989 Page 46-47Micro Systèmes numéro 102 novembre 1989 Page 48-49Micro Systèmes numéro 102 novembre 1989 Page 50-51Micro Systèmes numéro 102 novembre 1989 Page 52-53Micro Systèmes numéro 102 novembre 1989 Page 54-55Micro Systèmes numéro 102 novembre 1989 Page 56-57Micro Systèmes numéro 102 novembre 1989 Page 58-59Micro Systèmes numéro 102 novembre 1989 Page 60-61Micro Systèmes numéro 102 novembre 1989 Page 62-63Micro Systèmes numéro 102 novembre 1989 Page 64-65Micro Systèmes numéro 102 novembre 1989 Page 66-67Micro Systèmes numéro 102 novembre 1989 Page 68-69Micro Systèmes numéro 102 novembre 1989 Page 70-71Micro Systèmes numéro 102 novembre 1989 Page 72-73Micro Systèmes numéro 102 novembre 1989 Page 74-75Micro Systèmes numéro 102 novembre 1989 Page 76-77Micro Systèmes numéro 102 novembre 1989 Page 78-79Micro Systèmes numéro 102 novembre 1989 Page 80-81Micro Systèmes numéro 102 novembre 1989 Page 82-83Micro Systèmes numéro 102 novembre 1989 Page 84-85Micro Systèmes numéro 102 novembre 1989 Page 86-87Micro Systèmes numéro 102 novembre 1989 Page 88-89Micro Systèmes numéro 102 novembre 1989 Page 90-91Micro Systèmes numéro 102 novembre 1989 Page 92-93Micro Systèmes numéro 102 novembre 1989 Page 94-95Micro Systèmes numéro 102 novembre 1989 Page 96-97Micro Systèmes numéro 102 novembre 1989 Page 98-99Micro Systèmes numéro 102 novembre 1989 Page 100-101Micro Systèmes numéro 102 novembre 1989 Page 102-103Micro Systèmes numéro 102 novembre 1989 Page 104-105Micro Systèmes numéro 102 novembre 1989 Page 106-107Micro Systèmes numéro 102 novembre 1989 Page 108-109Micro Systèmes numéro 102 novembre 1989 Page 110-111Micro Systèmes numéro 102 novembre 1989 Page 112-113Micro Systèmes numéro 102 novembre 1989 Page 114-115Micro Systèmes numéro 102 novembre 1989 Page 116-117Micro Systèmes numéro 102 novembre 1989 Page 118-119Micro Systèmes numéro 102 novembre 1989 Page 120-121Micro Systèmes numéro 102 novembre 1989 Page 122-123Micro Systèmes numéro 102 novembre 1989 Page 124-125Micro Systèmes numéro 102 novembre 1989 Page 126-127Micro Systèmes numéro 102 novembre 1989 Page 128-129Micro Systèmes numéro 102 novembre 1989 Page 130-131Micro Systèmes numéro 102 novembre 1989 Page 132-133Micro Systèmes numéro 102 novembre 1989 Page 134-135Micro Systèmes numéro 102 novembre 1989 Page 136-137Micro Systèmes numéro 102 novembre 1989 Page 138-139Micro Systèmes numéro 102 novembre 1989 Page 140-141Micro Systèmes numéro 102 novembre 1989 Page 142-143Micro Systèmes numéro 102 novembre 1989 Page 144-145Micro Systèmes numéro 102 novembre 1989 Page 146-147Micro Systèmes numéro 102 novembre 1989 Page 148-149Micro Systèmes numéro 102 novembre 1989 Page 150-151Micro Systèmes numéro 102 novembre 1989 Page 152-153Micro Systèmes numéro 102 novembre 1989 Page 154-155Micro Systèmes numéro 102 novembre 1989 Page 156-157Micro Systèmes numéro 102 novembre 1989 Page 158-159Micro Systèmes numéro 102 novembre 1989 Page 160-161Micro Systèmes numéro 102 novembre 1989 Page 162-163Micro Systèmes numéro 102 novembre 1989 Page 164-165Micro Systèmes numéro 102 novembre 1989 Page 166-167Micro Systèmes numéro 102 novembre 1989 Page 168-169Micro Systèmes numéro 102 novembre 1989 Page 170-171Micro Systèmes numéro 102 novembre 1989 Page 172-173Micro Systèmes numéro 102 novembre 1989 Page 174-175Micro Systèmes numéro 102 novembre 1989 Page 176-177Micro Systèmes numéro 102 novembre 1989 Page 178-179Micro Systèmes numéro 102 novembre 1989 Page 180-181Micro Systèmes numéro 102 novembre 1989 Page 182-183Micro Systèmes numéro 102 novembre 1989 Page 184-185Micro Systèmes numéro 102 novembre 1989 Page 186-187Micro Systèmes numéro 102 novembre 1989 Page 188-189Micro Systèmes numéro 102 novembre 1989 Page 190-191Micro Systèmes numéro 102 novembre 1989 Page 192-193Micro Systèmes numéro 102 novembre 1989 Page 194-195Micro Systèmes numéro 102 novembre 1989 Page 196-197Micro Systèmes numéro 102 novembre 1989 Page 198-199Micro Systèmes numéro 102 novembre 1989 Page 200-201Micro Systèmes numéro 102 novembre 1989 Page 202-203Micro Systèmes numéro 102 novembre 1989 Page 204-205Micro Systèmes numéro 102 novembre 1989 Page 206-207Micro Systèmes numéro 102 novembre 1989 Page 208-209Micro Systèmes numéro 102 novembre 1989 Page 210-211Micro Systèmes numéro 102 novembre 1989 Page 212-213Micro Systèmes numéro 102 novembre 1989 Page 214-215Micro Systèmes numéro 102 novembre 1989 Page 216-217Micro Systèmes numéro 102 novembre 1989 Page 218-219Micro Systèmes numéro 102 novembre 1989 Page 220-221Micro Systèmes numéro 102 novembre 1989 Page 222-223Micro Systèmes numéro 102 novembre 1989 Page 224-225Micro Systèmes numéro 102 novembre 1989 Page 226-227Micro Systèmes numéro 102 novembre 1989 Page 228-229Micro Systèmes numéro 102 novembre 1989 Page 230