Algorithmique et programmation en Deust @mrl Fonctions définies Delphi : Menus, Dialogues, Images, Souris
Fonctions rappel : les fonctions de base random, round, … pourquoi en définir de nouvelles comment les utiliser exemple
Exemple : moyenne d’une série de notes type TNotes=array[1..10] of real; var Info,Anglais:TNotes; MoyenneInfo,MoyenneAnglais:real; function Moyenne(Notes:TNotes;Nb:byte):real; var n:byte; Somme:real; begin Somme:=0; for n:=1 to Nb do Somme:=Somme+Notes[n]; Moyenne:=Somme/Nb; end;
Utilisation de la fonction MoyenneInfo:=Moyenne(Info,5); MoyenneAnglais:=Moyenne(Anglais,3);
Définition de fonction Function nomfonction(paramètres):typefonction; déclarations internes; begin instructions end;
Paramètres ils représentent les données de la fonction on les appelle paramètres formels comme dans déclarations de variables nom:type; ou nom1,nom2,...:type; on peut définir plusieurs groupes les types doivent déjà exister
Déclarations internes déclaration de constantes, types et variables, comme déclarations générales ou dans procédures ce sont des noms utilisables uniquement dans les instructions de la fonction si un nom identique est défini en dehors, il est invisible (masqué)
Instructions les mêmes qu’ailleurs : affectation, si, boucles, ... au moins une instruction d’affectation doit donner une valeur à la fonction : nomfonction:=expression;
Utilisation d’une fonction utilisation dans une expression : ...:=...nomfonction(paramètres)... ce sont les paramètres effectifs : les valeurs transmises à la fonction constantes ou variables ou expressions la place importe, le nom n’importe pas, le type doit être le même
Menus Le composant éditeur de menu : Après en avoir déposé un dans la fiche, on double-clique dessus et on obtient : L’éditeur de menu
Menus (2) un double-clic sur un choix dans l’éditeur de menus génère la procédure de réaction à l’évènement OnClick on peut réagir à un clic sur un nom dans la barre de menus sur un choix dans un menu
Exemple de barre de menus Fichier Ouvrir : dialogue de choix de fichier Quitter : pour arrêter l’application Si l’application est constituée d’une seule fiche Close en réaction au clic sur Quitter dans cette fiche suffit.
Dialogue de choix de fichier existant Composant OpenDialog palette Dialogues Un exemple de boîte de dialogue Inspecteur d’objet :
Dialogue de choix de fichier (2) Pour ouvrir une boîte de dialogue : OpenDialog1.Execute si l’utilisateur choisit un fichier puis clique sur Ok, le nom du fichier est dans OpenDialog1.FileName mais s’il clique sur Annuler (ou Cancel) FileName ne contient pas de nom choisi
Dialogue de choix de fichier (3) pour éviter une erreur avec blocage du programme : on teste la valeur booléenne renvoyée par Execute if OpenDialog1.Execute then begin utilisation de OpenDialog1.FileName ... end
Images Composant TImage palette Supplément Propriété Picture pour charger une image grâce à sa méthode LoadFromFile : Image1.Picture.LoadFromFile(nomfichier) le nom du fichier peut être par exemple un nom fixe : ‘c:\dessin.bmp’ le choix dans OpenDialog : OpenDialog1.FileName
Images (2) la propriété Picture possède aussi la méthode SaveToFile qui permet d’enregistrer l’image affichée autres propriétés intéressantes : - AutoSize (booléenne) pour ajuster le composant à la taille de l’image chargée - Stretch (booléenne) pour ajuster l’image chargée à la taille du composant (zoom)
Tableau des couleurs de points Pixels est une variable à 2 indices : Pixels[x,y] donne la couleur du point de coordonnées x et y ce tableau est accessible par la propriété Canvas de tous les objets qui en ont une : fiche, liste, image, grille, imprimante, ... exemple : Image1.Canvas.Pixels[10,20]
Composition de la couleur Pixels[x,y] donne la couleur du point sur 3 octets (24 bits) pour connaître la dose de rouge : fonction GetRValue(couleur) : 1 octet idem pour le vert : GetGValue(couleur) et le bleu : GetBValue(couleur) exemple : GetRValue(Image1.Canvas.Pixels[10,20])
Evènement souris déplacement dans un composant : OnMouseMove comme pour un clic sur un bouton, on peut réagir grâce à une procédure dans les paramètres envoyés on trouve X et Y, les coordonnées de la souris dans le composant (origine 0,0 en haut à droite)