Problème dérivé de TStringGrid
Bonjour,
j'utilise un dérivé de tStringGrid nommé tdatagrid (source ci-joint) sur un projet delphi5.
J'essaie de faire apparaître une case à cocher dans une de mes colonnes de mon datagrid. Mais voila petit soucis: ça marche avec tstringgrid mais pas avec mon objet dérivé.
Le code de création de ma case:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
constructor Tform1.create(AOwner: TComponent;);
var
bmp:Tbitmap;
Begin
FCheck:= TBitmap.Create;
FNoCheck:= TBitmap.Create;
bmp:= TBitmap.create;
try
bmp.handle := LoadBitmap( 0, PChar(OBM_CHECKBOXES ));
With FNoCheck Do Begin
width := bmp.width div 4;
height := bmp.height div 3;
canvas.copyrect( canvas.cliprect, bmp.canvas, canvas.cliprect );
End;
With FCheck Do Begin
width := bmp.width div 4;
height := bmp.height div 3;
canvas.copyrect(canvas.cliprect, bmp.canvas, rect( width, 0, 2*width, height ));
End;
finally
bmp.free
end;
End; |
Le code pour faire apparaitre ma case:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
procedure Tform1.maGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);
var
grid: TdataGrid;
Begin
If not ( gdFixed In State ) and ( ACol = 11 ) Then Begin
grid:= Sender As TdataGrid;
With grid.Canvas Do Begin
brush.color := $E0E0E0;
// checkboxes look better on a non-white background
Fillrect( rect );
// listbox state is encoded by the Objects property
If Assigned(grid.Objects[aCol, aRow]) Then
Draw( (rect.right + rect.left - FCheck.width) div 2,
(rect.bottom + rect.top - FCheck.height) div 2, FCheck )
Else
Draw( (rect.right + rect.left - FNoCheck.width) div 2,
(rect.bottom + rect.top - FNoCheck.height) div 2, FNoCheck )
End;
End;
End; |
Merci pour votre aide