Bonjour,
J'en suis à la "fin" de ma Grid. J'ai un code fonctionnel mais j'ai encore quelques approximations dans les explications relatives à sa formulation.
Le but de ce code est de créer un TEdit, là où l'entête de la Grid a été double-cliquée. Cet Edit sert de champ de recherche.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 procedure TfELVL.DBGrid1DblClick(Sender: TObject); var aPt: TPoint; aGc: TGridCoord; aRect : TRect; aEdit : TEdit; begin GetCursorPos(aPt); with Sender as TDBGrid do begin aPt := ScreenToClient(aPt); aGc := MouseCoord(aPt.X, aPt.Y); aRect := CellRect(aGc.X, 0); Canvas.FillRect(aRect); aEdit := TEdit.Create(nil); with aEdit do begin Parent := Sender as TDBGrid; Left := aRect.Left; Top := aRect.Top; Width := aRect.Width; Height := aRect.Height; end; end; end;
Première question : aEdit := TEdit.Create(nil); ou aEdit := TEdit.Create(self); Le self renvoie à la Form. Lequel privilégier et pourquoi ? Par défaut j'utilise nil... mais à vrai dire sans explication possible de ma part... Evidemment pour le Parent, il est en tout autrement.
Deuxième question : Pourquoi dois-je écrire : Parent := Sender as TDBGrid; dans la mesure où quelques lignes plutôt et dans la portée de la définition, j'ai précisé "with Sender as TDBGrid do begin" ce qui stipule en clair que le Sender est un dbGrid... donc Parent = Sender devrait passer. Enfin ce n'est pas le cas.
Merci.
Partager