La programmation Win32 en Virtual Pascal avec OWL


précédentsommairesuivant

I. Préliminaires

Avec les outils RAD (Rapid Application Development) actuels comme Delphi, il est devenu aisé de programmer un éditeur de texte complet en 5 minutes chrono. Au niveau rapport qualité/rendement/prix, c'est imbattable. Et voilà que j'arrive avec un tutoriel sur une bibliothèque issue des débuts de la programmation orientée objet sous Windows. Et je vous dis : voici une alternative intéressante à la programmation RAD ! Attention, je ne dis pas "alternative rentable", je dis bien "alternative intéressante".

Quel intérêt peut-il bien y avoir là-dedans ? Eh bien, OWL (Object Windows Library) est une bibliothèque d'objets génériques d'interface avec Windows. Un objet Windows, c'est aussi bien une fenêtre qu'une boîte de dialogue, qu'un bouton, une boîte liste, une barre de défilement, une police de caractères, un pinceau pour dessiner, etc. Grâce aux objets OWL, il est possible de modifier et/ou d'enrichir le comportement des objets Windows.

Une différence par rapport aux outils RAD est qu'un programme OWL ne nécessite pas de couche logicielle supplémentaire mais s'appuie directement sur le système, sur l'API (Application Programming Interface). OWL étant proche du système, elle permet donc de mieux comprendre le fonctionnement intime de Windows.

I-A. Prérequis

Bien que ce tutoriel soit très progressif, il demande une bonne maîtrise du langage Pascal. Il est en tout cas rédigé comme si vous étiez un(e) programmeur(euse) confirmé(e) issu(e) de Turbo Pascal.
Si vous provenez du monde de Delphi, vous serez sans doute dépaysé(e) par l'aspect non RAD du développement et par l'utilisation intensive de l'API Windows. Si vous êtes déjà rompu(e) à la programmation Windows classique, vous serez sans doute dépaysé(e) par l'aspect objets mais n'aurez aucun mal à digérer les notions relatives au fonctionnement interne de Windows. Enfin, si vous avez déjà travaillé avec l'interface TurboVision, vous retrouverez certaines notions, bien que le fonctionnement interne de OWL soit complètement différent.

I-B. Tutoriels disponibles dans la section Pascal/Delphi de Developpez.com

I-C. Compilateur et utilitaires nécessaires

I-C-1. Compilateur

Les sources que vous rencontrerez tout au long du tutoriel sont rédigés pour le compilateur Virtual Pascal 2.1 (build 279), entièrement compatible avec Borland Pascal for Windows 7.0.

Vous pouvez télécharger l'IDE complet de Virtual Pascal sur Developpez.com :

Il est possible que le portage de la bibliothèque OWL soit un jour également réalisé pour le compilateur Free Pascal.

I-C-2. Editeur de ressources

Un bon éditeur de ressources visuel est également requis. Borland Resource Workshop 4.5 est un excellent éditeur, tant pour créer des ressources 16 bits que des ressources 32 bits. Cet outil accompagne d'ailleurs plusieurs environnements de développement comme Borland C++, Turbo C++ ou Delphi.

I-C-3. Documentation

Pour terminer, il vous faut une solide documentation sur l'API Windows (Application Programming Interface). Internet regorge de ce genre de ressources mais vous pouvez vous contenter de télécharger le fichier hlp dont je me sers généralement :

Mais LA référence incontournable reste la MSDN Microsoft.

I-D. Configuration de Virtual Pascal 2.1

I-D-1. Sources de la bibiliothèque OWL

L'installation de Virtual Pascal ne devrait pas poser de problème particulier. Les sources de la bibliothèque OWL ne seront installés que si sont présents sur votre disque dur les fichiers sources de la RTL (Run-Time Library) de Borland Pascal for Windows 7.0. Ce compilateur est protégé par licence; Borland International / CodeGear ne le propose plus au téléchargement. Quoi qu'il en soit, si vous tenez absolument à vous le procurer, des licences sont toujours disponibles à la vente sur le Net. Mais rassurez-vous, les sources de la bibliothèque OWL ne sont pas indispensables pour pouvoir utiliser celle-ci.
Vous pouvez en télécharger la version compilée ci-dessous.

I-D-2. Compilation de la RTL et de OWL

Deux "méta-unités" sont fournies avec Virtual Pascal, l'une pour compiler les sources de la RTL et l'autre pour compiler la bibliothèque OWL. La seconde n'est bien sûr disponible que si les sources de la bibliothèque OWL ont été installés (voir le paragraphe précédent). Il suffit de charger ces "méta-unités" dans l'éditeur puis de les compiler avec la commande Build du menu Compile.

Voici leur localisation :

  • bldrtl.pas : dossier \Source\RTL - pour compiler la RTL
  • buildowl.pas : dossier \Source\OWL - pour compiler la bibliothèque OWL
 

Si vous éprouvez des difficultés à installer et/ou compiler la RTL ou la bibliothèque OWL, ou si, pour cette dernière, les sources n'ont pas été installés, vous pouvez les télécharger ci-dessous et les copier dans le dossier \out.w32\units :

I-D-3. Réglages des options

I-D-3-a. Plateforme de destination

L'intégralité du tutoriel étant consacrée à la programmation Windows, il est évident que la plateforme de destination doit être Win32. Le choix de la plateforme se fait par le menu Compile --> Target platform :

Image non disponible

I-D-3-b. Compilateur

Fort logiquement, les options du compilateur sont accessibles via le menu Options --> Compiler :

Image non disponible

Vous ne devez pas considérer ces options comme définitivement figées. En effet, selon l'étape où vous vous trouvez dans le développement, vous pouvez régler différemment les options du compilateur. Vous disposez pour cela des trois boutons en bas et à gauche :

  • Debug pendant la phase de débogage;
  • Fastest pour générer votre exécutable final avec un maximum de peformances;
  • Smallest pour générer votre exécutable final avec la plus petite taille possible.

Il est peu probable que le choix du plus petit exécutable possible soit une bonne solution car la réduction du code et des données se fait souvent au détriment des performances générales. Mais rien ne vous empêche bien sûr de tester les deux options.
Une fois votre choix fait, vous pouvez aussi modifier l'une ou l'autre option.

Il est très important que la syntaxe étendue (Extended syntax) soit activée. Sans trop anticiper sur le contenu du tutoriel, cela permettra notamment d'appeler des fonctions comme des procédures et d'utiliser des chaînes AZT (A Zéro Terminal) avec les routines classiques du Pascal.

I-D-3-c. Editeur de liens

Les options de l'éditeur de liens sont accessibles via le menu Options --> Linker :

Image non disponible

Tout d'abord, les programmes que nous allons créer tout au long de ce tutoriel devront tourner sous l'interface graphique de Windows. Il faut donc sélectionner GUI application (pour Graphics User Interface).
L'option Generate location info reste cochée tant que vous êtes au stade du débogage. Lorsque vous générerez votre exécutable final, vous pourrez la décocher.

Le reste des options peut être laissé par défaut.

I-D-3-d. Taille de l'éditeur pour un confort maximum

L'IDE (Integrated Development Environment, en français environnement de développement intégré) de Virtual Pascal se compose d'un éditeur complet en mode texte et d'un debugger intégré.
Par défaut, l'éditeur tient dans une fenêtre de 80 * 25 caractères, ce qui est un peu court.

Une astuce permet d'augmenter la taille de l'éditeur :

Tout d'abord, allez cocher l'option Keep original dans le menu Options --> Environnement --> Preferences :

Image non disponible

Ce faisant, vous forcez Virtual Pascal à restituer automatiquement au démarrage le nombre de lignes et de colonnes courant. Sauvez les options avant de quitter : menu Options --> Save options.

Ensuite, créez un petit script de lancement (appelé par exemple VP.cmd).

Si vous travaillez sous Windows 95/98/Me :

 
Sélectionnez

@Echo off
MODE CON COLS=132 LINES=70
C:
CD \Program Files\Vp21\Bin.w32
VP

Si vous travaillez sous Windows NT/2000/XP :

 
Sélectionnez

@Echo off
C:
CD \WINNT\System32
MODE CON COLS=132 LINES=70
C:
CD \Program Files\Vp21\Bin.w32
VP

Bien entendu, il se peut que vous ayez à spécifier un autre dossier de lancement de Virtual Pascal ou que vous souhaitiez configurer l'éditeur avec une autre résolution. Il suffit d'exécuter une fois le script de commande pour que Virtual Pascal enregistre la taille de l'éditeur et la restitue automatiquement à l'avenir.

Pour terminer, éditez le raccourci de Virtual Pascal :

Image non disponible

  1. Options d'affichage : fenêtre
  2. Taille du curseur : moyenne
  3. Options d'édition : décochez le tout (sinon la souris sera inopérante)

I-D-3-e. Vitesse de clignotement du curseur

Le curseur de texte de l'éditeur est parfois difficile à voir lorsque l'on scrolle dans la fenêtre. Pour améliorer sa visibilité, il suffit de régler le clignotement du curseur sur une vitesse plus élevée (Panneau de configuration de Windows --> Clavier --> Vitesse de clignotement du curseur).

I-D-3-f. Coloration syntaxique

Vous pouvez définir vous-même les couleurs utilisées dans l'éditeur de Virtual Pascal. Le fait de pouvoir aisément différencier les commentaires, les chaînes de caractères, les inclusions de code Assembleur, etc, procure un confort non négligeable.
Pour accéder aux définitions de couleurs : Options --> Environment --> Colors --> Syntax.

I-E. Codes ANSI des caractères accentués

Le texte de l'éditeur de Virtual Pascal 2.1 est codé en ASCII. Cela pose un problème lorsque l'on définit des chaînes de caractères destinées à être affichées dans un environnement Windows, qui attend un codage ANSI : les caractères accentués ne s'affichent pas correctement.
Par contre, le codage ASCII est parfait pour un programme console.

Tout au long de ce tutoriel, nous coderons les caractères accentués à l'aide de la directive # :

 
Sélectionnez

StrCopy(Chaine,'Les caract'#232'res accentu'#233's sont p'#233'nibles '#224' utiliser');

Voici un tableau reprenant les codes des caractères accentués les plus usités :

Caractère Code ANSI
à #224
â #226
ä #228
ç #231
è #232
é #233
ê #234
ë #235
î #238
ï #239
ô #244
ö #246
ù #249
û #251
ü #252
© #169
® #174
° #176

précédentsommairesuivant

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2005-2007 Jean-Luc Gofflot. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.