220 likes | 459 Views
DELPHI 6 Borland. Les bases J.THIOU. Avant de commencer. Voir les bases du Turbo Pascal (par exemple sur le site http://jean.thiou.free.fr . Pour les étudiants, un bon ouvrage, à un prix très correct de 20 €, Student Edition, Borland Delphi 6 chez CampusPress.
E N D
DELPHI 6Borland Les bases J.THIOU
Avant de commencer • Voir les bases du Turbo Pascal (par exemple sur le site http://jean.thiou.free.fr. • Pour les étudiants, un bon ouvrage, à un prix très correct de 20 €, Student Edition, Borland Delphi 6 chez CampusPress. • L’excellente version Delphi 6 personnelle est gratuite sur le site de Borland ou certains sites de téléchargement. Il suffit de vous enregistrer. Merci Borland. http://line.berjoan.free.fr
Sommaire Pascal Objet • Constantes • Variables • Variables initialisées • Surcharge de procédures • Opérateurs • Types de données • Les variants http://line.berjoan.free.fr
Les constantes • Const • Mot clé à placer avant la déclaration des constantes en début de programme (globales) ou de procédure et de fonction (locales) • Exemple • e=2.72; • Max=10; • Msg=‘Attention erreur’; http://line.berjoan.free.fr
Les variables • Var • Mot clé réservé (même principe que const) • Procedure Exemple; • Var • i,j : integer; • x: double; • Begin • i:=5;j:=7+i; //i vaut 5 et j vaut 12 • x:=sqrt(i+j); // x est la racine de 17 • End; http://line.berjoan.free.fr
Variables initialisées • Remarque • Les fonctions simples peuvent être utilisées dans les déclarations des constantes et des variables initialisées. • Ord(), chr(), trunc(), round(), hight(), low() • Var • i:integer=12; // autorisé • S:string=‘Bonjour’; // autorisé • NbOr:double=1,6180339887; //autorisé • NbOr:double=(1+sqrt(5))/2; // interdit http://line.berjoan.free.fr
Paramètres par valeur implicite • Le valeurs implicites ne peuvent être que de type « simple » • Ordinal, ensemble ou pointeur • Entête de la procédure; passage par valeur • Procedure truc(s:string;i:integer=10); • Deux appels possibles • Truc(‘Coucou’,12); // i prend la valeur 12 • Truc(‘Coucou’); // i reste à 10 valeur implicite http://line.berjoan.free.fr
Surcharge des procédures • Overload • Des procédures peuvent avoir le même nom et peuvent recevoir des paramètres différents. • Exemple : • Procedure Truc(I:byte);overload; • Procedure Truc(s:string);overload; • Procedure Truc(x:double);overload; http://line.berjoan.free.fr
OPÉRATEURS • Aucune nouveauté par rapport au langage Turbo Pascal • Rappelons • Inc(entier, valeur) Dec(entier, valeur) • Div pour la division entière • / pour la division des réels • Opérateurs binaires and, not, or, xor,shl, shr http://line.berjoan.free.fr
Types de données • De nombreux types de données ont évolués depuis les versions 16 bits comme Turbo Pascal ou Delphi 1. • Ces évolutions ont commencées avec Delphi 2 et 3, puis se sont poursuivies avec Delphi 4, où elles arrivent à leur forme actuelle. • Afin de si retrouver, dans le nombre d’octets utilisés par un type, utiliser la fonction sizeof() http://line.berjoan.free.fr
Types de données (numériques) • Entiers signés • 1 octet : ShortInt 2 octets : SmallInt • 4 octets : Integer ou Longint • 8 octets : Int64 • Entiers non signés • 1 octet : Byte 2 octets : Word • 4 octets : Cardinal ou LongWord • Flottants • 4 octets : Single 6 octets : Real48 • 8 octets : Double (Real) 10 octets : Extended http://line.berjoan.free.fr
Type de données (chaînes) • Caractère • 1 octet : Char (AnsiChar) • 2 octets : WideChar (Unicode) • Chaîne • 255 octets max : ShortString • Dynamique : AnsiString • A zéro terminal (AZT) : pChar, PAnsiChar,PWideChar • Dynamique sur 2 octets : WideString; • AZT • Opérateur de concaténation + http://line.berjoan.free.fr
Caractéristique de AnsiString • C’est un pointeur vers une chaîne • String est maintenant un alias de AnsiString • Il n’est plus possible d’utiliser l’octet 0 pour connaître la longueur. • Seule la fonction Length() donne la longueur • La fonction SetLength() permet de modifier cette longueur • Exemple • Pour attribuer une longueur initiale de 40 caractères à la chaîne s, vous pouvez utiliser la fonction SetLength(s,40) • La chaîne AnsiString est une chaîne à zéro terminal. • Il en résulte que le transtypage peut se faire directement avec un pChar par une simple affectation. • La correction de longueur (avec le zéro) est obtenu avec la fonction RealizeLength(s). • Référence : • Aide de Delphi pour l’unité StrUtils • Livre Student Edition Borland Delphi 6 chez Campus Press http://line.berjoan.free.fr
Caractéristiques de WideString • WideString est une chaîne de type unicode, ce qui signifie que tous les caractères qu’elle contient sont de type WideCode, écrit sur deux octets. • Sa réservation est dynamique. • Les conversions entre les types WideString et AnsiString sont automatiques par une simple affectation http://line.berjoan.free.fr
Caractéristiques des chaînes AZT • AZT : Chaînes à zéro terminal • On peut utiliser le AnsiString (gestion automatique) à la place du Pchar (gestion manuelle) • L’API de WIN32 utilise fréquemment l’AZT • Voir dans l’aide de Dephi, l’utilité des fonctions de réservation et de libération de l’espace mémoire. • Réservation • AllocMen(), GlobalAlloc(), GetMem(), New(), StrAlloc(), StrNew(), VirtualAlloc() • Libération • FreeMem(), GlobalFree(), Dispose(), StrDispose(), VirtualFree() http://line.berjoan.free.fr
Autres types de données • Monétaire • 8 octets : Currency • Date, heure • 8 octets : TDateTime • Variant • 16 octets : Variant, OleVariant, TvarData • Booléen • 1 octet : Boolean, ByteBool • 2 octets : WordBool • 4 octets : LongBool http://line.berjoan.free.fr
Les variants • Ce type de variable n’existe pas en Turbo Pascal. • A utiliser lorsque l’on ne connaît pas par avance le type de résultat obtenu. • Un variant peut contenir une référence de type suivant : • Nb entier ou flottant, chaîne, booléen, date, heure, monétaire, automation OLE • Un variant ne peut pas contenir • Vos propres types « Objet » • De types Pointeur ou Class • Delphi gère lui-même la réservation et la libérations des espaces mémoires nécessaires pour les variants. • Les variants peuvent être utilisés dans des expressions algébriques ou chaînes de caractères. Delphi gère lui-même de l’opportunité du résultat. Attention à ce que vous allez écrire. http://line.berjoan.free.fr
Transtypage d’un variant en un autre type de données • Procedure pVariant; • Var v:variant;i:integer; s:string;b:boolean; d:double; • Begin • v:=3.14; • i:=Integer(v) // donne l’arrondi commercial, ici 3 • s:=String(v)// donne la chaîne « 3.14 » • b:=boolean(v) // Donne false uniquement si v=0 • D:=double(v) // donne la valeur décimale 3.14 • End; http://line.berjoan.free.fr
Utilisation des variants • Téléchargez l’exemple écrit en Delphi avec tout le code à votre disposition. • Cet exercice • montre des variables typées initialisées dans la déclaration. • montre des sommes de variants dont vous pouvez choisir le type et la valeur. Il est intéressant de voir la différence de l’opérateur + (comme addition et comme concaténation dans la même expression). • Téléchargement variants.zip http://line.berjoan.free.fr