2008-12-17 7 views
1

Je voudrais personnaliser TDBGrid:TDBGrid onSelect

1) ajouter onSelect/onUnselect événements - par exemple bon pour montrer le nombre d'articles sélectionnés.

2) supprimer l'élément sélectionné sur le clic gauche de la souris. J'ai hérité TDBGrid et réécrite MouseDown, mais il est impossible de déplacer ou redimensionner les colonnes :(

Alors, comment faire?

D2009

Répondre

0

Je pense que vous avez probablement besoin de vous assurer que vous permettre à la mousedown héritée de fonctionner de telle sorte que le mouvement standard et redimensionne le comportement exécutera.

0

> Je pense que vous avez probablement besoin de vous assurer que vous autorisez l'mousedown hérité de fonctionner de telle sorte que le mouvement standard et redimensionne le comportement exécutera.

Mais MouseDOwn hérité rend sélection sur le bouton gauche de la souris et je veux seulement sélectionner/désélectionner sur le bouton droit de la souris (comme select/unselect dans TotalComander)

1

Vous devez vérifier les modifications dans la propriété Selected.

1

Cela fait le travail pour moi:

implementation 

{$R *.dfm} 

type 
    THackDBGrid = class(TDBGrid); 
//for info on why we must do this, see: 
//http://delphi.about.com/od/oopindelphi/l/aa082603a.htm 

var 
    LastValidRow: integer; 

procedure TForm1.DataSource1DataChange(Sender: TObject; Field: TField); 
begin 
    //assign this to the TDBGrid.DataSource.DataSet.OnDataChange Event 
    if 0 <> HiWord(GetKeyState(VK_LBUTTON)) then begin 
    THackDBGrid(DBGrid1).Row := LastValidRow; 
    end 
    else begin 
    LastValidRow := THackDBGrid(DBGrid1).Row; 
    inherited; 
    end; 
end;