You are on page 1of 51

Cours Delphi de BOUNCEUR Ahcne

Auteur : BOUNCEUR Ahcne

Borland

Delphi

Table des matires


Page

Chapitre 1
Introduction Que ce que Delphi Utilisation du modle objet Que ce quun objet 6 6 6 6

Chapitre 2
Environnement Delphi La fiche Lditeur de code Linspecteur dobjet 8 9 9 10

Chapitre 3
Certaines notions de bases MessageDlg Routines standards et entres Certaines proprits Certaines mthodes Certains vnements Exemple de proprit Exemple dvnement 11 11 13 14 14 15 15 17

Chapitre 4
Comment rpondre aux actions de lutilisateur lexcution OnKeyPress OnKeyDown OnKeyUp OnMouseMove OnMouseUp OnMouseDown Lvnement TShiftState 18 18 18 18 20 20 20 21

Chapitre 5
Certains objets Delhi Panel Button MainMenu PopupMenu PageControl ActionList ImageList Image ToolBar Timer Label
Le ncessaire pour devenir professionnel

22 22 22 23 23 23 24 26 29 31 32 32

Auteur : BOUNCEUR Ahcne

Borland

Delphi

RadioButton & CheckBox RadioGroup ListBox Edit ComboBox Memo & RichEdit StringGrid

33 34 35 36 38 38 39

Chapitre 6
OnDragOver & OnDragDrop 41

Chapitre 7
Objets pour manipuler une Base De Donnes Accs une Base De Donnes (AccesBD) DataSource Table Databse Query Contrle dune Base De Donnes (ControlBD) DBGrid DBNavigator DBText DBEdit DBMemo DBListBox DBComboBox DBLookUpListBox DBLookUpComboBox Quick Report, pour afficher vos tables (QReport) QuickRep QRLabel QRDBText QRExpr QRSysData 43 43 43 43 44 45 45 45 46 47 47 48 48 49 49 50 50 50 51 51 52 52 52 53

Chapitre 8
Comment effectuer une recherche dans une table ?

Le ncessaire pour devenir professionnel

Auteur : BOUNCEUR Ahcne

Borland

Delphi

Chapitre

1
Introduction
Quest-ce que Delphi ?
Delphi est un environnement de programmation visuel orient objet pour le dveloppement rapide dapplications (RAD). En utilisant Delphi, vous pouvez crer des applications Microsoft Windows 95, Windows 98 et Windows NT trs efficaces, avec un minimum de codage manuel. Delphi fournit tous les outils qui vous sont ncessaires pour dvelopper, tester, dboguer et dployer des applications, incluant une importante bibliothque de composants rutilisables, un ensemble doutils de conception, des modles dapplications et de fiches, ainsi que des experts de programmation. Ces outils simplifient le prototypage et rduisent la dure du dveloppement. Remarque : Avant de crer une application en Delphi, il faut dabord crer un nouveau rpertoire dans lequel il faut enregistrer le projet ainsi que tous les fichiers associs ce dernier.

Utilisation du modle objet


La programmation oriente objet (POO) est une extension de la programmation structure qui intensifie la rutilisation du code et lencapsulation de donnes avec des fonctionnalits. Quand vous avez cr un objet (ou, plus prcisment, une classe), vous et dautres programmeurs pouvez lutiliser dans dautres applications ce qui rduit les temps de dveloppement et accrot la productivit.

Quest-ce quun objet ?


Un objet, ou classe, est un type de donnes qui regroupe des donnes et des oprations sur ces donnes. Avant la programmation oriente objet, les donnes et les oprations (les fonctions) constituaient des lments distincts. Vous pouvez comprendre les objets si vous comprenez les enregistrements Pascal Objet. Les enregistrements (analogues aux structures en C) sont constitus de champs qui contiennent des donnes, chaque champ ayant son propre type. Les enregistrements sont un moyen commode de dsigner une collection lments de donnes varis. Les objets sont galement des collections dlments de donnes. Mais les objets, la diffrence des enregistrements, contiennent des procdures et fonctions portant sur leurs donnes. Ces procdures et fonctions sont appeles des mthodes. Les lments de donnes dun objet sont accessibles via des proprits. Les proprits des objets Delphi ont une valeur quil est possible de modifier la conception sans crire de code. Si vous voulez modifier la valeur dune proprit lexcution, il vous suffit dcrire un minimum de code.

Le ncessaire pour devenir professionnel

Auteur : BOUNCEUR Ahcne

Borland

Delphi

La combinaison des donnes et de fonctionnalits dans un seul lment est appele encapsulation. Outre lencapsulation, la programmation oriente objet est caractrise par lhritage et le polymorphisme. Hritage signifie que les objets drivent leurs fonctionnalits dautres objets appels anctres); les objets peuvent modifier leurs comportements hrits. Polymorphisme signifie que diffrents objets qui drivent dun mme anctre grent la mme interface de mthode et de proprit, on dit aussi quils sont interchangeables.

Le ncessaire pour devenir professionnel

Auteur : BOUNCEUR Ahcne

Borland

Delphi

Chapitre

2
Environnement Delphi
La barre de taches Delphi
Voir une unit voir une fiche Basculer Unit/Fiche Nouvelle Fiche Excuter Ajouter un fichier au projet Retirer un fichier du projet Ouvrir un projet Tout enregistrer ( Le projet et les fichiers associs) Enregistrer ( Attention : ceci nenregistre pas le projet) Ouvrir un fichier Nouveau ( Liste de choix : Application, Application console, unit, fiche, etc)

Le ncessaire pour devenir professionnel

Auteur : BOUNCEUR Ahcne

Borland

Delphi

La fiche, Lditeur de code et linspecteur dobjet


La fiche
Ou concepteur de fiche contenant une fiche vierge pour dmarrer la conception de linterface utilisateur de votre application. Une application peut inclure plusieurs fiches.

Lditeur de code
Vous pouvez aussi ajouter directement du code vos fichiers source en utilisant lditeur de code intgr. Lditeur de code est un diteur ASCII complet.

Le ncessaire pour devenir professionnel

Auteur : BOUNCEUR Ahcne

Borland

Delphi

Linspecteur dobjet
Vous pouvez changer la manire dont un composant saffiche et se comporte dans votre application en utilisant linspecteur dobjets. Lorsquun composant est slectionn sur la fiche, ses proprits et ses vnements sont affichs dans linspecteur dobjets.

1 - utiliser cette liste droulante pour slectionner un objet. Si un objet est slectionn, ses proprits seront affiches. 2 - Slectionnez une proprit et changez sa valeur dans la colonne de droite. 3 - Cliquez sur les points de suspension pour ouvrir une bote de dialogue permettant de modifier les proprits dun objet (si la place des points de suspension il ya une flche vers le bas, alors cliquez dessus pour voir les valeurs valides de la proprit) 4 - double-cliquez sur le signe plus pour ouvrir une liste de dtail.

Le ncessaire pour devenir professionnel

Auteur : BOUNCEUR Ahcne

Borland

Delphi

Chapitre

3
Certaines notions de base
Introduction
Pour quitter dfinitivement lapplication (le programme) : Application.Terminate ; Ou: Form1.Close; (si form1 est la fiche principale, sinon, changer form1 par le nom de la fiche principale) Pour rduire une fiche (fentre) : Application.Minimize ;

MessageDlg
Affiche une bote de dialogue de message au centre de l'cran. function MessageDlg(const Msg: string; DlgType: TMsgDlgType; Buttons: TMsgDlgButtons; HelpCtx: Longint): Word; Description : Appelez MessageDlg pour afficher une bote de dialogue de message et grer la rponse de l'utilisateur. La bote de dialogue affiche la valeur du paramtre Msg. Utilisez le paramtre DlgType pour indiquer le type de bote de dialogue. Utilisez le paramtre Boutons pour dterminer quels boutons apparaissent dans le message. Utilisez le paramtre HelpCtx pour spcifier l'ID de contexte de la rubrique d'aide qui doit apparatre quand l'utilisateur clique sur le bouton d'aide ou appuie sur F1 lorsque le dialogue est affich. MessageDlg renvoie la valeur du bouton slectionn par l'utilisateur. Voici les valeurs possibles : mrAbort mrOk mrCancel mrYes mrRetry mrIgnore mrNone mrNo mrAll

Exemple: Cet exemple utilise un bouton sur une fiche. Quand l'utilisateur clique sur le bouton, une bote de message demandant l'utilisateur s'il souhaite quitter l'application apparat. Si l'utilisateur choisit Oui, une autre bote de dialogue apparat pour informer l'utilisateur que l'application est sur le point de se terminer. Quand l'utilisateur choisit OK, l'application se termine.

Le ncessaire pour devenir professionnel

Auteur : BOUNCEUR Ahcne

Borland

Delphi

10

procedure TForm1.Button1Click(Sender: TObject); begin if MessageDlg('Bienvenue dans mon application Pascal Objet. Quitter?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then begin MessageDlg('Fin de l''application Pascal Objet.', mtInformation, [mbOk], 0); Close; end; end;

Le ncessaire pour devenir professionnel

Auteur : BOUNCEUR Ahcne

Borland

Delphi

11

Routines standard et Entres


Beep Break Chr Cos CurrToStr Date DateTimeToStr DateToStr Dec Exit Exp FloatToStr FloatToStrF High Inc Int IntToStr Length Low LowerCase MaxIntValue MaxValue MinIntValue MinValue Now Ord Pos Pred Random Round ShowMessage ShowMessageFmt Sin Sqr Sqrt StrToCurr StrToDate StrToDateTime StrToFloat StrToInt StrToTime StrUpper Succ Sum Time TimeToStr Trunc UpCase UpperCase Gnre un bip standard en utilisant le haut-parleur de lordinateur. Force la sortie dune instruction for, while ou repeat. Renvoie le caractre correspondant une valeur ASCII spcifie. Calcule le cosinus dun angle donn. Convertit une variable montaire en chane. Renvoie la date en cours. Convertit une variable de type TDateTime en chane. Convertit une variable de type TDateTime en chane. Dcrmente une variable scalaire. Sort de la procdure en cours. Calcule lexponentielle dune valeur donne. Convertit une valeur flottante en chane. Convertit une valeur flottante en chane en utilisant le format spcifi. Renvoie la plus grande valeur de ltendue dun intervalle, dun tableau ou dune chane. Incrmente une variable scalaire. Renvoie la partie entire dun nombre rel. Convertit un entier en chane. Renvoie la longueur dune chane ou dun tableau. Renvoie la plus petite valeur de ltendue dun intervalle, dun tableau ou dune chane. Convertit une chane ASCII en minuscules. Renvoie la plus grande valeur signe dans un tableau dentiers. Renvoie la plus grande valeur signe dans un tableau. Renvoie la plus petite valeur signe dans un tableau dentiers. Renvoie la plus petite valeur signe dans un tableau. Renvoie lheure et la date en cours. Renvoie le rang dune expression de type scalaire. Renvoie lindice dans une chane du premier caractre dune sous-chane spcifie. Renvoie le prdcesseur dune valeur scalaire. Gnre des valeurs alatoires dans lintervalle spcifi. Renvoie la valeur dun rel arrondie lentier le plus proche. Affiche une bote message avec une chane non formate et le bouton OK. Affiche une bote message avec une chane formate et le bouton OK. Renvoie le sinus de langle spcifi en radians. Renvoie le carr dun nombre. Renvoie la racine carre dun nombre. Convertit une chane en valeur montaire. Convertit une chane en valeur date (TDateTime). Convertit une chane en valeur TDateTime. Convertit une chane en valeur virgule flottante. Convertit une chane en valeur entire. Convertit une chane au format heure (TDateTime). Renvoie une chane en majuscules. Renvoie le successeur dune valeur scalaire. Renvoie la somme des lments dun tableau. Renvoie lheure en cours. Convertit une variable de type TDateTime en chane. Tronque un nombre rel en un entier. Convertit un caractre en majuscules. Renvoie une chane en majuscules.

Le ncessaire pour devenir professionnel

Auteur : BOUNCEUR Ahcne

Borland

Delphi

12

Certaines Proprits
Alignment

Contrle le positionnement du texte dans le libell. Alignment permet d'indiquer comment le texte du libell est align dans le ClientRect du contrle libell. L'effet de la proprit Alignment est plus vident si la proprit WordWrap est True et si le libell inclut plusieurs lignes de texte. Caption de type string, contient la chane affiche dans le volet de contrles (objets) Color type enum, Contient la couleur de lobjet BorderStyle type enum, Dtermine le style de la bordure dun objet. BorderWidth Spcifie la largeur de la bordure du contrle. Font Contient les paramtres du texte (soit Caption, ou Text) Visible type boolen, contient, TRUE : Pour rendre lobjet visible, et FALSE sinon Enabled type boolen, contient, TRUE : Pour rendre le contrle de lobjet accessible, et FALSE sinon Hint Type String, contient la chane de texte apparaissant lorsque l'utilisateur dplace la souris au-dessus du contrle (lobjet). ShowHint type boolen, contient True pour activer Hint, False sinon. TabOrder type entier, indique la position du contrle dans l'ordre de tabulation de son parent. TabOrder n'a de sens que si la proprit TabStop a la valeur True et si le contrle a un parent (la proprit TabOrder d'une fiche n'a pas de sens sauf si la fiche est l'enfant d'une autre fiche). Un contrle dont la proprit TabOrder a la valeur -1 se trouve hors de l'ordre de tabulation et ne peut tre atteint en utilisant la touche Tab. Pour retirer un contrle ayant un parent de l'ordre de tabulation initialisez sa proprit TabStop False. PopupMenu Identifie le menu surgissant associ au contrle. Heigh type entier, dtermine la hauteur du contrle (objet) en pixels Left type entier, dtermine la coordonne horizontale, exprime en pixels relativement la fiche, du bord gauche d'un composant. Top type entier, dtermine la coordonne verticale, exprime en pixels relativement la fiche, du bord gauche d'un composant. Width type entier, dtermine la largeur du contrle (objet) en pixels Cursor Spcifie l'image utilise pour reprsenter le pointeur de la souris lorsqu'il passe au-dessus de la rgion couverte par le contrle. Ctl3D Dtermine si un contrle a un aspect visuel 2D (deux dimensions) ou 3D (trois dimensions). Name Contient le nom du composant tel qu'il est dsign dans le code.

Certaines Mthodes
Close Show ShowModal Hide pour une fiche principale, Close permet de quitter le programme, sinon, il permet de fermer uniquement la fentre Rend un contrle (objet) visible. ShowModal pour les fentres permet de rendre la fentre visible, et de dsactiver la premire Rend un contrle invisible

Le ncessaire pour devenir professionnel

Auteur : BOUNCEUR Ahcne

Borland

Delphi

13

Certains vnements
OnActivate OnClick OnDblClick OnCreate OnShow OnHide OnEnter OnExit Se produit quand une application devient active. Se produit quand l'utilisateur clique sur le contrle. Se produit quand l'utilisateur double clique sur le contrle. Se produit la cration de la fiche. Se produit quand la fiche est affiche (c'est--dire quand la proprit Visible de la fiche prend la valeur True). Se produit quand la fiche est cache (c'est--dire quand la proprit Visible de la fiche prend la valeur False). Se produit quand un contrle reoit la focalisation. Se produit quand la focalisation passe du contrle un autre contrle.

Exemple de Proprit
La proprit Align
type TAlignSet = set of TAlign; type TAlign = (alNone, alTop, alBottom, alLeft, alRight, alClient); TAlignSet est un ensemble de valeurs TAlign. TAlign spcifie comment un contrle est plac en fonction de son parent. Voici ses valeurs possibles : Valeur AlNone alTop Signification Le contrle reste l'emplacement o il a t mis. Valeur par dfaut. Le contrle se place en haut de son parent et prend toute la largeur de son parent. Sa hauteur n'est pas modifie. alBottom Le contrle se place en bas de son parent et prend toute la largeur de son parent. Sa hauteur n'est pas modifie. alLeft Le contrle se place sur le bord gauche de son parent et prend toute la hauteur de son parent. Sa largeur n'est pas modifie. alRight Le contrle se place sur le bord droit de son parent et prend toute la hauteur de son parent. Sa largeur n'est pas modifie. alClient Le contrle remplit la zone client de son parent. Si un autre contrle occupe dj une partie de cette zonne, le contrle nouveau se redimensionne pour prendre le reste de la zone.

Le ncessaire pour devenir professionnel

Auteur : BOUNCEUR Ahcne

Borland

Delphi

14

La proprit Position
Reprsente la taille et la position de la fiche. Utilisez la proprit Position pour connatre ou dfinir la taille et l'emplacement d'une fiche. Position peut prendre l'une des valeurs suivantes : poDesigned, poDefault, poDefaultPosOnly, poDefaultSizeOnly, poScreenCenter, poDesktopCenter, poMainFormCenter, poOwnerFormCenter Valeur
PoDesigned poDefault

Signification La fiche apparat l'cran la position et avec les dimensions qu'elle avait la conception. La fiche apparat la position et avec les dimensions dtermines par Windows. A chaque excution de l'application, la fiche est lgrement dplace en bas droite. Le bord droit de la fiche est toujours proximit du bord de l'cran, et le bord infrieur de la fiche est toujours proximit du bas de l'cran indpendamment de la rsolution de l'cran.

La fiche apparat avec la taille utilise la conception, mais Windows choisit sa position l'cran. A chaque excution de l'application, la fiche est lgrement dplace en bas droite. Quand la fiche ne peut plus se dplacer vers le bas et la droite tout en conservant sa taille et en tant affiche entirement, la fiche apparat dans l'angle suprieur gauche de l'cran. poDefaultSizeOnly La fiche apparat la position utilise la conception, mais Windows choisit sa taille. Le bord droit de la fiche est toujours proximit du bord de l'cran, et le bord infrieur de la fiche est toujours proximit du bas de l'cran indpendamment de la rsolution de l'cran.
poDefaultPosOnly

La fiche conserve les dimensions dfinies la conception, mais est positionne au centre de l'cran. Dans les applications multi-cran, la fiche peut tre dplace de cette position centrale afin de tenir compltement sur un cran, comme spcifi par la proprit DefaultMonitor. poDesktopCenter La fiche conserve la taille dfinie la conception mais elle est place au centre de l'cran. Il n'y a pas d'ajustements pour les applications multi-cran. poMainFormCenter La fiche conserve la taille que vous lui aviez donn la conception, mais est place dans le centre de la fiche principale de l'application. Aucun ajustement n'est ralis pour applications multi-moniteurs. Cette position ne doit tre utilis qu'avec des fiches secondaires. Si elle est dfinie pour une fiche principale, elle agit comme poScreenCenter.
poScreenCenter poOwnerFormCenter La fiche conserve la taille que vous lui aviez donn la conception,

mais est place dans le centre de la fiche spcifie par la proprit Owner. Si la proprit Owner ne spcifie pas de fiche, cette position agit comme poMainFormCenter.

Le ncessaire pour devenir professionnel

Auteur : BOUNCEUR Ahcne

Borland

Delphi

15

Exemple dvnement
Lvnement OnClose
Se produit quand la fiche se ferme. type TCloseAction = (caNone, caHide, caFree, caMinimize); TCloseEvent = procedure(Sender: TObject; var Action: TCloseAction) of object; Utilisez l'vnement OnClose pour effectuer des actions particulires quand la fiche se ferme. L'vnement OnClose spcifie le gestionnaire d'vnement appeler quand une fiche va tre ferme. Le gestionnaire spcifi par OnClose peut, par exemple, s'assurer que tous les champs d'une fiche de saisie ont un contenu correct avant d'autoriser la fermeture de la fiche. Une fiche est ferme par la mthode Close ou si l'utilisateur choisit la commande Fermeture dans le menu systme de la fiche. Le type TCloseEvent pointe sur une mthode qui gre la fermeture d'une fiche. La valeur du paramtre Action dtermine si la fiche se ferme effectivement. Les valeurs possibles de Action sont : Signification La fiche n'est pas autorise se fermer, il ne se passe rien. La fiche n'est pas ferme, juste cache. L'application peut toujours accder la fiche. CaFree La fiche est ferme et toute la mmoire alloue la fiche est libre. caMinimize La fiche est rduite, pas ferme. C'est l'action par dfaut pour les fiches enfant MDI. Si une fiche est un enfant MDI alors que sa proprit BorderIcons a la valeur biMinimize, l'action par dfaut est caMinimize. Si une fiche enfant MDI n'a pas ce paramtre, l'action par dfaut est caNone, c'est--dire que rien ne se produit quand l'utilisateur tente de fermer la fiche. Si une fiche est une fiche enfant SDI, l'action par dfaut est caHide. Valeur caNone CaHide

Pour fermer une fiche et la librer dans un vnement OnClose, affectez la valeur caFree Action.
Exemple : Cet exemple affiche une bote message quand l'utilisateur tente de fermer la fiche. Si l'utilisateur clique sur le bouton Oui, la fiche se ferme sinon elle reste ouverte. procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin if MessageDlg('Fermer application ?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then Action := caFree else Action := caNone; end;

Le ncessaire pour devenir professionnel

Auteur : BOUNCEUR Ahcne

Borland

Delphi

16

Chapitre

4
Comment rpondre aux actions de lutilisateur lexcution
Les actions lances lorsquun utilisateur appuie sur une touche ou une combinaison de touches du clavier sont :

OnKeyPress
Se produit quand un utilisateur appuie sur une touche alphanumrique. Les touches n'ayant pas d'quivalent ASCII (Maj ou F1, par exemple) ne gnrent pas d'vnement OnKeyPress Exemple : Ce gestionnaire d'vnement affiche une bote de dialogue spcifiant la touche qui a t appuye : procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char); begin if Key = k then ShowMessage(oui) end;

OnKeyDown
Se produit quand l'utilisateur appuie sur une touche alors que le contrle dtient la focalisation.

OnKeyUp
Se produit quand l'utilisateur relche une touche enfonce Exemple : Le code suivant arrte un travail d'impression lorsque l'utilisateur appuie sur Echap. Remarquez que vous pourriez initialiser KeyPreview True pour vous assurer que le gestionnaire d'vnement OnKeyDown de Form1 est appel.

Le ncessaire pour devenir professionnel

Auteur : BOUNCEUR Ahcne

Borland

Delphi

17

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if (Key = VK_ESCAPE) then then ShowMessage(oui) end; TShiftState indique l'tat des touches Alt, Ctrl, Maj et des boutons de la souris. Le type TShiftState est utilis par les gestionnaires du clavier et de la souris pour dterminer l'tat des touches Alt, Ctrl et Maj ainsi que l'tat des boutons de la souris au moment o l'vnement se produit. Consulter le chapitre suivant pour voir lensemble des indicateurs et leur signification. Key contient :
VK_LBUTTON VK_RBUTTON VK_MBUTTON VK_RETURN VK_CONTROL VK_PAUSE VK_SPACE VK_NEXT VK_HOME VK_UP VK_DOWN VK_INSERT VK_HELP VK_MULTIPLY VK_SEPARATOR VK_DECIMAL
VK_F1..VK_F12

VK_SCROLL

bouton Gauche Souris bouton Droite Souris bouton Central Souris Entre Touche de contrle CTRL Pause Barre d'espacement Page Bas Dbut Flche haut Flche bas Insrer Aide Touche pav numrique * Touche [ Entre ] . (Point dcimal) Touches de fonctionF1 F12 Verrouillage scrolling

VK_CANCEL VK_BACK VK_TAB VK_SHIFT VK_MENU VK_ESCAPE VK_PRIOR VK_END VK_LEFT VK_RIGHT VK_SNAPSHOT VK_DELETE VK_NUMPAD0..VK_NUMPAD9 VK_ADD VK_SUBTRACT VK_DIVIDE VK_NUMLOCK VK_CAPITAL Tableau1

Arrt Exec. Programme Retour Arrire Tabulation Touche de contrle MAJ Touche de contrle ALT Echappemsnt Page Haut Fin Flche gauche Flche droite Impression d'cran Supprimer
Touche pav numrique 0 9

Touche pav numrique + Touche pav numrique Touche pav numrique /


Verrouillage pav numrique

Verrouillage majuscules

Remarque : Le Key dans OnKeyPress et celui dans OnKeyDown/OnKeyUp nest pas de mme type. Le premier est de type char (caractre) et lautre de type Word (voir tableau 1)

Le ncessaire pour devenir professionnel

Auteur : BOUNCEUR Ahcne

Borland

Delphi

18

Les actions lances lorsquun utilisateur clique sur un bouton de la souris sont :

OnMouseMove
Se produit quand l'utilisateur dplace le pointeur de la souris au-dessus d'un contrle. type TMouseMoveEvent = procedure(Sender: TObject; Shift: TShiftState; X, Y: Integer) of object; Utilisez le gestionnaire d'vnement OnMouseMove pour rpondre lorsque le pointeur de la souris se dplace aprs que le contrle ait captur la souris. Utilisez le paramtre Shift du gestionnaire d'vnement OnMouseMove pour dterminer l'tat des touches mortes et des boutons de la souris. Les touches mortes sont les touches Maj, Ctrl et Alt ou des combinaisons de touches mortes et des boutons de la souris. X et Y indiquent les coordonnes, exprimes en pixels, du pointeur de la souris dans la zone client de Sender. Exemple : procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin Label1.Caption : = IntToStr(x) ; Label2.Caption : = IntToStr(y) ; end ;

OnMouseUp
Se produit lorsque l'utilisateur relche un bouton de la souris qui a t enfonc alors que le pointeur de la souris se trouvait au-dessus d'un composant.

OnMouseDown
Se produit quand un utilisateur appuie sur un bouton de la souris alors que le pointeur de la souris est au-dessus d'un contrle. type TMouseEvent = procedure (Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer) of object; TMouseButton dfinit les constantes de bouton de la souris utilises par les gestionnaires d'vnements. type TMouseButton = ( mbLeft , mbRight , mbMiddle ); Le type TMouseButton dfinit les constantes de bouton de la souris utilises par les gestionnaires d'vnements de la souris pour connatre le bouton l'origine de l'vnement. Le type TShiftState est utilis par les gestionnaires du clavier et de la souris pour dterminer l'tat des touches Alt, Ctrl et Maj ainsi que l'tat des boutons de la souris au moment o l'vnement se produit. Voici un ensemble d'indicateurs et leur signification :

Le ncessaire pour devenir professionnel

Auteur : BOUNCEUR Ahcne

Borland

Delphi

19

Le type TshiftState
Valeur ssShift ssAlt ssCtrl SsLeft ssRight ssMiddle ssDouble Signification La touche Maj est enfonce. La touche Alt est enfonce. La touche Ctrl est enfonce. Le bouton gauche de la souris est enfonc. Le bouton droit de la souris est enfonc. Le bouton central de la souris est enfonc. On a double-cliqu sur la souris.

Exemple : procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin if button=mbright then showmessage('oui') end;

Le ncessaire pour devenir professionnel

Auteur : BOUNCEUR Ahcne

Borland

Delphi

20

Chapitre

5
Certains objets Delphi
Panel
Utilisez TPanel pour placer un volet vide dans une fiche. Les volets disposent de proprits permettant d'entourer le contrle d'une bordure biseaute, ainsi que des mthodes facilitant la gestion du positionnement des contrles enfant incorpors dans le volet. Proprt : BevelInner BevelOuter BevelWidth

Dtermine le style du biseau interne d'un volet. Dtermine le style du biseau externe d'un volet. Spcifie la distance, exprime en pixels, qui spare les biseaux interne et externe. Voir BorderStyle, BorderWidth dans le chapitre Certaines Proprits

Button
Utilisez TButton pour placer un bouton poussoir Windows standard dans une fiche. TButton introduit plusieurs proprits permettant de contrler son comportement dans la dfinition d'une boite de dialogue. Les utilisateurs choisissent des contrles bouton pour effectuer une action. Pour utiliser un bouton affichant un bitmap au lieu d'un texte, utiliser TBitBtn. Pour utiliser un bouton pouvant rester en position enfonce, utilisez TSpeedButton. Voir : La proprit Cursor, et lvnement OnClick dans le chapitre Certaines Proprits et Certains vnements. Remarque : Lvnement OnClick pour un bouton est trs utilis, pour accder directement la procdure sans passer par linspecteur dobjet, double cliquer sur lobjet bouton qui est sur la fiche.

Le ncessaire pour devenir professionnel

Auteur : BOUNCEUR Ahcne

Borland

Delphi

21

MainMenu
Utilisez TMainMenu pour placer un menu principal dans une fiche. Pour commencer la conception d'un menu, ajoutez un composant menu principal votre fiche, puis double-cliquez sur le composant.

PopupMenu
Utilisez TPopupMenu pour dfinir le menu surgissant qui apparat quand l'utilisateur clique sur un contrle avec le bouton droit de la souris. Pour qu'un menu surgissant soit disponible, affectez l'objet TPopupMenu la proprit PopupMenu du contrle. La conceptions dun PopupMenu se fait xactement comme celle dun MainMenu.

PageControl
Utilisez TPageControl pour crer une bote de dialogue multipage ou un classeur onglets. TPageControl affiche plusieurs pages superposes qui sont des objets TTabSheet. L'utilisateur slectionne une page en cliquant sur l'onglet de la page qui apparat en haut du contrle. A la conception, pour ajouter une nouvelle page un objet TPageControl, cliquez avec le bouton droit de la souris dans l'objet TPageControl et choisissez Nouvelle page.
ActivePage

Spcifie la page affiche dans le contrle pages.

Le ncessaire pour devenir professionnel

Auteur : BOUNCEUR Ahcne

Borland

Delphi

22

MultiLine Style

Dtermine si les onglets peuvent apparatre sur plusieurs lignes. Spcifie le style du contrle onglets. Valeur TsTabs tsButtons tsFlatButtons Signification Onglets standard Onglets boutons Onglets boutons plats

TabPosition Dtermine si les onglets apparaissent en haut ,en bas, gouche, ou TabWidth

droite. Indique la largeur, exprime en pixels, des onglets d'un contrle onglets.

TabSheet : cest une page individuelle d'un objet TPageControl. Pour donner un titre pour une page (TabSheet ) dans son onglet, utiliser la proprit Caption

ActionList
TActionList implmente le comportement gnrique introduit dans CustomActionList, mais n'introduit aucun comportement nouveau. TactionList publie quelques membres hrits de TCustomActionList. Pour centraliser la rponse des commandes utilisateur (actions), utilisez des listes d'actions, conjointement avec des actions et des liaisons d'actions. Les composants des listes d'actions sont l'interface utilisateur permettant de travailler avec des actions. Ajoutez des composants de listes d'actions votre fiche ou votre module de donnes partir de la page standard de la palette des composants. Pour afficher l'diteur de liste d'actions partir duquel vous pouvez ajouter, supprimer et rorganiser les actions, double-cliquez sur la liste d'actions. Pour crer des actions standards : 1Aouter un composant Imagelist 2Modifier la proprit Images du composant ActionList : donner le nom du composant ImageList ajout, ImageList1. 3Double cliquez sur lobjet ActionList :

Le ncessaire pour devenir professionnel

Auteur : BOUNCEUR Ahcne

Borland

Delphi

23

4-

Dans la partie Actions ( droite), cliquez sur le bouton droit de la souris :

4-

Cliquez maintenant sur Nouvelle action standard

Le ncessaire pour devenir professionnel

Auteur : BOUNCEUR Ahcne

Borland

Delphi

24

5-

Choisissez les actions voulues, puis cliquez sur OK.

ImageList
Remarque : Si vous utilisez un objet ActionList, les images de ImageList son ajoutes automatiquement, sinon vous pouvez ajouter vous mme des images de votre choix. Les listes d'images sont utilises pour grer de manire efficace de grands nombres d'icnes ou de bitmaps. Toutes les images d'une liste d'images sont contenues dans un seul grand bitmap au format de priphrique cran. Une liste d'images peut galement contenir un bitmap monochrome contenant des masques utiliser pour dessiner des images en transparence (le style icne). Une liste d'images peut contenir de nombreuses images de mme taille et permet d'accder aux images via un indice dans l'intervalle 0 n - 1. La liste d'images dispose de mthodes pour faciliter le stockage, la lecture et le dessin des images stockes. Pour ajouter des images une liste d'images lors de la conception, cliquez sur le bouton droit et choisissez Editeur de liste d'images.

Le ncessaire pour devenir professionnel

Auteur : BOUNCEUR Ahcne

Borland

Delphi

25

Lediteur ImageList :

En mode conception, vous utilisez l'diteur de liste d'images pour ajouter des bitmaps et des icnes un composant TImageList. Lorsque vous travaillez dans l'diteur de liste d'images, vous pouvez cliquer sur Appliquer pour enregistrer votre travail sans quitter l'diteur, ou cliquer sur OK pour enregistrer vos modifications et quitter le dialogue. L'utilisation du bouton Appliquer est particulirement intressante car, une fois que vous avez quitt le dialogue, vous ne pouvez plus modifier les images existantes. Pour afficher l'diteur de liste d'images : Slectionnez l'objet TImageList et double-cliquez sur le composant ou cliquez avec le bouton droit et slectionnez Editeur ImageList. Image slectionne Ce contrle affiche l'image slectionne. Vous pouvez changer cette image en cliquant sur une autre image de la liste Images qui est au-dessous. Quand une image est slectionne, vous pouvez la supprimer de la liste des images. Si l'image n'a pas t ajoute la liste des images avant la session en cours de l'diteur, vous pouvez utiliser les autres contrles pour modifier ses proprits. Cependant, une fois que l'diteur de liste d'images est ferm, ces proprits sont immuables et les contrles de l'image slectionne sont estomps si l'diteur de liste d'images est rouvert et cette image slectionne nouveau. Couleur transparente Utilisez la liste droulante Couleur transparente pour spcifier la couleur utilise pour crer le masque servant dessiner l'image avec transparence. La couleur transparente par dfaut est la couleur du pixel du coin infrieur gauche sur le bitmap. Vous pouvez aussi changer la couleur transparente en cliquant directement sur un pixel dans l'image slectionne. Quand une image a une couleur transparente, tous les pixels de l'image ayant cette couleur ne s'affichent pas dans cette couleur, mais sont au contraire transparents et laissent voir ce qui est derrire l'image.

Le ncessaire pour devenir professionnel

Auteur : BOUNCEUR Ahcne

Borland

Delphi

26

Pour les images icne, la couleur transparente est mise clNone (les icnes sont dj masques). Couleur remplissage Utilisez la liste droulante Couleur remplissage pour spcifier la couleur utilise ajoute autour de l'image slectionne si elle est plus petite que les dimensions indiques par les proprits Height et Width du contrle liste d'images. Ce contrle est estomp si l'image slectionne remplit entirement les dimensions spcifies par la liste d'images (c'est--dire si elle est au moins aussi haute et large que les valeurs des proprits Height et Width). Ce contrle est galement estomp pour les images icne, car ces dernires jouent le rle de masques et leur contour est transparent. Options Utilisez les boutons radio Options pour indiquer comment la liste d'images affichera l'image slectionne si elle ne correspond pas exactement aux dimensions spcifies par les proprits Height et Width de la liste d'images. Ces boutons sont dsactivs pour les icnes.) Option Rogner Description Affiche une partie de l'image en partant du coin suprieur gauche, et en tendant la largeur et la hauteur de la liste d'images vers le coin infrieur droit. Provoque l'tirement de toute l'image afin qu'elle tienne en largeur et en hauteur dans la liste d'images. Centre l'image sur la largeur et la hauteur de la liste d'images. Si la largeur ou la hauteur de l'image est suprieure la largeur ou la hauteur de la liste d'images, l'image risque d'tre rogne.

Ajuster Centrer

Images Affiche une prvisualisation des images contenues dans la liste d'images. Contient des contrles permettant d'ajouter ou de supprimer des images dans la liste. Chaque image est affiche dans une zone 24x24 ; il est ainsi possible de visualiser plusieurs images la fois. Sous chaque image, une lgende indique la position de l'image dans la liste (en partant du numro zro). Il est possible de modifier la lgende de l'image afin de changer sa position dans la liste. Vous pouvez aussi faire glisser l'image sa nouvelle position. Ajouter Affiche la bote de dialogue Ajouter des images. Elle vous permet de slectionner un ou plusieurs bitmaps et icnes ajouter dans la liste d'images. Les images sont ensuite affiches en surbrillance dans la liste et leur lgende est numrote en fonction de leur position dans la liste. Si un bitmap dpasse la largeur ou la hauteur de la liste d'image, un message vous demande si vous souhaitez que le bitmap soit divis en plusieurs images. Ceci est particulirement utile pour les bitmaps de la barre d'outils qui sont souvent composs de plusieurs petites images affiches dans un ordre prcis et stockes sous forme d'un bitmap plus grand. Supprimer Supprime de la liste d'images les images slectionnes. Les images restantes sont repositionnes et renumrotes en partant de zro. Affiche la bote de dialogue Ajouter des images. Elle vous permet de slectionner un ou plusieurs bitmaps et icnes ajouter dans la liste d'images. Les images sont

Le ncessaire pour devenir professionnel

Auteur : BOUNCEUR Ahcne

Borland

Delphi

27

ensuite affiches en surbrillance dans la liste et leur lgende est numrote en fonction de leur position dans la liste. Si un bitmap dpasse la largeur ou la hauteur de la liste d'image, un message vous demande si vous souhaitez que le bitmap soit divis en plusieurs images. Ceci est particulirement utile pour les bitmaps de la barre d'outils qui sont souvent composs de plusieurs petites images affiches dans un ordre prcis et stockes sous forme d'un bitmap plus grand. Supprimer Supprime de la liste d'images les images slectionnes. Les images restantes sont repositionnes et renumrotes en partant de zro. Exporter Vous permet d'enregistrer dans un fichier l'image slectionne. Ce fichier contient le bitmap tel quel, avec les modifications (rognage ou tirement) effectues.

Image
Utilisez TImage pour afficher une image graphique dans une fiche. Utilisez un objet TPicture pour spcifier l'objet bitmap, icne, mtafichier ou autre qui est affich par TImage. TImage introduit diverses proprits permettant de dterminer comment l'image est affiche l'intrieur de l'objet TImage. Pour afficher une image dans un composant Image : 1Double cliquez sur le composant Image qui se trouve dans la fiche :

2-

Cliquez sur le bouton Charger

Le ncessaire pour devenir professionnel

Auteur : BOUNCEUR Ahcne

Borland

Delphi

28

3-

Choisissez une image qui se trouve dans votre disque dr.

4-

Si limage est grande, et quelle napparat pas compltement dans votre composant Image: Modifier la proprit Stretch True, si vous volez donner des dimensions de votre choix.

Le ncessaire pour devenir professionnel

Auteur : BOUNCEUR Ahcne

Borland

Delphi

29

5-

sinon, modifier la proprit AutoSize true, si vous voulez garder les dimensions relles de limage.

Les proprts : AutoSize Spcifie si le contrle se redimensionne automatiquement pour s'adapter son contenu. Center Indique si l'image est centre dans le contrle image. Stretch Indique si l'image doit tre modifie afin qu'elle rentre exactement dans les limites du contrle image.

ToolBar

TToolBar est un conteneur pour les boutons d'outils (TToolButton). Il offre un moyen simple d'organiser et de grer des contrles visuels. Tous les boutons d'outils d'une barre d'outils conservent une largeur et une hauteur uniformes. Une barre d'outils peut contenir d'autres contrles. Ces contrles (maintenus en place par des boutons d'outils invisibles) conservent une hauteur uniforme. Les contrles peuvent passer automatiquement la ligne suivante s'ils ne tiennent pas horizontalement sur la barre d'outils. La proprit Flat permet de faire apparatre l'arrire-plan derrire la barre d'outils et d'affecter des bordures apparentes aux boutons d'outils. Des espaces et des sparateurs (qui sont en fait des boutons d'outils configurs spcialement) peuvent grouper les contrles sur la barre d'outils la fois visuellement et fonctionnellement.

Le ncessaire pour devenir professionnel

Auteur : BOUNCEUR Ahcne

Borland

Delphi

30

Habituellement, les boutons d'outils correspondent aux lments de menus de l'application et ils permettent l'utilisateur d'accder d'une manire plus directe aux commandes de l'application. Les proprits : Flat Rend la barre d'outils transparente et limine les bordures pour les boutons d'outils. Images Enumre les images pouvant apparatre sur des boutons d'outils.

Timer
TTimer est utilis pour simplifier l'appel des fonctions SetTimer et KillTimer de l'API Windows et le traitement des messages WM_TIMER. Utilisez un composant timer pour chaque timer de l'application. Les proprits et vnements du composant timer affectent le timer en spcifiant des informations sur l'vnement timer (parmi ces informations, l'intervalle du timer qui correspond au paramtre de la fonction SetTimer de l'API Windows). L'excution du timer se produit rellement au travers de son vnement OnTimer. Les proprits : Enabled Dtermine si le timer rpond aux vnements timer. Interval Dtermine l'intervalle de temps, exprim en millisecondes, s'coulant avant que le composant timer gnre un autre vnement OnTimer.

Label
TLabel est un contrle non-fentr qui affiche du texte dans une fiche. Ce texte peut tre utilis pour libeller un autre contrle et peut attribuer la focalisation ce contrle quand l'utilisateur saisit un raccourci clavier. Proprits : AutoSize type boolen: AutoSize permet de faire en sorte que le libell ajuste sa taille automatiquement afin que la zone client s'adapte la hauteur et la largeur du texte. Quand AutoSize est False, le libell a une taille fixe. Quand AutoSize est True, la taille du libell est rajuste quand son texte change. La taille du libell est aussi rajuste quand la proprit Font change. Quand WordWrap est True, la largeur du libell est fixe. Si AutoSize est aussi True, les changements apports au texte provoquent un changement de hauteur du

Le ncessaire pour devenir professionnel

Auteur : BOUNCEUR Ahcne

Borland

Delphi

31

libell. Quand AutoSize est True alors que WordWrap est False, la hauteur du libell est dtermine par la fonte et les changements apports au texte provoquent un changement de largeur du libell. FocusControl Affectez FocusControl le contrle fentr destin recevoir la focalisation quand l'utilisateur appuie sur la touche raccourci spcifie par le libell. Pour spcifier une touche raccourci, faites prcder un caractre du texte du libell d'un "et" commercial (&) et initialisez la proprit ShowAccelChar True. Transparent type boolen: Initialisez Transparent True pour que le libell n'empche pas de voir d'autres contrles sur la fiche. Si, par exemple, le libell est utilis pour ajouter du texte un graphique, vous pouvez initialiser Transparent True pour que le libell ne soit pas spar de l'objet graphique. L'criture d'un texte avec un arrire-plan transparent est plus lente que lorsque Transparent est False. Si l'image place sous le libell n'est pas trop complexe, vous pouvez amliorer les performances en choisissant comme couleur d'arrire-plan pour le libell une couleur correspondant l'objet situ en dessous et en initialisant Transparent False. WordWrap type boolen: Initialisez WordWrap True pour permettre au libell d'afficher plusieurs lignes de texte. Quand WordWrap est True, tout texte trop long pour la largeur du contrle libell passe la ligne suivante au niveau de la marge droite et continue sur les lignes suivantes. Initialisez WordWrap False pour limiter le libell une seule ligne. Quand WordWrap est False, tout texte trop long pour le libell est tronqu.

RadioButton &

CheckBox

RadioButton Utilisez TRadioButton pour ajouter un bouton radio une fiche. Les boutons radio proposent l'utilisateur un ensemble d'options mutuellement exclusives, c'est--dire qu'un seul bouton radio d'un groupe peut tre slectionn la fois un moment donn. Quand l'utilisateur slectionne un bouton radio, le bouton radio prcdemment slectionn devient dslectionn. Les boutons radio sont frquemment regroups dans une bote groupe (TGroupBox). Commencez par ajouter la bote groupe la fiche, puis choisissez les boutons radio dans la palette des composants et placez-les dans la bote groupe. Par dfaut, tous les boutons radio placs dans le mme contrle fentr conteneur (comme TRadioGroup ou TPanel) appartiennent au mme groupe. Par exemple, deux boutons radio d'une fiche ne peuvent tre slectionns simultanment que s'ils appartiennent des conteneurs diffrents, par exemple deux botes groupe.

Le ncessaire pour devenir professionnel

Auteur : BOUNCEUR Ahcne

Borland

Delphi

32

CheckBox Un composant TCheckBox propose une option l'utilisateur. L'utilisateur peut activer la case cocher pour slectionner l'option, ou supprimer la coche pour la dslectionner. Ptoprit ; Checked type boolen: Consultez la proprit Checked pour dterminer si le bouton radio est slectionn. Affectez la valeur True la proprit Checked pour slectionner le bouton radio et dslectionner tous les autres boutons radio du mme conteneur. Affectez la valeur False Checked pour dslectionner le bouton radio, plus aucun bouton du groupe n'tant alors slectionn.

RadioGroup
Un objet TRadioGroup est une bote groupe particulire ne pouvant contenir que des boutons radio. Les boutons radio contenus directement dans le mme composant sont "groups". Quand l'utilisateur active un bouton radio, tous les autres boutons radio de son groupe deviennent dsactivs. Il ne peut donc y avoir deux boutons radio activs simultanment dans une fiche que s'ils sont placs dans des conteneurs distincts, comme des botes groupe. Pour ajouter des boutons radio un objet TRadioGroup, modifiez la proprit Items dans l'inspecteur d'objets. Chaque chane de Items fait apparatre un bouton radio dans le groupe ayant la chane comme libell. La valeur de la proprit ItemIndex dtermine le bouton radio slectionn du groupe. Vous pouvez afficher les boutons radio sur une ou plusieurs colonnes en dfinissant la valeur de la proprit Columns. Proprits : Columns type entier: La proprit Columns dtermine le nombre de colonnes du groupe de boutons radio. Sa valeur peut varier de 1 16. La valeur par dfaut est 1, ce qui signifie que les boutons radio sont disposs verticalement sur une seule colonne.

Items type TString: La proprit Items contient un objet TStrings qui liste les libells des boutons radio du groupe. Dans les descendants de TCustomRadioGroup, TRadioGroup et TDBRadioGroup, dans lesquels cette proprit est publie, il est possible d'ajouter ou de supprimer des boutons en modifiant la proprit liste Items avec l'inspecteur d'objets. Remarque : Les lments d'un objet groupe de boutons radio sont des instances particulires de TRadioButton gnres par TCustomRadioGroup. Il n'est pas

Le ncessaire pour devenir professionnel

Auteur : BOUNCEUR Ahcne

Borland

Delphi

33

possible d'inclure dans le groupe de boutons radio des instances de TRadioButton cres de manire autonome. ItemIndex type entier: La proprit ItemIndex contient l'indice du bouton radio dans la proprit Items. Le premier bouton a l'indice 0. A l'excution, la valeur de la proprit ItemIndex change quand l'utilisateur slectionne un bouton radio. Pour qu'un bouton apparaisse slectionn au dmarrage de l'application, affectez la conception l'indice de ce bouton la proprit ItemIndex. Sinon, laissez la valeur par dfaut de ItemIndex, -1, ce qui signifie qu'il n'y a pas de bouton slectionn.

ListBox
Utilisez TListBox pour afficher une liste dfilante d'lments o l'utilisateur peut slectionner, ajouter ou supprimer des lments. Proprits : Columns type entier: Utilisez la proprit Columns pour spcifier le nombre de colonnes, dans une bote liste multicolonne, visibles sans utiliser la barre de dfilement horizontale. Items type TString: Utilisez la proprit Items pour ajouter, insrer, supprimer ou dplacer des lments. Par dfaut, les lments d'une bote liste sont de type TStrings. Utilisez ce type d'lment pour accder aux proprits et mthodes permettant de manipuler les lments de la liste. Les mthodes Add et Delete : Items.add(chaine de caractres) Items.Delete(i :integer)

ajoute une chane en fin de liste. supprime la chane qui se trouve la (i+1)me ligne.

Exemple : le code suivant ajoute un texte comme lment d'une bote liste : procedure TForm1.FormCreate(Sender: TObject); begin ListBox1.Items.Add('Vertical'); ListBox1.Items.Add('Horizontal'); end; MultiSelect type boolen: Affectez la valeur True la proprit MultiSelect pour permettre l'utilisateur de slectionner plusieurs lments. Si MultiSelect a la valeur False, il n'est pas possible de slectionner la fois plusieurs lments de la bote liste.

Le ncessaire pour devenir professionnel

Auteur : BOUNCEUR Ahcne

Borland

Delphi

34

MultiSelect permet l'utilisateur de slectionner plusieurs lments non contigus. Elle ne permet pas l'utilisateur de slectionner une squence d'lments en une seule opration comme le permet la proprit ExtendedSelect. Si MultiSelect a la valeur True et que plusieurs lments sont slectionns, la valeur de la proprit ItemIndex, indiquant l'indice de l'lment slectionn (Selected), donne l'indice de l'lment slectionn dtenant la focalisation. ItemIndex type entier: A l'excution, utilisez la proprit ItemIndex pour slectionner un lment. Affectez la proprit ItemIndex l'indice de l'lment slectionner. La valeur de la proprit ItemIndex pour le premier lment de la liste est 0. Si aucun lment n'est slectionn, la valeur est -1 (valeur par dfaut) sauf si MultiSelect a la valeur True. Si la proprit MultiSelect a la valeur True, l'utilisateur peut slectionner plusieurs lments de la bote liste. Dans ce cas, la valeur de la proprit ItemIndex est l'indice de l'lment slectionn qui dtient la focalisation. Si MultiSelect a la valeur True, ItemIndex a par dfaut la valeur 0. Items[i] type String: Dsigne le titre (chane de caractre) de llment i

Edit
Utilisez un objet TEdit pour placer dans une fiche un contrle de saisie Windows standard. Les contrles de saisie permettent l'utilisateur de saisir du texte. Les contrles permettent galement d'afficher du texte. Mme pour afficher uniquement du texte, choisissez un contrle de saisie pour permettre l'utilisateur de slectionner le texte et de le copier dans le PressePapiers. Choisissez un objet libell si la possibilit de slection qu'offre le contrle de saisie n'est pas utile. Les proprits : CharCase Utilisez la proprit CharCase pour faire passer le contenu du contrle de saisie en majuscules ou en minuscules. Les valeurs possibles de la proprit CharCase sont : Valeur ecLowerCase ecNormal ecUpperCase Signification Le texte est converti en minuscules. Le texte apparat tel quel, il n'y a pas de conversion. Le texte est converti en majuscules.

Quand CharCase prend la valeur ecLowerCase ou ecUpperCase, les caractres sont convertis au fur et mesure que l'utilisateur les entre dans le contrle de saisie. L'affectation de la valeur ecLowerCase ou ecUpperCase la proprit CharCase change rellement le texte, pas simplement son aspect. Toute information sur la

Le ncessaire pour devenir professionnel

Auteur : BOUNCEUR Ahcne

Borland

Delphi

35

distinction minuscules/majuscules est perdue et n'est pas rtablie en affectant la valeur ecNormal la proprit CharCase.

MaxLength Utilisez la proprit MaxLength pour limiter le nombre de caractres pouvant tre entrs dans le contrle de saisie. Une valeur nulle indique qu'il n'y a pas de limite, dfinie par l'application, la longueur.. Utilisez MaxLength pour limiter la longueur du texte d'un contrle de saisie si le texte doit tre copi dans un tampon de taille fixe. Remarque : L'affectation d'une valeur MaxLength ne tronque pas le texte existant, elle empche simplement l'utilisateur d'ajouter du texte aprs avoir atteint la limite de MaxLength caractres. Remarque : Mme si MaxLength a la valeur 0, il peut y avoir des limitations du nombre de caractres pouvant tre saisis dans le contrle de saisie imposes par le systme d'exploitation. PasswoedChar Utilisez la proprit PasswordChar pour crer un contrle de saisie affichant un caractre spcial la place de chaque caractre entr. Si PasswordChar a la valeur caractre nulle (caractre ANSI zro), le contrle de saisie affiche le texte normalement. Si PasswordChar contient tout autre caractre, le contrle de saisie affiche le caractre spcifi par PasswordChar la place de chaque caractre entr. PasswordChar n'affecte que l'aspect du contrle de saisie. La valeur de la proprit Text contient bien les caractres effectivement saisis. Text Utilisez la proprit Text pour lire la valeur de Text pour le contrle ou pour affecter une nouvelle chane la valeur de Text. Par dfaut, Text contient le nom du contrle. Pour les contrles bote de saisie et mmo, la valeur de Text apparat dans le contrle. Pour les botes options, la valeur de Text apparat dans la partie contrle de saisie de la bote options. Remarque : Les contrles affichant du texte utilisent soit la proprit Caption soit la proprit Text pour spcifier la valeur texte. La proprit utilise dpend du type de contrle. En gnral, Caption est utilise pour le texte apparaissant comme un titre ou un libell de fentre, alors que Text est utilise pour le texte apparaissant sous forme de contenu d'un contrle.

Le ncessaire pour devenir professionnel

Auteur : BOUNCEUR Ahcne

Borland

Delphi

36

ComboBox
Un composant TComboBox est une bote de saisie associe une liste droulante. Les utilisateurs peuvent slectionner un lment de la liste ou entrer directement une valeur dans la bote de saisie. Proprits : Items type TString: Utilisez la proprit Items pour accder la liste d'lments apparaissant dans la liste de la bote options. Text type String: Llment selectionn dans le ComboBox sera plac dans cette proprit Add (voir ListBox)

Memo &

RichEdit

Memo Utilisez TMemo pour placer dans une fiche un contrle de saisie multiligne Windows standard. Les botes de saisie multilignes permettent l'utilisateur de saisir plusieurs lignes de texte. Ces composants sont appropris pour la reprsentation de donnes volumineuses. RichEdit Utilisez un objet TRichEdit pour placer un contrle standard Windows diteur de texte format dans une fiche. Les contrles diteur de texte format permettent l'utilisateur de saisir du texte avec divers attributs de fonte et de mise en forme des paragraphes. TRichEdit propose les proprits et mthodes pour saisir et manipuler du texte format. Cependant TRichEdit ne propose aucun composant d'interface utilisateur pour permettre l'utilisateur d'accder ses options de formatage du texte. Proprits : Lines type TString: Utilisez la proprit Lines pour manipuler le texte d'un contrle mmo ligne par ligne. Lines est un objet TStrings, il est donc possible d'utiliser les mthodes de TStrings avec Lines afin d'effectuer des manipulations comme compter les lignes de texte, ajouter de nouvelles lignes, supprimer des lignes ou remplacer les lignes par un autre texte. Pour manipuler la totalit du texte d'un seul bloc, utilisez la proprit Text. Pour manipuler les lignes une par une, la proprit Lines est plus commode.

Le ncessaire pour devenir professionnel

Auteur : BOUNCEUR Ahcne

Borland

Delphi

37

Exemple : procedure TForm1.Button1Click(Sender: TObject); begin Showmessage('La 6ime ligne de votre texte est: '+Memo1.Lines[5]); end; Vous pouvez utiliser aussi Add pour ajouter des lignes: Memo1.Lines.add(une phrase) ; Uiliser aussi count pour connatre le nombre de lignes : Exemple: Cet exemple affiche le nombre de lignes dans un Memo en cliquant sur un bouton. procedure TForm1.Button1Click(Sender: TObject); begin showmessage(inttostr(memo1.lines.Count)) end;

StringGrid
Ajoutez un objet TStringGrid une fiche pour proposer des donnes textuelles dans un format tabulaire. TStringGrid propose diverses proprits pour contrler l'aspect de la grille ainsi que des vnements et mthodes tirant profit de la disposition tabulaire de la grille pour rpondre aux actions de l'utilisateur. TStringGrid introduit la possibilit d'associer un objet chaque chane de la grille. Ces objets peuvent encapsuler des informations ou des comportements reprsents par les chanes proposes l'utilisateur. Si les chanes afficher dans la grille reprsentent les valeurs de champs des enregistrements d'un ensemble de donnes, utilisez TDBGrid. Les proprits ColCount RowCount FixedColor FixedCols FixedRows +Options goEditing goTabs Type Integer Integer Integer Integer Integer Boolean Boolean Dfinition Nombre de colonnes Nombre de lignes Couleur des colonnes fixes Nombre des colonnes fixes Nombre des lignes fixes Les utilisateurs peuvent diter le contenu des cellules. Les utilisateurs peuvent parcourir les cellules de la grille en utilisant Tab et Maj+Tab. La grille est verrouille en mode modification. L'utilisateur n'a pas besoin d'utiliser Entre ou F2 pour inverser EditorMode. Si Options n'inclut pas goEditing, goAlwaysShowEditor n'a aucun effet.

goAlwaysShowEditor Boolean

Exemple: StringGrid1.ColCount := 5; (5 colonnes) StringGrid1.RowCount := 6; (6 lignes)

Le ncessaire pour devenir professionnel

Auteur : BOUNCEUR Ahcne

Borland

Delphi

38

Col & Row


Pour dtecter la colonne et la ligne de la cellule slectionne Exemple : Cet exemple utilise une grille chane avec un libell au-dessus sur une fiche. Quand l'utilisateur cliquer sur une cellule de la grille, l'emplacement du curseur s'affiche dans le libell. procedure TForm1.StringGrid1Click(Sender: TObject); begin Label1.Caption := 'Le curseur se trouve dans la colonne ' + IntToStr(StringGrid1.Col + 1) + ', en ligne ' + IntToStr(StringGrid1.Row + 1); end;

Cells
StringGrid1.Cells[i,j]:reprsente la cellule qui se trouve la colonne i, ligne j Exemple : Dans lvnement OnCreate de votre fiche (form1) taper les instructions: procedure TForm1.FormCreate(Sender: TObject); begin StringGrid1.Cells[1,0] := 'Nom'; StringGrid1.Cells[2,0] := 'Prnom'; StringGrid1.Cells[3,0] := 'Adresse'; end;

Le ncessaire pour devenir professionnel

Auteur : BOUNCEUR Ahcne

Borland

Delphi

39

Chapitre

6
OnDragOver & OnDragDrop
OnDragOver Se produit quand l'utilisateur fait glisser un objet au-dessus d'un contrle. OnDragDrop Se produit quand l'utilisateur dpose un objet qu'il faisait glisser.

Description
OnDragOver
Utilisez un vnement OnDragOver pour signaler que le contrle autorise l'utilisateur relcher l'objet qu'il fait glisser. Dans le gestionnaire d'vnement OnDragOver, affectez la valeur False au paramtre Accept pour rejeter l'objet dplac. Laissez Accept la valeur True pour permettre l'utilisateur de dposer l'objet sur le contrle. Pour modifier la forme du pointeur de la souris et indiquer que le contrle autorise l'utilisateur relcher l'objet, modifiez la valeur de la proprit DragCursor du contrle avant la fin du gestionnaire OnDragOver. Source indique l'objet que l'utilisateur fait glisser, Sender est l'emplacement potentiel o sera dpos l'objet, et X et Y sont des coordonnes cran exprimes en pixels. Le paramtre State spcifie comment l'objet dplac se dplace au-dessus du contrle. Remarque : Dans le gestionnaire d'vnement OnDragOver, la valeur par dfaut du paramtre Accept est True. Toutefois, si aucun gestionnaire d'vnement n'est fourni, le contrle rejette l'objet dplac comme si le paramtre Accept avait la valeur False.

OnDragDrop
Utilisez le gestionnaire d'vnement OnDragDrop pour crire du code excut lorsque l'utilisateur relche un objet. Le paramtre Source de l'vnement OnDragDrop indique l'objet relch, et Sender le contrle sur lequel l'objet est relch. Les paramtres X et Y indiquent les coordonnes de la souris au-dessus du contrle. Ce code provient d'une application qui contient une bote liste (ListBox) et trois libells (Label), chacun avec une couleur et fonte diffrentes. L'utilisateur peut slectionner un libell et le glisser vers une bote liste. Lorsque le libell est dplac, les lments de la bote liste ont la fonte et la couleur de ce dernier. REMARQUE : Initialiser la proprit DragMode de chaque libell (Label) dmAutomatic.

Le ncessaire pour devenir professionnel

Auteur : BOUNCEUR Ahcne

Borland

Delphi

40

Ce gestionnaire d'vnement OnDragOver permet la bote liste d'accepter un libell dplac : Cliquer deux fois sur lvnement OnDragOver de ListBox1, puis crire linstruction suivante : procedure TForm1.ListBox1DragOver(Sender, Source: Integer; State: TDragState; var Accept: Boolean); begin Accept := Source is TLabel; end; TObject; X, Y:

Ce gestionnaire d'vnement OnDragDrop implmente le comportement d'un objet "dplac". Cliquer deux fois sur lvnement OnDragDrop de ListBox1, puis crire les instructions suivantes : procedure TForm1.ListBox1DragDrop(Sender, Source: TObject; Integer); begin if (Sender is TListBox) and (Source is TLabel) then begin with Sender as TListBox do begin Font := (Source as TLabel).Font; Color := (Source as TLabel).Color; end; end; end; X, Y:

Le ncessaire pour devenir professionnel

Auteur : BOUNCEUR Ahcne

Borland

Delphi

41

Chapitre

7
Objets pour manipuler une Base de Donnes
AccsBD
DataSource
TDataSource sert d'interface entre un composant ensemble de donnes et les contrles orients donnes d'une fiche. La classe TDataSource sert de canal entre un ensemble de donnes et les contrles orients donnes d'une fiche permettant ainsi l'affichage, les dplacements, et la modification des donnes de l'ensemble de donnes sous-jacent. Pour que les donnes d'un ensemble de donnes puissent tre affiches et manipules dans des contrles orients donnes, l'ensemble de donnes doit tre associ un composant source de donnes. De mme, chaque contrle orient donnes doit tre associ un composant source de donnes pour pouvoir recevoir et manipuler les donnes.

Les composants source de donnes servent galement relier les ensembles de donnes dans une relation matre-dtail.
Proprit : DataSet : Permet de relier le DataSource une Table

Table
TTable encapsule une table de base de donnes. La classe TTable permet d'accder aux donnes d'une table de base de donnes en utilisant le moteur de bases de donnes Borland (BDE). TTable donne un accs direct chaque enregistrement et chaque champ de la table d'une base de donnes sous-jacente, que ce soit une base de donnes Paradox, dBASE, Access, FoxPro, une base de donnes ODBC ou une base de donnes SQL dans un serveur distant comme InterBase, Oracle, Sybase, MS-SQL Server, Informix ou DB2. Un

Le ncessaire pour devenir professionnel

Auteur : BOUNCEUR Ahcne

Borland

Delphi

42

composant table peut galement travailler sur un sous-ensemble d'enregistrements d'une table en utilisant des intervalles et des filtres. Au moment de la conception, vous pouvez crer, supprimer, actualiser ou renommer la table base de donnes connecte TTable en cliquant avec le bouton droit sur TTable et en utilisant le menu surgissant. Proprits : Active : ouvre automatiquement la table DatabaseName : La proprit DatabaseName spcifie le nom de la base de donnes utiliser avec un composant base de donnes. Si DatabaseName contient un nom d'alias existant du moteur de bases de donnes Borland (BDE), il n'est pas ncessaire de dfinir la valeur des proprits AliasName et DriverName. Si DatabaseName ne correspond pas un alias BDE existant, l'application doit spcifier un nom d'alias existant dans la proprit AliasName en plus de DatabaseName, ou elle doit dfinir la valeur des proprits DriverName et Params. DatabaseName peut contenir un chemin d'accs complet pour se connecter une base de donnes Paradox ou dBASE. ReadOnly : possibilit ou non de modification de la table TableName : La proprit TableName permet de spcifier le nom de la table de base de donnes encapsule par ce composant. Pour affecter TableName une valeur significative, il faut avoir dj dfini la proprit DatabaseName. A la conception, si DatabaseName est dfinie, il est possible de slectionner un nom de table valide dans la liste droulante de la proprit TableName dans l'inspecteur d'objets. Remarque : Pour dfinir TableName, il faut que la proprit Active ait la valeur False. Eof : indique cest la fin de la table a t atteinte

Database
TDatabase permet, dans une application de base de donnes, de contrler prcisment la connexion avec une base de donnes base sur le BDE. Utilisez un objet TDatabase quand une application de base de donnes base sur le BDE ncessite l'une des options suivantes sur la connexion avec une base de donnes : Connexion persistante avec la base de donnes. Accs personnalis un serveur de bases de donnes. Contrle des transactions. Alias BDE spcifique l'application

Le ncessaire pour devenir professionnel

Auteur : BOUNCEUR Ahcne

Borland

Delphi

43

La classe TDatabase est particulirement utile car elle permet de contrler le traitement des transactions par le BDE lors d'une connexion avec un serveur SQL distant. Remarque : La dclaration explicite d'un composant TDatabase pour chaque connexion de base de donnes n'est pas ncessaire pour une application n'ayant pas besoin de contrler explicitement une connexion. Si un composant TDatabase n'est pas explicitement dclar et instanci dans une connexion de base de donnes, un composant base de donnes temporaire est cr l'excution, utilisant des valeurs par dfaut pour les proprits. AliasName DatabaseName LoginPrompt Choisissez un Alias Donnez un nom Initialisez False

Query
TQuery encapsule un ensemble de donnes et un ensemble de rsultats bass sur une instruction SQL. La classe TQuery permet d'accder une ou plusieurs tables d'une base de donnes en utilisant des instructions SQL. Les composants requte peuvent tre utiliss avec des serveurs de bases de donnes distants comme Sybase, SQL Server, Oracle, Informix, DB2, et InterBase, et avec des tables locales Paradox, InterBase, dBASE, Access et FoxPro, ou avec des bases de donnes ODBC. Les composants requte sont pratiques, car ils peuvent : Accder plusieurs tables la fois (ce qu'on appelle en SQL une jointure). Accder automatiquement un sous-ensemble des lignes et colonnes de leurs tables sous-jacentes au lieu de renvoyer systmatiquement toutes les lignes et toutes les colonnes. Remarque : TQuery joue un rle encore plus important dans le dveloppement d'applications de base de donnes volutives. S'il y a le moindre risque qu'une application conue pour fonctionner avec des bases de donnes locales soit ultrieurement dploye sur un serveur de bases de donnes, utilisez des composants TQuery ds le dpart pour faciliter la migration plus tard.

ControleBD
DBGrid
TDBGrid affiche et manipule les enregistrements d'un ensemble de donnes dans une grille tabulaire. Placez un objet TDBGrid dans une fiche afin d'afficher et d'diter les enregistrements d'une table de base de donnes ou d'une requte. Une application peut utiliser une

Le ncessaire pour devenir professionnel

Auteur : BOUNCEUR Ahcne

Borland

Delphi

44

grille de donnes pour insrer, supprimer ou modifier les donnes de la base de donnes ou simplement pour les afficher. A l'excution, les utilisateurs peuvent utiliser le navigateur de base de donnes (TDBNavigator) pour se dplacer dans les donnes de la grille, et pour insrer, supprimer ou modifier les donnes. Les modifications effectues dans la grille de donnes ne sont pas transmises aux donnes sous-jacentes tant que l'utilisateur ne s'est pas dplac sur un enregistrement diffrent ou n'a pas quitt l'application. TDBGrid implmente les comportements gnriques introduits dans TCustomDBGrid. TDBGrid publie de nombreuses proprits hrites de TCustomDBGrid, mais n'introduit aucun comportement nouveau. Proprt : DataSource Donnez le DataSource correspondant

DBNavigator

Le navigateur de base de donnes (TDBNavigator) est utilis pour se dplacer dans un ensemble de donnes et effectuer des actions sur les donnes (par exemple, insrer un nouvel enregistrement ou expdier un enregistrement). Utilisez un navigateur de base de donnes dans des fiches contenant des contrles orients donnes comme TDBGrid ou TDBEdit. TDBNavigator permet l'utilisateur de contrler l'ensemble de donnes en modification ou en consultation. Quand l'utilisateur choisit un des boutons du navigateur, l'action correspondante est effectue sur l'ensemble de donnes auquel est li le navigateur. Si par exemple, l'utilisateur clique sur le bouton Insrer, un nouvel enregistrement est insr dans l'ensemble de donnes. TDBNavigator peut afficher les boutons suivants : Bouton Premier Rle Le premier enregistrement de l'ensemble de donnes devient l'enregistrement en cours, les boutons Premier et Prcdent sont dsactivs et les boutons Suivant et Dernier sont activs. L'enregistrement prcdent devient l'enregistrement en cours, les boutons Dernier et Suivant sont activs. L'enregistrement suivant devient l'enregistrement en cours et les boutons Premier et Prcdent sont activs. Le dernier enregistrement de l'ensemble de donnes devient l'enregistrement en cours, les boutons Dernier et Suivant sont dsactivs et les boutons Premier et Prcdent sont activs. Insre un nouvel enregistrement qui prcde l'enregistrement en cours et bascule l'ensemble de donnes en mode insertion et modification. Supprime l'enregistrement en cours et l'enregistrement suivant devient l'enregistrement en cours. Bascule l'ensemble de donnes en mode modification pour que l'enregistrement en cours puisse tre modifi. Ecrit les modifications de l'enregistrement en cours dans la base de donnes.

Prcdent Suivant Dernier

Insrer Supprimer Modifier Emettre

Le ncessaire pour devenir professionnel

Auteur : BOUNCEUR Ahcne

Borland

Delphi

45

Annuler

Annule les modifications dans l'enregistrement en cours et restitue l'tat de l'affichage de l'enregistrement tel qu'il tait avant la modification, dsactive les modes insertion et modification s'ils sont actifs. Actualise les donnes du tampon de l'ensemble de donnes associ. Pour les composants TQuery, ce bouton est dsactiv sauf si la proprit RequestLive a la valeur True.

Rafrachir

Proprt : DataSource Donnez le DataSource correspondant

DBText
TDBText reprsente un contrle orient donnes qui affiche la valeur d'un champ dans une fiche. Utilisez TDBText pour afficher dans une fiche le contenu d'un champ de l'enregistrement en cours d'un ensemble de donnes. Les valeurs de champ affiches par des contrles texte de base de donnes ne peuvent tre modifies par l'utilisateur dans le contrle texte. Pour permettre l'utilisateur de modifier le contenu du champ, utilisez TDBEdit ou TDBMemo. Si votre application n'a pas besoin de l'orientation donnes de la classe TDBText, utilisez plutt le composant texte (TLabel) ou le composant texte statique (TStaticText) plus conomes en ressources systme. Proprt : DataSource Donnez le DataSource correspondant

DBEdit
TDBEdit reprsente un contrle de saisie monoligne pouvant afficher et modifier les valeurs d'un champ d'un ensemble de donnes. Utilisez TDBEdit pour permettre aux utilisateurs de modifier un champ de base de donnes. TDBEdit utilise la proprit Text pour reprsenter le contenu du champ. TDBEdit ne permet la saisie que d'une seule ligne de texte. Si un champ peut contenir des donnes volumineuses ncessitant plusieurs lignes, utilisez un objet TDBMemo. Si votre application n'a pas besoin de l'orientation donnes de la classe TDBEdit, utilisez plutt un contrle de saisie (TEdit) ou un contrle de saisie masqu (TMaskEdit) plus conome en ressources systme. Pour fournir un masque restreignant la saisie et contrlant le format d'affichage des donnes, utilisez les proprits relatives au masque de TField et ses descendants. Ces proprits comprennent : TField.::EditMask, TDateTimeField.::DisplayFormat et TNumericField.::DisplayFormat. La proprit devant tre utilise est indique dans le type du champ ainsi que le descendant TField correspondant ce type.

Le ncessaire pour devenir professionnel

Auteur : BOUNCEUR Ahcne

Borland

Delphi

46

Proprt : DataSource Donnez le DataSource correspondant DataField :

DBMemo
TDBMemo reprsente un contrle de saisie multiligne pouvant afficher et modifier un champ d'un ensemble de donnes. Utilisez TDBMemo pour permettre l'utilisateur de modifier ou de consulter un champ contenant du texte, mme volumineux. TDBMemo utilise la proprit Text pour reprsenter le contenu du champ. TDBMemo gre plusieurs lignes de texte. Cet objet est donc adapt aux champs alphanumriques longs et aux champs texte BLOB (objet binaire volumineux). Pour les champs alphanumriques plus courts, mieux vaut utiliser un composant TDBEdit. Si votre application n'a pas besoin de l'orientation donnes de la classe TDBMemo, utilisez plutt le contrle mmo (TMemo) plus conome en ressources systme. Proprt : DataSource Donnez le DataSource correspondant DataField Donner le champ correspondant

DBListBox
TDBListBox est une bote liste oriente donnes qui permet l'utilisateur de changer la valeur du champ de l'enregistrement en cours d'un ensemble de donnes en slectionnant un lment dans une liste. Utilisez TDBListBox pour ajouter une fiche une bote liste permettant aux utilisateurs de changer la valeur d'un champ partir d'un ensemble de choix prdfinis. Si l'application n'a pas besoin des fonctionnalits orientes donnes de TDBListBox, utilisez plutt une bote liste (TListBox) pour conomiser des ressources systme. Les crateurs de composants souhaitant crer des objets bote liste personnaliss doivent utiliser TCustomListBox comme classe de base. Proprt : Items Pour ajouter les lments de la liste.

Le ncessaire pour devenir professionnel

Auteur : BOUNCEUR Ahcne

Borland

Delphi

47

DBComboBox
TDBComboBox reprsente un contrle bote options orient donnes. Utilisez TDBComboBox pour permettre l'utilisateur de changer la valeur d'un champ de l'enregistrement en cours dans un ensemble de donnes, en slectionnant un lment dans une liste ou en tapant des informations dans la bote de saisie du contrle. L'lment slectionn ou le texte tap devient la nouvelle valeur du champ si la proprit ReadOnly de la bote options de base de donnes a la valeur False. La bote options peut tre personnalise pour autoriser ou interdire la saisie dans la bote de saisie du contrle, pour afficher la liste sous forme droulante ou de manire permanente, pour trier les lments de la liste, etc. Proprt : Items Pour ajouter les lments de la liste.

DBLookupListBox
TDBLookupListBox propose une liste d'lments de rfrence pour renseigner les champs qui attendent des valeurs provenant d'autres ensembles de donnes. Utilisez TDBLookupListBox pour proposer aux utilisateurs une liste d'lments de rfrence permettant de dfinir la valeur d'un champ en utilisant les valeurs d'un champ d'un autre ensemble de donnes. Les botes listes de rfrence affichent habituellement des valeurs dcrivant la valeur relle du champ. Si TDBLookupListBox est li un composant champ de rfrence, il bnficie automatiquement de la relation entre la valeur du champ et les valeurs de rfrence dans l'ensemble de donnes de rfrence partir du composant champ. La relation entre les valeurs de champ et les valeurs correspondantes dans l'ensemble de donnes de rfrence peut aussi tre dfinie explicitement en utilisant les proprits de la bote liste de rfrence quand la bote liste n'est pas lie un composant champ de rfrence. Proprt : DataSource DataField ListSource ListField KeyField Donnez le DataSource correspondant Donner le champ correspondant Identifie une source de donnes pour les donnes affiches dans le contrle de rfrence. dentifie les champs dont les valeurs sont affiches dans le contrle de rfrence. Identifie le champ de l'ensemble de donnes ListSource qui doit correspondre la valeur du champ DataField.

Le ncessaire pour devenir professionnel

Auteur : BOUNCEUR Ahcne

Borland

Delphi

48

DBLookupComboBox
TDBLookupComboBox reprsente une bote options qui identifie un ensemble de valeurs de champ d'un ensemble de donnes l'aide d'un ensemble de valeurs correspondantes d'un autre ensemble de donnes. Utilisez TDBLookupComboBox pour fournir l'utilisateur une liste droulante d'lments de rfrences pour l'initialisation de champs ncessitant des donnes d'un autre ensemble de donnes. Si TDBLookupComboBox est li un composant champ de rfrences, il utilise automatiquement la relation entre la valeur du champ et les valeurs de rfrences dans l'ensemble de donnes de rfrences du composant champ. La relation entre les valeurs du champ et les valeurs correspondantes dans l'ensemble de donnes de rfrences peut aussi tre dfinie de manire explicite en utilisant les proprits de la bote options de rfrences si la bote options n'est pas lie un composant champ de rfrences. Proprt : DataSource DataField ListSource ListField KeyField Donnez le DataSource correspondant Donner le champ correspondant Identifie une source de donnes pour les donnes affiches dans le contrle de rfrence. dentifie les champs dont les valeurs sont affiches dans le contrle de rfrence. Identifie le champ de l'ensemble de donnes ListSource qui doit correspondre la valeur du champ DataField.

QReport
QuickRep
Utilisez TQuickRep pour crer un tat connect un ensemble de donnes. TQuickRep est le composant d'tat le plus rpandu. Pour plus d'informations sur la cration des tats, reportez-vous au guide de l'utilisateur. Proprits Dataset voir la dfinition de DataSet RecordCount RecordCount essaie de renvoyer le nombre d'enregistrements d'un ensemble de donnes matre. QuickReport utilise cette information pour maintenir la barre de progression pendant la gnration d'tat. Certaines bases de donnes ne peuvent renvoyer le compteur d'enregistrements. Pour ces bases de donnes, la barre de progression ne sera pas affiche. RecordNumber RecordNumber renvoie le numro de l'enregistrement en cours de traitement par l'tat. Le premier enregistrement / ligne est 0.

Pour afficher la page QuickRep en mode excution, utilisez la mthode Preview :

Le ncessaire pour devenir professionnel

Auteur : BOUNCEUR Ahcne

Borland

Delphi

49

QuickRep1.Preview ;

QRLabel
L'emploi du composant TQRLabel ressemble un Tlabel ordinaire, valable seulement pour les tats. Utilisez ce composant pour imprimer du texte statique sur un tat en entrant du texte dans la proprit Caption. Vous pouvez aussi modifier le texte imprimer dans l'vnement OnPrint, ce qui rend facile l'impression des calculs ou d'autres informations. Proprits DataSet Choisir une table DataField Choisir un champ de la table

QRDBText
Utilisez le composant TQRDBText pour imprimer tout champ texte d'une table, l'exception des champs mmo au format RichText. TQRDBText peut imprimer des champs alphanumriques, des champs virgule flottante, des champs date et heure et des champs mmo. TQRDBText peut s'tendre verticalement pour s'adapter au texte, si celui-ci excde la taille originale. La proprit AutoStretch doit tre dfinie True pour permettre l'tirement. Un composant peut s'tendre sur plusieurs pages. Pour formater les sorties, utilisez la proprit Mask. Proprits DataSet DataField Mask

Choisir une table Choisir un champ de la table Utilisez la proprit Mask pour formater le rsultat du composant TQRDBText. Si aucun masque n'est spcifi, QuickReport utilise le formatage par dfaut pour le champ. Pour plus d'informations sur le formatage d'un champ numrique, reportez-vous la rubrique FormatFloat de l'aide VCL.

Le ncessaire pour devenir professionnel

Auteur : BOUNCEUR Ahcne

Borland

Delphi

50

QRExpr
Utilisez TQRExpr pour calculer une expression durant la gnration d'un tat. Pour plus d'informations sur l'utilisation des expressions, reportez-vous au guide de l'utilisateur. Le double-clic sur cette expression dans l'inspecteur d'objets affiche un constructeur d'expressions. Dans la proprit Expression, entrez l'expression valuer. Le changement d'expression n'est pas autoris durant la gnration d'un tat. Proprits Expression

Value

Dans la proprit Expression, entrez l'expression valuer. Le changement d'expression n'est pas autoris durant la gnration d'un tat. Utilisez la proprit Value pour accder la valeur de l'expression. Elle renvoie un enregistrement variant avec le rsultat d'un calcul.

Mthodes Reset

Appelez Reset dans tout gestionnaire d'vnement durant la gnration d'un tat pour la valeur d'une expression rinitialiser 0. Cela est utile lorsque vous souhaitez un contrle manuel sur la rinitialisation des calculs.d'expressions rcapitulatives

QRSysData
Utilisez TQRSysData pour imprimer des informations systme, comme le titre de l'tat et le numro de page en cours. Dans la proprit Data, slectionnez les donnes imprimer. Dans la proprit Text, mettez le texte qui prcde. Proprit : Data Utilisez la proprit Data pour slectionner l'lment de donnes imprimer par le composant TQRSysData.

Le ncessaire pour devenir professionnel

Auteur : BOUNCEUR Ahcne

Borland

Delphi

51

Chapitre

8
Comment effectuer une recherche dans une Table ?
Pour effectuer une recherche dans une table on utilise les mthodes FindKey, et FindNearest

Exemples :
FindKey est utilis pour effectuer une recherche dont le(s) champ(s) correspondant lindex sont strictement gaux la (aux) valeur(s) passe(s) en paramtre. Table1.IndexFieldNames :=nom du champ dans la table ; Table1.FindKey([chane de caractres]) ; Du fait que la mthode FindKey est une fonction boolenne, on peut donc remplacer linstruction Table1.FindKey([chane de caractres]) par:
if Table1.FindKey([chane de caractres]) then //si lenregistrement est trouv else //si lenregistrement nest pas trouv

FindNearest est utilis pour effectuer une recherche dont le(s) champ(s) correspondant lindex sont proches de la (des) valeur(s) passe(s) en paramtre. Table1.IndexFieldNames :=nom du champ dans la table ; Table1.FindNearest([chane de caractres]) ;

Remarque :

Linstruction Table1.IndexFieldNames nest pas obligatoire si le recherche se fait sur le champ cl de la table, il est donc vident de la supprimer.

Le ncessaire pour devenir professionnel