Algorithmique et programmation en Deust @mrl Cours 8 Chaînes de caractères Composants Memo et ListBox Classe de fiche Multifiches
codage des caractères conversions Char byte codage automatique mais si on est curieux : fonctions de conversions ord(caractère) donne le code chr(code) donne le caractère
type String analogue à une structure indicée dont les éléments sont des caractères longueur max dépendant du système (2 Gigaoctets avec Delphi 4 Win32) l’indice est la position du caractère dans la chaîne, comptée à partir de zéro chaîne[NuméroCaractère] cas d’une variable indicée de chaînes : (array[1..20] of string;) chaîne[NuméroChaîne][NuméroCaractère]
Outils de traitement des chaînes fonction Length(chaîne) nb effectif de caractères mémorisés fonction Pos(motif cherché,chaîne) position début motif ou zéro if pos(motif cherché,chaine)>0 veut dire si motif se trouve dans chaîne chaîne1+chaîne2+... : concaténation fonction Copy(source,début,nbcar) : portion
Outils de traitement des chaînes (2) Actions : procédure Delete(source,début,nbcar) : suppression procédure Insert(source,destination,position) : insertion
Composant Memo Propriété Lines (type string) pour entrer du texte dans un éditeur auteur et/ou utilisateur Memo1.Lines[L] : Lième ligne N° première ligne : zéro nb de lignes Memo1.Lines.Count chargement contenu d’un fichier : Memo1.Lines.LoadFromFile(nomfichier) sauvegarde des lignes dans un fichier : Memo1.Lines.SaveToFile(nomfichier)
Composant Memo (2) Propriété Lines (type string) Méthode Add : Memo1.Lines.Add(chaîne) Méthode Delete : Memo1.Lines.Delete(nl) Méthode Insert : Memo1.Lines.Insert(nl,Chaîne) Propriété ReadOnly booléenne true : modifications interdites false : modifications permises Méthode Clear : Memo1.Clear
Composant ListBox Propriété Items ListBox1.Items[L] : Lième élément N° premier élément : zéro nb d’éléments : ListBox1.Items.Count ListBox1.Items.LoadFromFile(nomfichier) ListBox1.Items.SaveToFile(nomfichier)
Composant ListBox (2) Propriété Items Méthode Add : ListBox1.Items.Add(chaîne) Méthode Delete : ListBox1.Items.Delete(L) Méthode Insert : ListBox1.Items.Insert(L,Chaîne)
Composant ListBox (3) Propriété ItemIndex : ListBox1.ItemIndex position de l’élément sélectionné (un clic) le premier : N° zéro Elément sélectionné : ListBox1.Items[ListBox1.ItemIndex] pas de possibilité de modification Méthode Clear : Listbox1.Clear
Composant ListBox (4) IndexOf pour connaître la position d’un élément ListBox1.Items.IndexOf(‘ Zinedine ’) vaut -1 si l’élément n’existe pas dans la liste
Composant ComboBox Idem à ListBox, sauf déroulée sur demande, la propriété Text contient la ligne sélectionnée
Procédures et fonctions définies dans la classe de la fiche dans la section private ou public de la classe : procedure Trace(paramètres); public si on veut pouvoir l’utiliser en dehors de l’unité dans implementation : procedure TForm1.Trace(paramètres); var ... Begin ...
Fiches successives une fiche principale d’autres fiches peuvent être créées dans le même projet pour les faire apparaître : FormX.Show ou FormX.ShowModal pour les fermer : Close pour accéder à la fiche et à ses éléments ajouter le nom de l’unité dans une clause uses
Exemple de gestion multifiches Unit Umain; Interface uses SysUtils,..... , Menus ; ................ Var Fmain:TFMain; Implementation uses Usujet; procedure TFMain.Sujet(Sender: TObject); begin FSujet.Show; end; Unit USujet; ........................ procedure TFSujet.bnOkClick(Sender: TObject); begin Close; end; FSujet FMain
Annonces Les tests (=partiels) Le projet le 9 mai 2007 de 9h00 à 11h00 salle 213 même type d’exercice que pendant les TD sur ordinateur, avec polys et aides en ligne apprendre à les utiliser Le projet