Vous êtes sur la page 1sur 19

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 trs correct de 20 , Student Edition, Borland Delphi 6 chez CampusPress. Lexcellente version Delphi 6 personnelle est gratuite sur le site de Borland ou certains sites de tlchargement. Il suffit de vous enregistrer. Merci Borland.

InitDelphi6.ppt

http://line.berjoan.free.fr

Sommaire Pascal Objet

Constantes Variables Variables initialises Surcharge de procdures Oprateurs Types de donnes Les variants
InitDelphi6.ppt http://line.berjoan.free.fr

Les constantes

Const

Mot cl placer avant la dclaration des


constantes en dbut de programme (globales) ou de procdure et de fonction (locales)

Exemple

e=2.72; Max=10; Msg=Attention erreur;


http://line.berjoan.free.fr

InitDelphi6.ppt

Les variables

Var

Mot cl rserv (mme principe que const) Var i,j : integer; x: double; i:=5;j:=7+i; //i vaut 5 et j vaut 12 x:=sqrt(i+j); // x est la racine de 17

Procedure Exemple;

Begin

End;
InitDelphi6.ppt http://line.berjoan.free.fr

Variables initialises

Remarque

Les fonctions simples peuvent tre utilises dans les dclarations des constantes et des variables initialises. Ord(), chr(), trunc(), round(), hight(), low() i:integer=12; // autoris S:string=Bonjour; // autoris NbOr:double=1,6180339887; //autoris NbOr:double=(1+sqrt(5))/2; // interdit

Var

InitDelphi6.ppt

http://line.berjoan.free.fr

Paramtres par valeur implicite

Le valeurs implicites ne peuvent tre que de type simple

Ordinal, ensemble ou pointeur Procedure truc(s:string;i:integer=10); Truc(Coucou,12); // i prend la valeur 12 Truc(Coucou); // i reste 10 valeur implicite

Entte de la procdure; passage par valeur Deux appels possibles

InitDelphi6.ppt

http://line.berjoan.free.fr

Surcharge des procdures

Overload

Des procdures peuvent avoir le mme nom


et peuvent recevoir des paramtres diffrents.

Exemple :

Procedure Truc(I:byte);overload; Procedure Truc(s:string);overload; Procedure Truc(x:double);overload;


http://line.berjoan.free.fr

InitDelphi6.ppt

OPRATEURS

Aucune nouveaut par rapport au langage Turbo Pascal Rappelons

Inc(entier, valeur) Dec(entier, valeur) Div pour la division entire / pour la division des rels Oprateurs binaires and, not, or, xor,shl, shr
http://line.berjoan.free.fr

InitDelphi6.ppt

Types de donnes

De nombreux types de donnes ont volus depuis les versions 16 bits comme Turbo Pascal ou Delphi 1. Ces volutions ont commences 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 doctets utiliss par un type, utiliser la fonction sizeof()

InitDelphi6.ppt

http://line.berjoan.free.fr

10

Types de donnes (numriques)

Entiers signs

1 octet : ShortInt 2 octets : SmallInt 4 octets : Integer ou Longint 8 octets : Int64 1 octet : Byte 2 octets : Word 4 octets : Cardinal ou LongWord 4 octets : Single 8 octets : Double (Real) 6 octets : Real48 10 octets : Extended
11

Entiers non signs

Flottants

InitDelphi6.ppt

http://line.berjoan.free.fr

Type de donnes (chanes)

Caractre

1 octet : Char (AnsiChar) 2 octets : WideChar (Unicode)

Chane

255 octets max : ShortString Dynamique : AnsiString A zro terminal (AZT) : pChar, PAnsiChar,PWideChar Dynamique sur 2 octets : WideString; AZT

Oprateur de concatnation +
InitDelphi6.ppt http://line.berjoan.free.fr

12

Caractristique de AnsiString

Cest un pointeur vers une chane String est maintenant un alias de AnsiString Il nest plus possible dutiliser loctet 0 pour connatre 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 caractres la chane s, vous pouvez utiliser la fonction SetLength(s,40)
Il en rsulte que le transtypage peut se faire directement avec un pChar par une simple affectation. La correction de longueur (avec le zro) est obtenu avec la fonction RealizeLength(s). Aide de Delphi pour lunit StrUtils Livre Student Edition Borland Delphi 6 chez Campus Press

La chane AnsiString est une chane zro terminal.

Rfrence :

InitDelphi6.ppt

http://line.berjoan.free.fr

13

Caractristiques de WideString

WideString est une chane de type unicode, ce qui signifie que tous les caractres quelle contient sont de type WideCode, crit sur deux octets. Sa rservation est dynamique. Les conversions entre les types WideString et AnsiString sont automatiques par une simple affectation
InitDelphi6.ppt http://line.berjoan.free.fr

14

Caractristiques des chanes AZT


AZT : Chanes zro terminal On peut utiliser le AnsiString (gestion automatique) la place du Pchar (gestion manuelle) LAPI de WIN32 utilise frquemment lAZT Voir dans laide de Dephi, lutilit des fonctions de rservation et de libration de lespace mmoire. Rservation

AllocMen(), GlobalAlloc(), GetMem(), New(), StrAlloc(), StrNew(), VirtualAlloc()

Libration

FreeMem(), GlobalFree(), Dispose(), StrDispose(), VirtualFree()

InitDelphi6.ppt

http://line.berjoan.free.fr

15

Autres types de donnes


Montaire

8 octets : Currency 8 octets : TDateTime 16 octets : Variant, OleVariant, TvarData

Date, heure

Variant
Boolen

1 octet : Boolean, ByteBool 2 octets : WordBool 4 octets : LongBool


http://line.berjoan.free.fr

InitDelphi6.ppt

16

Les variants

Ce type de variable nexiste pas en Turbo Pascal. A utiliser lorsque lon ne connat pas par avance le type de rsultat obtenu. Un variant peut contenir une rfrence de type suivant :

Nb entier ou flottant, chane, boolen, date, heure, montaire, automation OLE Vos propres types Objet De types Pointeur ou Class

Un variant ne peut pas contenir


Delphi gre lui-mme la rservation et la librations des espaces mmoires ncessaires pour les variants. Les variants peuvent tre utiliss dans des expressions algbriques ou chanes de caractres. Delphi gre lui-mme de lopportunit du rsultat. Attention ce que vous allez crire.

InitDelphi6.ppt

http://line.berjoan.free.fr

17

Transtypage dun variant en un autre type de donnes

Procedure pVariant;

Var v:variant;i:integer; s:string;b:boolean;

d:double; Begin

End;

v:=3.14; i:=Integer(v) // donne larrondi commercial, ici 3 s:=String(v)// donne la chane 3.14 b:=boolean(v) // Donne false uniquement si v=0 D:=double(v) // donne la valeur dcimale 3.14
http://line.berjoan.free.fr

InitDelphi6.ppt

18

Utilisation des variants


Tlchargez lexemple crit en Delphi avec tout le code votre disposition. Cet exercice

montre des variables types initialises dans la dclaration. montre des sommes de variants dont vous pouvez choisir le type et la valeur. Il est intressant de voir la diffrence de loprateur + (comme addition et comme concatnation dans la mme expression).

Tlchargement variants.zip

InitDelphi6.ppt

http://line.berjoan.free.fr

19