Fréquence des Chaînes de télévision free (canal2, stv equinox , TV5, etc...), Etudier et Comprendre

Fréquence des Chaînes de télévision free (canal2, stv equinox , TV5, etc...), Etudier et Comprendre

Programmation

Dans cette partie nous allons nous initier progressivement avec les langages de programmation.
commençons par C++



INITIATION A L’OUTIL C++ BUILDER

 

 

Introduction

 

Cet outil logiciel BORLAND, basé sur le concept de programmation orientée objet, permet à un développeur, même non expérimenté, de créer assez facilement une interface homme/machine d'aspect « WINDOWS ».

Le programme n’est pas exécuté de façon séquentielle comme dans un environnement classique.

Il s’agit de programmation « événementielle », des séquences de programme sont exécutées, suite à des actions de l’utilisateur (clique, touche enfoncée etc…), détectées par WINDOWS.

 

Ce TP, conçu dans un esprit d’autoformation, permet de s’initier à l’outil, en maîtrisant, en particulier, quelques aspects généraux des problèmes informatiques, à savoir :

- La saisie de données,

- Le traitement,

- La restitution.

 

 

Bibliographie

 

- L’aide du logiciel,

- BORLAND C++ BUILDER, Gérad LEBLANC, EYROLLES.

 

 

1- Création du projet

 

C++ Builder fonctionne par gestion de projet. Un projet contient l’ensemble des ressources à la construction du fichier exécutable final.

Par défaut, les fichiers utilisateurs sont rangés dans la répertoire

c:Program FilesBorlandCbuilder3Projects

 

Créer un sous-répertoire Sei dans le répertoires Projects de Builder.

Lancer C++ Builder.

Apparaissent

- La fenêtre graphique (Form1), dans laquelle seront posés les objets graphiques (menus, boutons etc …),

- Un fichier source Unit.cpp, contenant l’application utilisateur,

- Un fichier source Project1.cpp qui sera utilisé par WINDOWS pour lancer l’application utilisateur (pour y accéder Voir à Gestionnaire du projet à Double Clique sur Project1),

- un fichier d’en-tête Unit1.h  contenant la déclaration des composants utilisés sous forme de variables globales, ainsi que les fonctions créées. (pour le lire  Fichier à Ouvrir à Unit.h)

- Dans le bandeau supérieur, un choix de composants graphiques,

- Sur la gauche, «l’inspecteur d’objets », permettant de modifier les propriétés de ces composants graphiques, et de leur associer des événements détectés par WINDOWS.

 

Modifier le nom du projet : Fichier à Enregistrer le projet sous

- Unit.cpp devient ProjectsSeiSei_App.cpp

- Project1.bpr devient ProjectsSeiSei_Pro.bpr


alors,

- Unit.h devient automatiquement ProjectsSeiSei_App.h

- Project.cpp devient automatiquement  ProjectsSeiSei_Pro.cpp

 

Cliquer dans la fenêtre Form1. Repérer dans l’inspecteur d’objets les 2 propriétés « Name » (nom de la fenêtre dans le programme), et  « Caption » (Titre de la fenêtre).

D’une façon générale, la plupart des composants Builder possèdent 2 identifiants :

- « Caption » : nom apparaissant sur l’écran à l’exécution,

- « Name » : nom du composant dans le programme, et donc variable à manipuler.

 

Modifier le titre de la fenêtre : « Travaux Pratiques »

 

Exécuter le programme. Le fermer avec la croix en haut à droite de la fenêtre.

 

Sortir de C++ Builder. Vérifier la présence du fichier exécutable Sei_Pro.exe, dans le répertoire Sei. Le lancer directement et vérifier son fonctionnement.

 

Revenir à C++ Builder et recharger le projet Sei_Pro.

 

 

2- Création d’un menu

 

On souhaite créer un menu                   Fichier

                                                                              Saisie

                                                           Affichage

                                                           Quitter

 

Dans la boîte à outils  « Standard », sélectionner le composant  « Main Menu » et le placer dans Form1.

Cliquer sur ce menu, et remplir les différentes cases « Caption ».

 

Double Cliquer sur la rubrique « Quitter ». On accède alors à la fonction qui sera exécutée lors d’un clique sur cette rubrique. Compléter cette fonction comme ci-dessous.

 

void __fastcall TForm1::Quitter1Click(TObject *Sender)

{

Form1-> Close();

}

 

Exécuter le programme et vérifier.

Quitter C++ Builder et vérifier la présence dans le répertoire SEI du fichier Sei_App.h. Le lister et conclure.

Revenir à C++ Builder.

 

Cliquer dans Form1 et modifier sa couleur, via l’inspecteur d’objets, (choisir le blanc, clWhite). Vérifier en exécutant.

 

On souhaite maintenant interdire, pour l’instant, l’accès à la rubrique « Affichage » du menu.

Cliquer sur cette rubrique, modifier la propriété « Enabled » en « false » et vérifier en exécutant le programme.


Ajouter maintenant au menu une rubrique « Couleur » :

 

Fichier                        Couleur

Saisie                           Blanc

Affichage                     Gris

Quitter

 

Puis en double cliquant sur la rubrique « Blanc », compléter la fonction comme ci-dessous :

 

void __fastcall TForm1::Blanc1Click(TObject *Sender)

{

Form1->Color = clWhite;

}

 

Enfin en double cliquant sur la rubrique « Gris », compléter la fonction comme ci-dessous :

 

void __fastcall TForm1::Gris1Click(TObject *Sender)

{

Form1->Color = clGray;

}

 

Vérifier en exécutant.

 

 

3- Création d’une boîte de dialogue

 

Ajouter maintenant au menu une rubrique « Outils » :

 

Fichier                        Couleur          Outils

Saisie                           Blanc               A propos de …

Affichage                     Gris

Quitter

 

Poser sur la fenêtre Form1 une « Label » (dans les composants « Standard »), avec les propriétés suivantes :

Alignment : taCenter

AutoSize : false

Caption : TP Builder mars 1999

Color : clAqua

Font : Times New Roman / Normal / Taille 12

Height : 80

Left : 150

Name : Label1

Top : 80

Transparent : false

Visible : true

Width : 145

Garder les valeurs par défaut des autres propriétés.


Ajouter au milieu de la Label1 un « BitBtn» (dans les composants « Supplement »), avec les propriétés suivantes :

Name : BitBtn1

Kind : bkOK

Visible : true



 

 

 

 

 


OK

 

Travaux Pratiques C++ Builder mars 1999

 
Exécuter pour vérifier.

 

Donner maintenant à Label1 et à Bitbtn1 la propriété Visible = false.

 

Exécuter pour vérifier.

 

Cliquer sur la ligne A propos de … du menu et compléter la fonction comme ci-dessous :

 

void __fastcall TForm1::Aproposde1Click(TObject *Sender)

{

Label1->Visible = true;

BitBtn1->Visible = true;

}

 

Exécuter pour vérifier.

 

Cliquer sur le bouton OK et compléter la fonction comme ci-dessous :

 

void __fastcall TForm1::BitBtn1Click(TObject *Sender)

{

Label1->Visible = false;

BitBtn1->Visible = false;

}

 

Exécuter pour vérifier.

 

 

4- Création d’une boîte de saisie

 

Ajouter sur Form1 une « Label » (dans les composants « Standard »), avec les propriétés suivantes :

Alignment : taLeftJustify

AutoSize : false

Caption : Saisir un nombre :

Color : clYellow

Font : Times New Roman / Normal / Taille 10

Height : 80

Left : 50

Name : Label2

Top : 150


Transparent : false

Visible : true

Width : 160

 

Saisir un nombre :

 
Ajouter au milieu de la Label2 un « Edit» (ab dans dans les composants « Standard »), avec les propriétés suivantes:

AutoSize : false

Name : Edit1

Color : clWindow

Text :

Visible : true

 

 

Exécuter pour vérifier.

 

Donner maintenant à Label2 et à Edit1 la propriété Visible = false.

 

Exécuter pour vérifier.

 

Cliquer sur la rubrique « Saisie » du menu et compléter la fonction comme ci-dessous :

 

void __fastcall TForm1::Saisie1Click(TObject *Sender)

{

 Label2->Visible = true;

 Edit1->Visible = true;

}

 

Exécuter pour vérifier.

 

Dans la boîte Edit1, double cliquer sur l’événement OnKeyDown et compléter la fonction comme ci-dessous :

 

void __fastcall TForm1::Edit1KeyDown(TObject *Sender, WORD &Key, TShiftState Shift)

{

float r;

if(Key == VK_RETURN)

{r = (Edit1->Text).ToDouble();}

}

 

Puis, ajouter au début du source App_Sei.cpp la déclaration

#include <vcldstring.h>

 

C++ Builder propose une bibliothèque de manipulations de chaînes de caractères. La classe AnsiString y a été créée, munie des méthodes appropriées.

Edit1->Text est de type AnsiString.

ToDouble est une méthode qui transforme une chaîne de type AnsiString en un nombre réel.

 

Attention, aucune précaution n’a été prise, ici , en cas d’erreur de saisie (ceci sera étudié à la fin du TP).


Si on effectue une erreur de saisie (par exemple en tapant une lettre), il y aura traitement d’une exception par WINDOWS. Concrètement, pour nous, ceci se traduit, pour l’instant, par un « plantage ».

 

L’événement OnKeyDown détecte l’appui sur une touche du clavier. On valide ici la saisie lorsque l'utilisateur appuie sur la touche « ENTREE ». Celle-ci n’est pas prise en compte dans la saisie.

 

Exécuter pour vérifier (avec et sans erreur de saisie).

 

 

5- Traitement et affichage d’un résultat

 

Modifier la fonction Edit1KeyDown comme ci-dessous :

 

void __fastcall TForm1::Edit1KeyDown(TObject *Sender, WORD &Key, TShiftState Shift)

{

float r;

if(Key == VK_RETURN)

{

r = (Edit1->Text).ToDouble();

Affichage1->Enabled = true;

Saisie1->Enabled = false;

}

}

 

Exécuter pour vérifier.

 

Déclarer une variable globale comme ci-dessous :

float resultat ;

 

Puis modifier la fonction Edit1KeyDown comme ci-dessous :

 

void __fastcall TForm1::Edit1KeyDown(TObject *Sender, WORD &Key, TShiftState Shift)

{

float r;

if(Key == VK_RETURN)

{

r = (Edit1->Text).ToDouble();

Affichage1->Enabled = true;

Saisie1->Enabled = false;

resultat = r*2 - 54;

}

}

 

Construire le projet pour vérifier qu’il n’y a pas d’erreur (Menu Projet à Construire).

 

Aller chercher dans la palette standard le composant « ListBox » (boîte liste)

Le poser sur la fenêtre principale, vers la droite, avec les propriétés suivantes :


Visible = false

Color = clYellow

Height = 65

Left = 280

Top = 24

Width = 120

Name : ListBox1

 

Modifier la fonction Saisie1Click comme ci-dessous

 

void __fastcall TForm1::Saisie1Click(TObject *Sender)

{

 Label2->Visible = true;

 Edit1->Visible = true;

 ListBox1->Visible = false;

}

 

Cliquer sur la rubrique « Affichage » du menu. Ecrire la fonction de gestion de l’événement  OnClick comme ci-dessous :

 

void __fastcall TForm1::Affichage1Click(TObject *Sender)

{

AnsiString chaine;

ListBox1->Visible = true;

Edit1->Visible = false;

Label2->Visible = false;

chaine= FloatToStrF(resultat,AnsiString::sffGeneral,7,10); 

ListBox1->Clear();

ListBox1->Items->Add(chaine);

Affichage1->Enabled = false;

Saisie1->Enabled = true;

}

 

La fonction FloatToStrF permet de convertir un nombre réel en une chaîne de caractères. Voir l’aide pour plus d’informations.

 

Exécuter pour vérifier.

 

 

6- Affichage d’une série de valeurs

 

Déclarer une variable globale float tab[3], supprimer la variable resultat.

Modifier les fonctions Affichage1Click  et Edit1KeyDown  comme ci-dessous :

 

void __fastcall TForm1::Affichage1Click(TObject *Sender)

{

int i;

AnsiString chaine;

ListBox1->Visible = true;

Edit1->Visible = false;


Label2->Visible = false;

ListBox1->Clear();

ListBox1->Items->Add("Voici le résultat:");

for(i=0;i<3;i++)

{

chaine= FloatToStrF(tab[i],AnsiString::sffGeneral,7,10);

ListBox1->Items->Add(chaine);

}

Affichage1->Enabled = false;

Saisie1->Enabled = true;

}

 

void __fastcall TForm1::Edit1KeyDown(TObject *Sender, WORD &Key, TShiftState Shift)

{

float r;

if(Key == VK_RETURN)

{

r = (Edit1->Text).ToDouble();

tab[0] = r*2 - 54;

tab[1] = r*3 + 100;

tab[2] = r*2.5 - 8.5;

Saisie1->Enabled = false;

Affichage1->Enabled = true;

}

}

 

Exécuter pour vérifier.

 

 

7- Fichiers

 

Ajouter au menu dans la rubrique « Fichier », une sous-rubrique « Ouvrir » et une sous-rubrique « Enregistrer »

La sous-rubrique « Ouvrir », possède la propriété Enabled = true.

La sous-rubrique « Enregistrer », possède la propriété Enabled = false.

 

 

Modifier les fonctions Affichage1Click  et Edit1KeyDown comme ci-dessous :

 

//

13/09/2009
0 Poster un commentaire

Inscrivez-vous au blog

Soyez prévenu par email des prochaines mises à jour

Rejoignez les 102 autres membres