Vous êtes sur la page 1sur 42

Exemple 

: invoquer une boîte de dialogue d'édition en double-


cliquant
L' exemple suivant montre comment vous pouvez ouvrir votre boîte de dialogue EditRecord
lorsque l'utilisateur final double-clique dans une vue de grille. L' événement OnDblClick de
la vue est déclenché lors d'un double-clic. La fonction GetCursorPos fournit les coordonnées
actuelles de l'événement. Cependant, ces coordonnées sont calculées par rapport au coin
supérieur gauche de l'écran et vous devez les convertir en coordonnées client de la vue. Pour
cela, vous devez utiliser la méthode ScreenToClient du site de grille contenant la vue. Une
fois les coordonnées obtenues, l'enregistrement cliqué est déterminé à l'aide de la
fonctionnalité HitTest . La fonction GetHitTest renvoie un objet HitTest qui identifie
l'élément de grille situé à une position particulière. Si un utilisateur a cliqué sur un
enregistrement ou sa cellule, GetHitTest renverra un objet TcxGridRecordHitTest ou son
descendant et la propriété GridRecord identifiera l'enregistrement lui-même.
[Delphi]
procedure TForm1.tvCustomersDblClick(Sender: TObject);
var
APoint: TPoint;
AHitTest: TcxCustomGridHitTest;
ARecord: TcxCustomGridRecord;
begin
GetCursorPos(APoint);
with Grid.FocusedView.Site do
begin
APoint := ScreenToClient(APoint);
AHitTest := ViewInfo.GetHitTest(APoint);
if AHitTest is TcxGridRecordHitTest then
begin
ARecord := TcxGridRecordHitTest(AHitTest).GridRecord;
//Call your procedure to activate an edit dialog for the clicked
record
OpenEditRecordDialog(ARecord);
end;
end;
end;

[C++ Builder]
void __fastcall TForm1::tvCustomersDblClick(TObject *Sender)
{
TcxGridRecordHitTest * AHitTest;
TcxCustomGridRecord * ARecord;
TPoint APoint;
GetCursorPos(&APoint);
TcxGridSite * ASite = Grid->FocusedView->Site;
APoint = ASite->ScreenToClient(APoint);
if (AHitTest = dynamic_cast<TcxGridRecordHitTest *>
(ASite->ViewInfo->GetHitTest(APoint)))
{
ARecord = AHitTest->GridRecord;
//Call your procedure to activate an edit dialog for the clicked record
OpenEditRecordDialog(ARecord);
}
}
Exemple : Démarrage manuel du glisser-déposer
L' exemple suivant montre comment vous pouvez démarrer le glisser-déposer manuellement
dans la vue tvCustomers en gérant son événement OnMouseDown . Pour démarrer une
opération de glisser-déposer pour une vue, vous devez appeler la méthode BeginDrag de
l'objet de site grille de la vue (la méthode BeginDrag est héritée de la classe TControl). Le site
de grille ( TcxGridSite ) représente le contrôle qui contient et affiche la vue. Il est passé en
tant que paramètre Sender à l'événement OnMouseDown . Remarque : le site de la grille est
également accessible via la propriété Site de la vue . Pour activer le démarrage manuel du
glisser-déposer, vous devez définir la propriété DragMode de la vue sur dmManual .
Le gestionnaire OnMouseDown suivant démarre le glisser-déposer si l'utilisateur clique dans
un enregistrement de grille.
[Delphi]
procedure TForm1.tvCustomersMouseDown(Sender: TObject; Button:
TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
with TcxGridSite(Sender) do
begin
if ViewInfo.GetHitTest(X, Y).HitTestCode = htRecord then
BeginDrag(False);
end;
end;

[C++ Builder]
void __fastcall TForm1::tvCustomersMouseDown(TObject *Sender, TMouseButton
Button, TShiftState Shift, int X, int Y)
{
TcxGridSite * ASite = (TcxGridSite *)Sender;
if (dynamic_cast<TcxGridRecordHitTest*>(ASite->ViewInfo->GetHitTest(X,
Y)))
ASite->BeginDrag(false);
Exemple : TcxCustomGridView.OnGetStoredProperties,
TcxCustomGridView.OnGetStoredPropertyValue,
TcxCustomGridView.OnSetStoredPropertyValue,
TcxCustomGridView.OnInitStoredObject
L' ExpressQuantumGrid vous permet d'enregistrer la disposition de la vue dans un certain
nombre de fichiers externes et de la restaurer ultérieurement. Cet exemple montre comment
rendre persistante la disposition de la vue de table à bandes dans un fichier INI.
L' exemple suppose qu'un formulaire contient une vue de table à bandes nommée
BandedTableView . Pour enregistrer les propriétés de la Vue dans un fichier INI, nous allons
utiliser la procédure StoreToIniFile en utilisant les options par défaut. '
BandedTableViewProperties.ini ' est le nom de fichier spécifié pour le fichier INI.
[Delphi]
//...
BandedTableView.StoreToIniFile('BandedTableViewProperties.ini');

Plus tard, les propriétés de la vue seront restaurées à partir du fichier


BandedTableViewProperties.ini à l'aide du code suivant.
[Delphi]
//...
BandedTableView.RestoreFromIniFile('BandedTableViewProperties.ini');

La liste des propriétés qui seront enregistrées dans fichier doit être personnalisée car seules
quelques-unes des propriétés de la vue sont enregistrées par défaut. Chaque fois que la
procédure de magasin ( StoreToIniFile , StoreToRegistry , StoreToStorage ou StoreToStream)
est appelée, une liste des propriétés qui seront enregistrées est créée. Lorsque la liste est
complète (elle contient toutes les propriétés de la vue qui sont enregistrées par défaut), l'
événement OnGetStoredProperties est déclenché. À ce stade, vous pouvez facilement
personnaliser la liste, si nécessaire. Par exemple, ajoutons les propriétés qui contrôlent
l'apparence du panneau indicateur dans une vue, l' indicateur et IndicatorWidth . En plus de
cela, nous empêcherons l'enregistrement de propriétés indésirables, en l'occurrence une
propriété qui contrôle la visibilité du panneau de pied de page et qui s'appelle ' Footer '.
Ajoutons la procédure de gestion d'événement OnGetStoredProperties et nommons-la '
GetStoredProperties '. Les noms des propriétés à stocker sont contenus dans une liste passée
en tant que paramètre AProperties . Ajustez la liste comme indiqué ci-dessous.
[Delphi]
procedure TForm1.GetStoredProperties(Sender: TcxCustomGridView;
AProperties: TStrings);
begin
AProperties.Add('Indicator');
AProperties.Add('IndicatorWidth');
AProperties.Delete(AProperties.IndexOf('Footer'));
end;

Les propriétés à enregistrer dans le fichier INI ont été spécifiées, mais la vue réelle à laquelle
correspondent les propriétés Indicator et IndicatorWidth ne l'a pas été. Il est maintenant
temps de définir le lien entre eux. Pour ce faire, gérez l' événement
OnGetStoredPropertyValue , qui est déclenché lorsque les valeurs de la propriété sont
stockées dans un magasin de données externe (un fichier INI dans ce cas). Ajoutons la
procédure de gestion de cet événement et nommons-la ' GetStoredPropertyValue '. Dans le
code suivant, nous attribuons les valeurs réelles des propriétés aux propriétés stockées en
fonction de leurs noms. Rien ne doit être fait ici pour la propriété stockée Footer car nous
l'avons précédemment supprimée de la liste des propriétés qui seront enregistrées.
[Delphi]
procedure TForm1.GetStoredPropertyValue(Sender: TcxCustomGridView;
const AName: String; var AValue: Variant);
begin
if AName = 'Indicator' then
if Sender is TcxGridTableView then
begin
AValue := TcxGridTableView(Sender).OptionsView.Indicator;
Exit;
end;
if AName = 'IndicatorWidth' then
if Sender is TcxGridTableView then
begin
AValue := TcxGridTableView(Sender).OptionsView.IndicatorWidth;
Exit;
end;
end;

Par conséquent, le fichier BandedTableViewProperties.ini contiendra uniquement les


propriétés de la vue (noms et valeurs) que nous avons spécifiées. Pour restaurer ces propriétés
avec les valeurs stockées dans un magasin de données externe (un fichier dans ce cas), nous
devons effectuer l'opération inverse, c'est-à-dire initialiser les propriétés de la vue avec les
valeurs de la propriété stockée. Lorsque la restauration est lancée, l' événement
OnSetStoredPropertyValue est déclenché pour la vue. Ajoutez une procédure de gestion pour
cet événement et nommez-la ' SetStoredPropertyValue '. Dans le code suivant, nous
réaffectons les valeurs des propriétés stockées aux propriétés View réelles en fonction de leurs
noms, les restaurant ainsi.
[Delphi]
procedure TForm1.SetStoredPropertyValue(Sender: TcxCustomGridView;
const AName: String; const AValue: Variant);
begin
if AName = 'Indicator' then
if Sender is TcxGridTableView then
begin
TcxGridTableView(Sender).OptionsView.Indicator := AValue;
Exit;
end;
if AName = 'IndicatorWidth' then
if Sender is TcxGridTableView then
begin
TcxGridTableView(Sender).OptionsView.IndicatorWidth := AValue;
Exit;
end;
end;

Étant donné que le processus de magasin de vues inclut le stockage de l'ensemble complet des
propriétés de la vue ainsi que des propriétés des éléments de la vue de la grille (colonnes,
lignes de la vue de la carte, bandes) qui appartiennent à la vue, les événements appropriés sont
également déclenchés pour ces éléments, vous permettant ainsi pour personnaliser
complètement l'ensemble du processus de stockage. Afin de modifier le stockage des
propriétés de colonne de grille ou de ligne de carte, utilisez les événements suivants :
Item.OnGetStoredProperties , Item.OnGetStoredPropertyValue et
Item.OnSetStoredPropertyValue . Pour les propriétés de bande dans les vues de table par
bandes, utilisez les événements suivants : Band.OnGetStoredProperties ,
Band.OnGetStoredPropertyValue et Band.OnSetStoredPropertyValue .
Le processus de personnalisation de stockage et de restauration des propriétés pour les
colonnes et les bandes est similaire au processus de personnalisation d'une vue.
Remarque importante : lorsqu'un élément de vue de grille tel qu'une bande, une colonne ou
une ligne de carte est restauré à partir d'un magasin de données externe dans la vue où l'objet
qui correspond à l'élément est détruit, l'élément est recréé et l'objet nécessite donc que ses
événements sont réassociés aux gestionnaires d'événements existants. Cela peut être accompli
en gérant l' événement OnInitStoredObject .
Le code suivant représente le gestionnaire d'événements OnInitStoredObject et montre
comment réassocier les événements de toutes les colonnes (aucune identification spécifique
n'est effectuée) dont le stockage et la restauration des propriétés sont personnalisés en gérant
les événements Item.OnGetStoredProperties , Item.OnGetStoredPropertyValue et
Item.OnSetStoredPropertyValue avec les gestionnaires d'événements existants
(respectivement les procédures colGetStoredProperties, colGetStoredPropertyValue et
colSetStoredPropertyValue).
[Delphi]
procedure TForm1.InitStoredObject(Sender: TcxCustomGridView; AObject:
TObject);
begin
if AObject is TcxGridBandedColumn then
with TcxGridBandedColumn(AObject) do
begin
OnGetStoredProperties := colGetStoredProperties;
OnGetStoredPropertyValue := colGetStoredPropertyValue;
OnSetStoredPropertyValue := colSetStoredPropertyValue;
end;
end;
Exemple : TcxCustomGridView.OnStartDrag
Cet exemple montre comment créer un objet glisser personnalisé pour le glisser-déposer. L'objet
glisser fournira une image de glissement à afficher tout en faisant glisser les enregistrements de la
vue tvItems. Si un utilisateur commence à glisser dans la vue avec la fonctionnalité de sélection
multiple activée (la propriété OptionsSelection.MultiSelect est définie sur True ), l'image de

glissement affichera des informations sur le nombre d'enregistrements sélectionnés :

Si la fonctionnalité de sélection multiple est désactivée, la glisser l'image ressemblera à ceci :


Pour fournir un objet glisser personnalisé, vous devez : Implémenter votre propre classe pour l'objet
glisser en dérivant de la classe TDragObject ou de ses descendants (TDragControlObjectEx,
TDragControlObject) ; Gérer l' événement OnStartDrag de la vue dans laquelle le glisser-déposer
démarre ; Attribuez une instance de l'objet glisser personnalisé au paramètre DragObject dans le
gestionnaire d' événements
OnStartDrag . Voici un exemple d'implémentation d'un objet de glissement personnalisé lors d'un
glissement depuis la vue tvItems. Le gestionnaire d' événements OnStartDrag crée simplement un
objet glisser de la classe TMyDragControlObject et l'affecte au paramètre DragObject .
[Delphi]
procedure TForm1.tvItemsStartDrag(Sender: TObject;
var DragObject: TDragObject);
begin
DragObject := TMyDragControlObject.Create(Sender as TcxGridSite);
end;

[C++ Builder]
void __fastcall TForm1::tvItemsStartDrag(TObject *Sender, TDragObject
*&DragObject) {
DragObject = new TMyDragControlObject((TcxGridSite*)Sender);
}

La classe TMyDragControlObject redéfinit la méthode GetDragImages héritée de TDragControlObject.


Cette méthode doit renvoyer une liste contenant l'image à afficher lors du glissement. L'image de
glissement est créée par la méthode privée CreateImageList , qui affichera des informations
concernant les enregistrements sélectionnés/concentrés de la vue dans le formulaire ci-dessus.
[Delphi]
TMyDragControlObject = class(TDragControlObjectEx)
private
FImageList: TImageList;
procedure CreateImageList;
protected
function GetDragImages: TDragImageList; override;
public
constructor Create(AControl: TControl); override;
destructor Destroy; override;
end;
//...
{ TMyDragControlObject }
constructor TMyDragControlObject.Create(AControl: TControl);
begin
inherited Create(AControl);
end;
procedure TMyDragControlObject.CreateImageList;
var
AView: TcxCustomGridTableView;
s: string;
ABmp: TBitmap;
begin
if (FImageList = nil) and (Control is TcxGridSite)then
begin
//Get the current View
AView := TcxCustomGridTableView(TcxGridSite(Control).GridView);
//Prepare the text to display within the drag image
if AView.OptionsSelection.MultiSelect then
s := ' Dragging ' +
IntToStr(AView.Controller.SelectedRecordCount) + ' selected records from
the ' + AView.Name + ' View'
else
s := ' Dragging the focused record from the ' + AView.Name + '
View';
//Create the drag image
ABmp := TBitmap.Create();
try
with ABmp.Canvas do
begin
ABmp.Width := TextWidth(s);
ABmp.Height := TextHeight(s);
TextOut(0, 0, s);
end;
FImageList := TImageList.CreateSize(ABmp.Width, ABmp.Height);
FImageList.AddMasked(ABmp, clNone);
finally
ABmp.Free();
end;
end;
end;
destructor TMyDragControlObject.Destroy;
begin
if FImageList <> nil then
FImageList.Free;
inherited;
end;
function TMyDragControlObject.GetDragImages: TDragImageList;
begin
if FImageList = nil then
CreateImageList();
Result := FImageList;
end;

}
Exemple : TcxCustomGridView.StoreToRegistry,
TcxCustomGridView.RestoreFromRegistry
Supposons que nous ayons deux vues sensibles aux données ( tvSource et tvTarget ) et que
nous ayons besoin de la deuxième vue pour afficher les mêmes données que la première (en
utilisant la même disposition de vue). Les paramètres de la première vue sont stockés à
l'aide de la procédure StoreToRegistry . Afin de pouvoir restaurer les paramètres de la vue
dans une autre vue, définissez le paramètre ASaveViewName sur une chaîne non vide. Ce
nom sera utilisé dans la procédure RestoreFromRegistry lors du chargement des paramètres
dans la vue cible. Si vous spécifiez un nom pour le paramètre ASaveViewName , les éléments
seront stockés par leurs ID. La procédure de restauration lit les entrées du registre et les
applique aux éléments correspondants en fonction de leurs valeurs d'ID. Pour que le code
suivant fonctionne correctement, les éléments des vues tvSource et tvTarget doivent avoir
les mêmes identifiants. Lorsque vous exécutez le programme, tous les éléments d'une vue se
voient attribuer des ID uniques de base zéro. L'ID du premier élément est 0, l'ID du second
est 1, etc. Les ID fournissent l'identité unique des éléments dans la vue. Lorsqu'un élément
est supprimé, un élément nouvellement créé peut obtenir l'ID de l'élément supprimé. Ainsi,
les ID des éléments ne seront pas réutilisés dans l'état actuel de la vue, mais pourront être
réutilisés pendant la durée de vie de la vue. Il s'agit d'une limite unique à ces identifiants. Le
code ci-dessous est créé avec l'hypothèse suivante : les ID des éléments de la vue tvSource
sont des numéros séquentiels. L'ID du premier élément est zéro. la vue tvTarget ne contient
aucun élément avant l'exécution du programme. Cela garantit que les éléments créés au
moment de l'exécution obtiendront également des ID séquentiels basés sur zéro (les mêmes
que dans la vue tvSource ).
[Delphi]
var
AStoreKey, ASaveViewName: string;
I: Integer;
AOptions: TcxGridStorageOptions;
//...
//The path to the layout
AStoreKey := 'Software\MyProjects\TestStoring';
//The name to refer to the stored settings
ASaveViewName := 'tvSource Layout';
AOptions := [];
//Create items in the tvTarget View
for I := 0 to tvSource.ItemCount - 1 do
tvTarget.CreateItem;
//Save settings of the tvSource View
tvSource.StoreToRegistry(AStoreKey, True, AOptions, ASaveViewName);
//Apply settings to the tvTarget View
tvTarget.RestoreFromRegistry(AStoreKey, False, False, AOptions,
ASaveViewName);
//Make certain that the tvTarget View displays the same data as the
tvSource View
tvTarget.DataController.DataSource := tvSource.DataController.DataSource;
Exemple : Parcourir les niveaux
L' exemple suivant montre comment vous pouvez déplacer le focus entre les niveaux
d'imbrication dans un contrôle de grille. Supposons que vous ayez deux boutons sur votre
formulaire : ButtonLevelUp et ButtonLevelDown. Cliquer sur ces boutons déplace le focus
vers les niveaux supérieur et inférieur respectivement. Cliquer sur le bouton ButtonLevelUp
déplace le focus d'un niveau d'imbrication vers un niveau supérieur. Si l'enregistrement
actuellement ciblé appartient à un détail, cette action déplace le focus vers la ligne principale
propriétaire du détail. Si le regroupement est appliqué et que l'enregistrement actuel
appartient à un groupe de données, un clic sur ce bouton déplace le focus sur la ligne du
groupe immédiat contenant l'enregistrement. Le code suivant montre le gestionnaire
d'événements OnClick du bouton ButtonLevelUp. Pour obtenir un enregistrement parent
pour l'enregistrement ciblé, nous utilisons la propriété ParentRecord . La propriété Focused
d'un enregistrement vous permet de déplacer le focus sur cet enregistrement.
[Delphi]
procedure TForm1.ButtonLevelUpClick(Sender: TObject);
var
ARecord: TcxCustomGridRecord;
begin
with TcxCustomGridTableView(Grid.FocusedView) do
begin
ARecord := Controller.FocusedRecord;
if Assigned(ARecord) then
begin
ARecord := ARecord.ParentRecord;
if Assigned(ARecord) then
ARecord.Focused := True;
end;
end;
end;

[C++ Builder]
void __fastcall TForm1::ButtonLevelUpClick(TObject *Sender)
{
TcxCustomGridRecord * ARecord;
TcxCustomGridTableView * AView = (TcxCustomGridTableView *)Grid-
>FocusedView;
ARecord = AView->Controller->FocusedRecord;
if (ARecord != NULL)
{
ARecord = ARecord->ParentRecord;
if (ARecord != NULL)
ARecord->Focused = true;
}
}

Lorsque l'utilisateur final clique sur le bouton ButtonLevelDown, le focus passe d'un niveau
supérieur à un niveau d'imbrication. Si une ligne de groupe est ciblée, elle est d'abord
développée, puis l'enregistrement suivant est ciblé. Si une ligne principale est ciblée, elle est
également développée, puis le focus se déplace vers le premier enregistrement dans la vue
détaillée correspondante. Le code suivant montre l' événement OnClick pour le bouton
ButtonLevelDown. La fonction GetFirstChild renvoie le premier enfant d'un enregistrement
donné. Notez qu'avant l'appel de GetFirstChild , l'enregistrement est développé en premier.
Cela garantit que la fonction GetFirstFocusableChild et l' instruction Records[ARecord.Index +
1] renverront les enregistrements enfants appropriés. GetFirstFocusableChild renvoie un
enregistrement enfant pour une ligne principale. L' instruction Records[ARecord.Index + 1]
renvoie un enregistrement enfant pour une ligne de groupe.
[Delphi]
procedure TForm1.ButtonLevelDownClick(Sender: TObject);
function GetFirstChild(ARecord: TcxCustomGridRecord):
TcxCustomGridRecord;
begin
if ARecord is TcxGridMasterDataRow then
Result := ARecord.GetFirstFocusableChild
else
if ARecord is TcxGridGroupRow then
Result := ARecord.ViewData.Records[ARecord.Index + 1]
else
Result := nil;
end;
var
ARecord: TcxCustomGridRecord;
begin
with TcxCustomGridTableView(Grid.FocusedView) do
begin
ARecord := Controller.FocusedRecord;
if Assigned(ARecord) then
begin
ARecord.Expand(False);
ARecord := Controller.FocusedRecord;
ARecord := GetFirstChild(ARecord);
if Assigned(ARecord) then
ARecord.Focused := True;
end;
end;
end;
Bouton déroulant du filtre (Filter Dropdown Button)
en-têtes de colonne dans les vues de tableau et les vues de tableau à bandes , les légendes
de ligne de carte dans les vues de carte et les éléments de données dans les vues de mise en
page peuvent afficher des boutons déroulants de filtre (boutons de filtre en abrégé). Les
utilisateurs finaux peuvent cliquer sur ces boutons pour appeler les listes déroulantes de
filtres .

Caractéristique Membres associés


Visibilité Dans les vues Tableau et Tableau à bandes, les boutons de filtre sont
(Visibility) disponibles uniquement si l' option OptionsCustomize.ColumnFiltering de la
vue est activée. Dans ce cas, la visibilité du bouton de filtre pour chaque
colonne est spécifiée à l'aide de la propriété Options.Filtering ou
Options.FilteringPopup de la colonne . En même temps, si l' option
OptionsCustomize.ColumnFiltering de la vue est désactivée, les boutons de
filtre ne sont pas visibles, quelle que soit la propriété Options.Filtering ou
Options.FilteringPopup de la colonne . Les vues de carte fournissent une option
similaire pour spécifier la visibilité des boutons de filtre. Vous devez spécifier la
visibilité des boutons au niveau de la vue à l'aide de la propriété
OptionsCustomize.RowFiltering . Pour désactiver les boutons de filtre pour une
ligne particulière, définissez la propriété Options.Filtering ou
Options.FilteringPopup de la ligne sur False . Utilisez la propriété
OptionsView.ShowColumnFilterButtons (ou
OptionsView.ShowRowFilterButtons ) de la vue pour spécifier si les boutons de
filtre sont toujours visibles dans toutes les colonnes (lignes) ou uniquement dans
une colonne particulière (ligne), si un utilisateur final place le pointeur de la
souris sur cette colonne. (ligne). Notez que les boutons de filtre ne s'affichent
pas pour les colonnes et les lignes qui utilisent des éditeurs qui ne prennent pas
en charge les opérations de filtrage. Par exemple, les boutons de filtre ne seront
pas affichés pour les colonnes et les lignes qui utilisent les éditeurs BLOB.
Apparence Fondamentalement, l'apparence des boutons de filtre est spécifiée par les
(Appearance) paramètres de la propriété LookAndFeel du contrôle de grille. Vous pouvez
également fournir une peinture manuelle des boutons en gérant les événements
suivants : l'événement OnCustomDrawColumnHeader de la vue ou l'événement
OnCustomDrawHeader d'une colonne si vous utilisez une vue de table ou une
vue de table à bandes. L' événement OnCustomDrawCell de la vue ou
l'événement OnCustomDrawCell d' une ligne si vous utilisez une vue de carte.
Dans les vues tabulaires, vous pouvez changer le mode d'affichage des boutons
de filtre via la propriété OptionsView.HeaderFilterButtonShowMode de la vue .
Chaînes de ressources
Developer Express vous offre un mécanisme simple et complet de localisation des chaînes de
ressources, qui est commun à tous les produits Developer Express VCL. Vous pouvez utiliser
le composant TcxLocalizer conçu pour simplifier les tâches de localisation ou remplacer
manuellement la valeur par défaut de chaînes de ressources spécifiques lors de l'exécution via
les appels de procédure cxSetResourceString . Pour en savoir plus sur le composant
TcxLocalizer , reportez-vous à la rubrique d'aide Comment localiser une application à l'aide de
TcxLocalizer .
La procédure cxSetResourceString est utilisée avec la fonction cxGetResourceString utilisée
par les contrôles Developer Express. Lorsque les contrôles ont besoin d'une chaîne spécifique
à afficher, ils appellent la fonction cxGetResourceString , qui renvoie soit la chaîne
personnalisée, soit la chaîne par défaut (si la chaîne de ressource n'a pas été remplacée).
Les chaînes de ressources sont déclarées dans des fichiers séparés pour les produits Developer
Express VCL individuels. Utilisez les liens ci-dessous pour obtenir des informations sur les
chaînes de ressources disponibles pour des produits spécifiques. Ces rubriques fournissent des
identifiants de chaîne de ressources (requis par cxSetResourceString ) et des valeurs par
défaut : ExpressEditors et Filter Controls ExpressQuantumGrid ExpressDataController Menus
contextuels de la grille
Exemple Un éditeur de date affiche un bouton Effacer dans sa liste déroulante. La chaîne du
bouton est adressée par l' identifiant cxSDatePopupClear . Le code suivant remplace la
légende du bouton par son équivalent allemand :
[Delphi]
cxSetResourceString(@cxSDatePopupClear, 'Löschen');

[Constructeur C++]
cxSetResourceString(&_cxSDatePopupClear, "Löschen");

Ce code modifie la légende du bouton Effacer pour tous les éditeurs de date de
l'application actuelle.

ExpressQuantumGrid : chaînes de ressources


Cette rubrique décrit les chaînes de ressources utilisées par ExpressQuantumGrid dans les
boîtes de message et les éléments de contrôle et explique comment remplacer les valeurs de
chaîne de ressources par défaut lors de l'exécution. Reportez-vous à la rubrique Chaînes de
ressources pour des informations générales sur leur utilisation. Les chaînes de ressources
utilisées par ExpressQuantumGrid sont déclarées dans l' unité cxGridStrs .

Chaînes de ressources non triées


Identifiant de ressource Évaluer La description
scxGridBandsQuickCusto 'Cliquez ici pour Spécifie le texte d'indication du bouton
mizationHint afficher/masquer/dépl Personnalisation rapide de la bande .
acer les bandes' Voir la propriété
OptionsCustomize.BandsQuickCustomiz
ation de la vue .
scxGridColumnsQuickCu 'Cliquez ici pour Spécifie le texte d'indication du bouton
stomizationHint afficher/masquer/dépl Personnalisation rapide des colonnes .
acer les colonnes' Voir la propriété
OptionsCustomize.ColumnsQuickCusto
mization de la vue .
scxGridConverterInterm 'Il manque un Spécifie le message d'erreur qui peut se
ediaryMissing composant produire lors de l'importation d'un
intermédiaire !'#13#1 composant TdxDBGridLayout . Lors
0'Veuillez ajouter un de la conversion de TdxDBGridLayout
composant %s au en EQGrid , un composant TdxDBGrid
formulaire.' distinct doit être présent sur le
formulaire. Il servira d'intermédiaire lors
de l'importation. Si cette erreur se
produit, vous devez ajouter un contrôle
TdxDBGrid au formulaire et répéter les
étapes de conversion.
scxGridCustomizationFor 'Bandes' Spécifie la légende de la page à onglets
mBandsPageCaption Bandes dans le formulaire de
personnalisation (disponible
uniquement dans une vue de table par
bandes). Voir la propriété
Controller.Customization de la vue .
scxGridCustomizationFor "Personnalisation" Spécifie le titre du formulaire de
mCaption personnalisation . Consultez la
scxGridCustomizationFor propriété Controller.Customization de la
mCaption vue pour plus d'informations.
scxGridCustomizationFor 'Colonnes' Spécifie la légende de la page à onglets
mColumnsPageCaption Colonnes dans le formulaire de
personnalisation . Voir la propriété
Controller.Customization de la vue .
scxGridCustomizationFor 'Lignes' Spécifie la légende de l'onglet Lignes
mRowsPageCaption dans le formulaire de personnalisation
sous une vue Carte .
scxGridDeletingFocusedC 'Supprimer Le texte de la boîte de message pour
onfirmationText l'enregistrement ?' confirmer la suppression d'un seul
enregistrement (concentré). La propriété
OptionsData.DeletingConfirmation de la
vue détermine si la boîte de message
s'affiche avant la suppression d'un
enregistrement.
scxGridDeletingSelectedC 'Supprimer tous les Le texte de la boîte de message pour
onfirmationText enregistrements confirmer la suppression des
sélectionnés ?' enregistrements sélectionnés. La
propriété
OptionsData.DeletingConfirmation de la
vue détermine si la boîte de message
s'affiche avant la suppression des
enregistrements. Pour activer la sélection
multiple, définissez la propriété
OptionsSelection.MultiSelect de la vue
sur True .
scxGridFilterApplyButto 'Appliquer le filtre' Spécifie la légende du bouton
nCaption Appliquer le filtre dans la liste
déroulante des filtres . Consultez la
description de la propriété
Filtering.ColumnPopup.ApplyMultiSele
ctChanges (ou
Filtering.RowPopup.ApplyMultiSelectC
hanges ) de la vue.
scxGridFilterCustomizeB 'Personnaliser...' Spécifie la légende du bouton
uttonCaption Personnaliser dans le panneau de filtre.
Voir la propriété
FilterBox.CustomizeDialog de la vue
pour plus d'informations.
scxGridFilterIsEmpty '<Le filtre est vide>' Une chaîne s'affiche dans le panneau de
filtre lorsque les critères de filtre de la
vue actuelle sont vides. Si ce n'est pas le
cas, cette chaîne est remplacée par une
représentation textuelle des conditions
de filtre. Consultez la propriété
FilterBox.Visible de la vue pour rendre
le panneau de filtre visible.
scxGridFilterRowInfoTex 'Cliquez ici pour Spécifie le texte descriptif de la ligne de
t définir un filtre' filtre .
scxGridGroupByBoxCapt 'Faites glisser un en- Spécifie la chaîne affichée dans le
ion tête de colonne ici panneau de groupe lorsque les données
pour regrouper par ne sont regroupées par aucune colonne.
cette colonne' Définissez la propriété
OptionsView.GroupByBox de la vue sur
True pour rendre le panneau visible.
scxGridLayoutViewRecor '[RecordIndex] de Modèle par défaut utilisé pour formater
dCaptionDefaultMask [RecordCount]' les légendes des cartes dans les modes
Mise en page . La chaîne de mise en
forme est combinée à l'aide des macros
qui transmettent le numéro
d'enregistrement associé à une carte et le
nombre total d'enregistrements (cartes)
disponibles pour l'affichage. Cette
chaîne de ressource est utilisée pour
initialiser la propriété
TcxGridLayoutViewRecordCaption.Dis
playMask .
scxGridLockedStateImag 'S'il vous plaît, Spécifie le message affiché sur une
eText attendez...' image "Vue verrouillée". Le message est
visible si la propriété
LockedStateImageOptions.ShowText de
la grille est True .
scxGridNewItemRowInfo 'Cliquez ici pour Spécifie le texte descriptif de la nouvelle
Text ajouter une nouvelle ligne d'élément
ligne'
scxGridNoDataInfoText '<Aucune donnée à Cette chaîne est affichée au centre d'une
afficher>' vue si elle n'a pas de données à afficher.
Notez que cela peut se produire à la suite
d'un filtrage.
scxGridRecursiveLevels "Vous ne pouvez pas L'erreur se produit lors de l'affectation
scxGridRecursiveLevels créer de niveaux d'un enfant d'un niveau de grille
récursifs" spécifique ou du niveau de grille lui-
même à sa propriété Parent .
scxImportErrorCaption 'Erreur d'importation' Spécifie la légende du message d'erreur,
qui peut se produire lors de l'importation
d'un composant TdxDBGridLayout .
Lors de la conversion de
TdxDBGridLayout en EQGrid , un
composant TdxDBGrid distinct doit
être présent sur le formulaire. Il sera
utilisé comme intermédiaire lors de
l'importation des données. Si cette erreur
se produit, vous devez ajouter un
contrôle TdxDBGrid au formulaire et
répéter les étapes de conversion.

Chaînes de ressources de la vue graphique


Identifiant de ressource Évaluer La description
scxGridChartAlignment 'Alignement' Spécifie la légende de la sous-catégorie
Alignement sur la page Options du
formulaire de personnalisation .
scxGridChartAlignmentCente 'Centre' Spécifie la légende du bouton radio Centre
r sous la sous- catégorie Alignement sur la
page Options du formulaire de
personnalisation .
scxGridChartAlignmentDefa 'Défaut' Spécifie la légende du bouton radio par
ult défaut sous la sous- catégorie Alignement
sur la page Options du formulaire de
personnalisation .
scxGridChartAlignmentEnd 'Finir' Spécifie la légende du bouton radio Fin sous
la sous- catégorie Alignement sur la page
Options du formulaire de personnalisation .
scxGridChartAlignmentStart 'Démarrer' Spécifie la légende du bouton radio
Démarrer sous la sous- catégorie
Alignement sur la page Options du
formulaire de personnalisation .
scxGridChartAreaDiagramDi "Diagramme Spécifie le texte descriptif du diagramme en
splayText de zone" aires. Voir la propriété
ActiveDiagram.DisplayText de la vue .
scxGridChartBarDiagramDis 'Diagramme Spécifie le texte descriptif du diagramme à
playText à barres' barres. Voir la propriété
ActiveDiagram.DisplayText de la vue .
scxGridChartBorder 'Frontière' Spécifie la légende de la case à cocher
Bordure sur la page Options du formulaire
de personnalisation .
scxGridChartCategoriesDispl 'Données' Spécifie le texte descriptif des catégories par
ayText défaut . Voir la propriété
Categories.DisplayText de la vue pour plus
de détails.
scxGridChartColumnDiagra 'Diagramme Spécifie le texte descriptif du diagramme à
mDisplayText en colonnes' colonnes. Voir la propriété
ActiveDiagram.DisplayText de la vue .
scxGridChartCustomizationF 'Groupes de Spécifie la légende de l' onglet Groupes de
ormDataGroupsPageCaption données' données dans le formulaire de
personnalisation. Voir la description de la
classe TcxGridChartSeries .
scxGridChartCustomizationF '<aucune Spécifie le texte descriptif d'un élément dans
ormNoSortedSeries série>' la liste des séries du formulaire de
personnalisation .
scxGridChartCustomizationF 'Options' Spécifie la légende de l' onglet Options
ormOptionsPageCaption dans le formulaire de personnalisation. Voir
la description sur TcxGridChartSeries .
scxGridChartCustomizationF 'Séries' Spécifie la légende de l' onglet Série dans le
ormSeriesPageCaption formulaire de personnalisation. Voir la
description de la classe TcxGridChartSeries
.
scxGridChartCustomizationF 'Trier par:' Spécifie le titre de la liste des séries dans le
ormSortBySeries formulaire de personnalisation .
scxGridChartDiagramSelecto 'Sélecteur de Spécifie la légende de la case à cocher
r diagramme' Sélecteur de diagramme sous la catégorie
Boîte à outils sur la page Options du
formulaire de personnalisation .
scxGridChartLegend 'Légende' Spécifie la légende de la catégorie Légende
sur la page Options du formulaire de
personnalisation .
scxGridChartLegendKeyBor "Frontière Spécifie la légende de la case à cocher
der clé" Bordure clé sous la catégorie Légende de
la page Options du formulaire de
personnalisation .
scxGridChartLineDiagramDi 'Diagramme Spécifie le texte descriptif du diagramme
splayText linéaire' linéaire. Voir la propriété
ActiveDiagram.DisplayText de la vue .
scxGridChartNoneDiagramDi 'Pas de Cette chaîne s'affiche dans le sélecteur de
splayText schéma' diagramme lorsqu'aucun diagramme n'est
actuellement actif dans la vue graphique.
Consultez la propriété ActiveDiagram de la
vue pour plus de détails.
scxGridChartOrientation 'Orientation' Spécifie la légende de la sous-catégorie
Orientation sur la page Options du
formulaire de personnalisation .
scxGridChartOrientationDefa 'Défaut' Spécifie la légende du bouton radio Par
ult défaut dans la sous- catégorie Orientation
de la page Options du formulaire de
personnalisation .
scxGridChartOrientationHori 'Horizontal' Spécifie la légende du bouton radio
zontal Horizontal sous la sous- catégorie
Orientation sur la page Options du
formulaire de personnalisation .
scxGridChartOrientationVert 'Verticale' Spécifie la légende du bouton radio Vertical
ical sous la sous- catégorie Orientation sur la
page Options du formulaire de
personnalisation .
scxGridChartAutre 'Autre' Spécifie la légende de la catégorie Autre
sur la page Options du formulaire de
personnalisation .
scxGridChartPercentValueTi '0%' Spécifie le format de la valeur de l' étiquette
ckMarkLabelFormat de graduation .
scxGridChartPieDiagramDis "Diagramme Spécifie le texte descriptif du diagramme à
playText circulaire" secteurs. Voir la propriété
ActiveDiagram.DisplayText de la vue .
scxGridChartPosition 'Position' Spécifie la légende de la sous-catégorie
Poste sur la page Options du formulaire de
personnalisation .
scxGridChartPositionBottom 'Bas' Spécifie la légende du bouton radio Bas
sous la sous- catégorie Position sur la page
Options du formulaire de personnalisation .
scxGridChartPositionDefault 'Défaut' Spécifie la légende du bouton radio par
défaut sous la sous- catégorie Position sur la
page Options du formulaire de
personnalisation .
scxGridChartPositionLeft 'La gauche' Spécifie la légende du bouton radio gauche
sous la sous- catégorie Position sur la page
Options du formulaire de personnalisation .
scxGridChartPositionNone 'Aucun' Spécifie la légende du bouton radio Aucun
sous la sous- catégorie Position sur la page
Options du formulaire de personnalisation .
scxGridChartPositionRight 'Droit' Spécifie la légende du bouton radio Droite
sous la sous- catégorie Position sur la page
Options du Formulaire de personnalisation .
scxGridChartPositionTop 'Haut' Spécifie la légende du bouton radio Haut
sous la sous- catégorie Position sur la page
Options du formulaire de personnalisation .
scxGridChartStackedAreaDia 'Diagramme Spécifie le texte descriptif du diagramme
gramDisplayText de zone d'aires empilées . Voir la propriété
empilée' ActiveDiagram.DisplayText de la vue .
scxGridChartStackedBarDiag 'Diagramme Spécifie le texte descriptif du diagramme à
ramDisplayText de barres barres empilées . Voir la propriété
empilées' ActiveDiagram.DisplayText de la vue .
scxGridChartStackedColumn 'Diagramme Spécifie le texte descriptif du diagramme à
DiagramDisplayText de colonnes colonnes empilées . Voir la propriété
empilées' ActiveDiagram.DisplayText de la vue .
scxGridChartTitle 'Titre' Spécifie la légende de la catégorie Titre sur
la page Options du formulaire de
personnalisation .
scxGridChartToolBox 'Boîte à Spécifie la légende de la catégorie Boîte à
outils' outils sur la page Options du Formulaire de
personnalisation .
scxGridChartToolBoxCustom 'Personnaliser Spécifie la légende du bouton de
izeButtonCaption le graphique' personnalisation du graphique. Voir la
propriété ToolBox.CustomizeButton de la
vue .
scxGridChartToolBoxDataLe 'Niveaux de Spécifie la légende d'étiquette par défaut,
vels données :' qui identifie les niveaux de données dans le
navigateur de niveau de données .
scxGridChartToolBoxDataLe 'sélectionner Spécifie la représentation sous forme de
velSelectValue une valeur' chaîne de la valeur active d'un groupe de
données . Voir la propriété
ActiveDataGroup.ActiveValueDisplayText
de la vue .
scxGridChartValueHintForm '%s pour %s Spécifie la chaîne de format pour les
at est %s' indications de valeur. Consultez la propriété
OptionsBehavior.ValueHints de la vue pour
plus de détails.
scxGridChartValueHints "Conseils de Spécifie la légende de la case à cocher
valeur" Conseils sur la valeur sous la catégorie
Autre sur la page Options du formulaire de
personnalisation .

Chaînes de ressource de plages de dates


Identifiant de ressource Évaluer La description
scxGridYesterday 'Hier' Spécifie la légende de la plage horaire Hier
. Consultez la propriété
TcxGridYesterdayRange et la propriété
DateTimeHandling.Filters de la vue .
scxGridToday 'Aujourd'hui' Spécifie la légende de la plage horaire
Aujourd'hui . Consultez les propriétés
TcxGridTodayRange et
DateTimeHandling.Filters de la vue .
scxGridTomorrow 'Demain' Spécifie la légende de la plage horaire
Demain . Consultez la propriété
TcxGridTomorrowRange et la propriété
DateTimeHandling.Filters de la vue .
scxGridLast30Days 'Les 30 derniers Spécifie la légende de la plage de temps des
jours' 30 derniers jours . Voir la propriété
DateTimeHandling.Filters de la vue .
scxGridLast14Days « 14 derniers Spécifie la légende de la plage de temps des
jours » 14 derniers jours . Voir la propriété
DateTimeHandling.Filters de la vue .
scxGridLast7Days 'Les 7 derniers Spécifie la légende de la plage de temps des
jours' 7 derniers jours . Voir la propriété
DateTimeHandling.Filters de la vue .
scxGridNext7Days '7 prochains Spécifie la légende de la plage horaire des 7
jours' prochains jours . Voir la propriété
DateTimeHandling.Filters de la vue .
scxGridNext14Days « 14 prochains Spécifie la légende de la plage horaire des
jours » 14 prochains jours . Voir la propriété
DateTimeHandling.Filters de la vue .
scxGridNext30Days "30 prochains Spécifie la légende de la plage de temps des
jours" 30 prochains jours . Voir la propriété
DateTimeHandling.Filters de la vue .
scxGridLastTwoWeeks 'Deux dernières Spécifie la légende de la plage de temps des
semaines' deux dernières semaines . Voir la
propriété DateTimeHandling.Filters de la
vue .
scxGridLastWeek 'La semaine Spécifie la légende de la plage de temps de
dernière' la dernière semaine . Consultez la
propriété TcxGridLastWeekRange et la
propriété DateTimeHandling.Filters de la
vue .
scxGridThisWeek 'Cette semaine' Spécifie la légende de la plage horaire de
cette semaine . Consultez les propriétés
TcxGridThisWeekRange et
DateTimeHandling.Filters de la vue .
scxGridNextWeek 'La semaine Spécifie la légende de la plage horaire de la
prochaine' semaine prochaine . Voir le
TcxGridNextWeekRange et la propriété
DateTimeHandling.Filters de la vue .
scxGridNextTwoWeeks "Deux Spécifie la légende de la plage de temps des
prochaines deux prochaines semaines . Voir la
semaines" propriété DateTimeHandling.Filters de la
vue .
scxGridLastMonth 'Le mois Spécifie la légende de la plage de temps du
dernier' mois dernier . Consultez la propriété
TcxGridLastMonthRange et la propriété
DateTimeHandling.Filters de la vue .
scxGridThisMonth 'Ce mois-ci' Spécifie la légende de la plage horaire de ce
mois . Consultez la propriété
TcxGridThisMonthRange et la propriété
DateTimeHandling.Filters de la vue .
scxGridNextMonth 'Le mois Spécifie la légende de la plage de temps du
prochain' mois suivant . Consultez les propriétés
TcxGridNextMonthRange et
DateTimeHandling.Filters de la vue .
scxGridLastYear 'L'année Spécifie la légende de la plage de temps de
dernière' l' année dernière . Consultez les
propriétés TcxGridLastYearRange et
DateTimeHandling.Filters de la vue .
scxGridThisYear 'Cette année' Spécifie la légende de la plage de temps
Cette année . Consultez les propriétés
TcxGridThisYearRange et
DateTimeHandling.Filters de la vue .
scxGridNextYear 'L'année Spécifie la légende de la plage de temps de
prochaine' l' année suivante . Consultez les propriétés
TcxGridNextYearRange et
DateTimeHandling.Filters de la vue .
scxGridPast 'Passé' Spécifie la légende de la plage de temps
passé . Voir la propriété
DateTimeHandling.Filters de la vue .
scxGridFuture 'Avenir' Spécifie la légende de la plage de temps
future. Voir la propriété
DateTimeHandling.Filters de la vue .
scxGridMonthFormat 'mmmm aaaa' Spécifie le modèle de format des valeurs de
scxGridMonthFormat date/heure regroupées par mois. Voir la
méthode
DateTimeHandling.GetMonthFormat de la
vue.
scxGridYearFormat 'aaaa' Spécifie le modèle de format des valeurs de
scxGridYearFormat date/heure regroupées par année. Voir la
méthode
DateTimeHandling.GetYearFormat de la
vue.

ressources de formulaire de modification sur place


Identifiant de ressource Évaluer La description
scxGridInplaceEditFormButtonCan 'Annuler' Légende du bouton qui ferme le
cel formulaire de modification sur
place et annule les modifications
apportées dans les éditeurs de
formulaire.
scxGridInplaceEditFormButtonUpd 'Mettre à jour' La légende du bouton qui ferme le
ate formulaire de modification sur
place et publie les modifications
apportées dans les éditeurs de
formulaire à la ligne de grille
actuellement modifiée.
scxGridInplaceEditFormSaveChang 'Vos données Le texte de la boîte de message
esQuery sont modifiées. pour confirmer l'enregistrement
Souhaitez-vous des modifications apportées dans
enregistrer les les éditeurs de formulaires. Cette
modifications ?' boîte de message s'affiche
lorsqu'un utilisateur final déplace
le focus de la ligne de la grille avec
des modifications en attente.

cxGridPopupMenu : chaînes de ressources


Cette rubrique décrit les chaînes de ressources utilisées par le composant TcxGridPopupMenu
pour les éléments de menu intégrés. TcxGridPopupMenu fournit des menus contextuels
standard pour les en-têtes de colonne , les panneaux de pied de page de vue, les panneaux de
pied de page de groupe et les lignes de groupe . Pour activer les éléments de menu intégrés,
définissez la propriété TcxGridPopupMenu.UseBuiltInPopupMenus sur True .
Les chaînes de ressources utilisées par le composant TcxGridPopupMenu sont déclarées dans
l' unité cxGridPopupMenuConsts .
Reportez-vous à la rubrique Chaînes de ressources pour des informations générales sur les
chaînes de ressources.
Identifiant de Évaluer La description
ressource
cxSGridNone 'Aucun' Spécifie la légende par défaut pour
l'opération de menu personnalisé héritée
de TcxGridPopupMenuOperation .

Menu contextuel d'en-tête de colonne


Identifiant de Évaluer La description
ressource
cxSGridAlignCenter 'Aligner le centre' Spécifie une action qui aligne le contenu d'une
colonne au centre.
cxSGridAlignLeft 'Alignez à gauche' Spécifie une action qui aligne le contenu d'une
colonne à gauche.
cxSGridAlignmentSub 'Alignement' La légende de l'élément de menu pour combiner
Menu les options d'alignement pertinentes ( Aligner au
centre, Aligner à gauche, Aligner à droite ).
cxSGridAlignRight 'Aligner à droite' Spécifie une action qui aligne le contenu d'une
colonne à droite.
cxSGridBestFit 'Meilleur Spécifie une action qui modifie la largeur d'une
ajustement' colonne afin que toutes ses valeurs soient
entièrement affichées. L'équivalent programme
de cette option est la méthode ApplyBestFit de l'
élément .
cxSGridBestFitAllColu "Meilleur Spécifie une action qui modifie la largeur de
mns ajustement (toutes toutes les colonnes afin que leurs valeurs soient
les colonnes)" entièrement affichées. L'équivalent programme
de cette option est la méthode ApplyBestFit de la
vue .
cxSGridClearSortingc 'Effacer le tri' Spécifie une action qui efface le tri sur une
xSGridClearSorting colonne. L'équivalent programme de cette option
consiste à définir la propriété SortOrder de la
colonne sur soNone .
cxSGridFieldChooser 'Sélecteur de Spécifie une action qui bascule la visibilité du
champ' formulaire de personnalisation de la vue. L'
équivalent programme de cette option consiste à
définir la propriété SortOrder de la colonne sur
soNone .
cxSGridShowFindPane 'Rechercher le Spécifie une action qui change la visibilité des
l panneau' équivalents .Code du panneau de recherche de la
vue : les méthodes Controller.ShowFindPanel et
Controller.HideFindPanel de la vue.
cxSGridGroupByBox 'Grouper par case' Spécifie une action qui bascule la visibilité de la
zone Grouper par de la vue . L'équivalent
programme de cette option est la propriété
Controller.Customization de la vue .
cxSGridGroupByThis 'Grouper par ce La légende de l'élément de menu utilisé pour
Field champ' regrouper les données par une colonne spécifique.
Lorsque vous cliquez sur l'élément de menu, la
colonne actuelle est ajoutée à la collection de
colonnes de regroupement (la colonne sera
affichée dans le panneau de groupe). L'équivalent
du programme L'option est la propriété
OptionsView.GroupByBox de la vue. Le menu
est appelé en cliquant avec le bouton droit sur un
en-tête de colonne.
cxSGridRemoveColum 'Supprimer cette Légende de l'élément de menu utilisé pour
n colonne' masquer la colonne actuelle. La sélection de
l'option masque la colonne en définissant sa
propriété Visible sur False .
cxSGridSortColumnAs 'Trier par ordre Légende de l'élément de menu utilisé pour
c croissant' spécifier l'ordre de tri croissant pour la colonne
actuelle. La sélection de cette option active à son
tour l'ordre de tri croissant ou désactive le tri.
L'équivalent du programme de l'option définit la
propriété SortOrder de la colonne sur
soAscending ou soNone . menu est appelé en
cliquant avec le bouton droit sur un en-tête de
colonne.
cxSGridSortColumnDe 'Trier par ordre Légende de l'élément de menu utilisé pour
sc décroissant' spécifier l'ordre de tri croissant pour la colonne
actuelle. La sélection de l'option active à son tour
l'ordre de tri décroissant ou désactive le tri.
L'équivalent du programme de l'option définit la
propriété SortOrder de la colonne sur
soDescending ou soNone . menu est appelé en
cliquant avec le bouton droit sur un en-tête de
colonne.
cxSGridRemoveThisG 'Supprimer du Légende de l'élément de menu utilisé pour
roupItem groupement' masquer la colonne actuelle. La sélection de
l'option masque la colonne en définissant sa
propriété Visible sur False .
cxSGridShowFootercx 'Bas de page' La légende de l'élément de menu utilisé pour
SGridShowFooter afficher/masquer le panneau Pied de page. Le
panneau Pied de page est utilisé pour afficher
les résumés de pied de page (résumés calculés par
rapport à tous les enregistrements de la vue
actuelle). La sélection de l'option à son tour
définit la propriété OptionsView.Footer de la vue
sur False (si le panneau est visible) ou Vrai (si le
panneau est masqué). Le menu est appelé en
cliquant avec le bouton droit sur un en-tête de
colonne.
cxSGridShowGroupFo "Pieds de page de Légende de l'élément de menu utilisé pour
oter groupe" afficher/masquer les pieds de page de groupe .
Les pieds de groupe affichent les résumés de
groupe (résumés calculés par rapport aux groupes
de données lorsque le regroupement est
appliqué). La sélection de l'option définit à son
tour la propriété OptionsView.GroupFooters de la
vue sur False (si les pieds de groupe sont
visibles) ou sur True (s'ils sont masqués). Le
menu est invoqué en cliquant avec le bouton droit
sur un en-tête de colonne.

Menu contextuel du pied de page


Identifiant de ressource Évaluer La description
cxSGridAvgMenuItem 'Moyen' Légende de l'élément de menu utilisé pour
calculer une valeur récapitulative moyenne par
rapport à une colonne spécifique. La sélection
de cette option supprime l'élément récapitulatif
existant ou en crée un nouveau pour calculer la
valeur moyenne par rapport à la colonne.
cxSGridCountMenuIte 'Compter' Légende de l'élément de menu utilisé pour
mcxSGridCountMenuIt calculer une valeur récapitulative de comptage
em par rapport à une colonne spécifique. La
sélection de cette option supprime l'élément
récapitulatif existant ou en crée un nouveau
pour calculer le nombre d'enregistrements dans
un groupe ou le nombre total d'enregistrements
dans la vue actuelle .
cxSGridMaxMenuItemc 'Max' Légende de l'élément de menu utilisé pour
xSGridMaxMenuItem calculer une valeur récapitulative maximale
par rapport à une colonne spécifique. La
sélection de cette option supprime l'élément
récapitulatif existant ou en crée un nouveau
pour calculer la valeur maximale par rapport à
la colonne.
cxSGridMinMenuItemc 'Min' La légende de l'élément de menu utilisé pour
xSGridMinMenuItem calculer une valeur récapitulative Min par
rapport à une colonne spécifique. La sélection
de cette option supprime l'élément récapitulatif
existant ou en crée un nouveau pour calculer la
valeur minimale par rapport à la colonne. Le
menu est appelé en cliquant avec le bouton
droit sur Panneaux Pied de page et Pied de
page de groupe.
cxSGridNoneMenuItem 'Aucun' La légende de l'élément de menu utilisé pour
supprimer un résumé, le cas échéant, pour la
colonne actuelle.
cxSGridSumMenuItem 'Somme' Légende de l'élément de menu utilisé pour
calculer une valeur récapitulative Somme par
rapport à une colonne spécifique. La sélection
de cette option supprime l'élément récapitulatif
existant ou en crée un nouveau pour calculer
une somme de valeurs par rapport à la
colonne.

Menu contextuel Grouper par zone


Identifiant de ressource Évaluer La description
cxSGridFullExpand 'Déploiement Spécifie une action qui développe toutes les
complet' lignes du groupe .
cxSGridFullCollapse "Effondrement Spécifie une action qui réduit toutes les lignes du
complet" groupe.
cxSGridFullCollapse "Effacer le Spécifie une action qui efface le regroupement.
groupement"
cxSGridHideGroupByBox 'Masquer le Spécifie une action qui masque la zone Grouper
groupe par boîte' par . Les utilisateurs finaux peuvent modifier la
visibilité de la zone Grouper par en cliquant sur l'
élément correspondant dans le menu contextuel
de l'en-tête de colonne .

Menu contextuel de ligne de groupe


Identifiant de ressource Évaluer La description
cxSGridSortByGroupValu 'Trier par valeur Légende de l'élément de menu utilisé pour trier
es de groupe' les lignes de groupe par valeurs de groupe. La
sélection de cette option trie les lignes de
groupe au même niveau en fonction de leurs
valeurs.
cxSGridSortBySummarycx '%s pour %s' Modèle de format utilisé pour créer la légende
SGridSortBySummary par défaut des éléments de menu associés aux
objets de résumé de groupe disponibles à ce
niveau. Le premier spécificateur de format
indique la fonction de résumé utilisée pour
calculer le résumé de groupe. Le deuxième
spécificateur de format indique la colonne pour
laquelle le récapitulatif de groupe est calculé. La
sélection de l'un de ces éléments de menu
spécifie un récapitulatif de groupe dont les
valeurs sont utilisées pour trier les lignes de
groupe au même niveau.
cxSGridSortBySummaryC 'Trier par La légende de l'élément de menu utilisée
aption résumé de comme étiquette avant une liste d'éléments de
groupe :' menu qui correspondent à tous les résumés de
groupe disponibles à ce niveau.
TcxGridCardViewRow.Kind

Spécifie le type de ligne de carte.


Syntaxe
type
TcxGridCardViewRowKind = (rkData, rkCaption, rkCategory);
property Kind: TcxGridCardViewRowKind;
Description Les valeurs d'énumération spécifient trois types de lignes de carte pouvant être
affichées dans une carte : rkData . Spécifie les lignes de données. Les utilisateurs finaux
peuvent modifier leurs valeurs. rkCaption . Représente les lignes de légende. Ces lignes ne
peuvent pas être modifiées lors de l'exécution. Leur arrière-plan est coloré différemment pour
les distinguer visuellement des lignes de données. rkCatégorie . Spécifie un type de ligne de
catégorie . Si la ligne actuellement traitée est une catégorie, les lignes qui la suivent sont ses
enfants. Une ligne de catégorie est utilisée pour organiser logiquement les lignes associées en
groupe. Ce groupe est dessiné dans une vue carte de manière arborescente. Le bouton de
développement qui apparaît dans la ligne de catégorie à gauche de sa légende permet aux
utilisateurs finaux de le développer ou de le réduire. Contrairement aux lignes de légende, les
lignes de catégorie peuvent être modifiées.

La valeur par défaut de la propriété Kind est rkData .


Dessin Grille personnalisé
La fonction de dessin personnalisé offre des possibilités de personnalisation illimitées pour
l'apparence et la convivialité du contrôle de grille. Comme cette fonctionnalité est basée sur
les événements, vous devez gérer les événements et implémenter du code. Vous pouvez
utiliser Styles à la place pour plus de simplicité et pour éviter le codage, mais cela réduit
évidemment la flexibilité.
Fonctionnement d'un événement de dessin personnalisé Chaque événement de dessin
personnalisé fournit un ensemble de paramètres qui fournissent les informations nécessaires
pour dessiner chaque type d' élément de vue de grille .
Le paramètre Sender spécifie l'élément de grille à redessiner. C'est généralement l'élément de
grille qui possède cet événement. Le tableau suivant répertorie tous les événements de tirage
personnalisés disponibles et leurs propriétaires :
Événement La description
OnCustomDrawBandHeaderO Permet à un en-tête de bande de la vue de table en bandes
nCustomDrawBandHeader d'être personnalisé. S'applique à : TcxGridBandedTableView
et TcxGridDBBandedTableView .
OnCustomDrawFooterCell Permet à une cellule de pied de page de la vue Table d'être
personnalisée. S'applique à : TcxGridColumn ,
TcxGridBandedColumn et TcxGridDBBandedColumn ;
TcxGridTableView , TcxGridDBTableView ,
TcxGridBandedTableView et TcxGridDBBandedTableView
OnCustomDrawHeader Permet à un en-tête de colonne de la vue Table d'être
personnalisé. S'applique à : TcxGridColumn ,
TcxGridBandedColumn et TcxGridDBBandedColumn .
OnCustomDrawColumnHeade Permet à un en-tête de colonne de la vue Table d'être
r personnalisé. S'applique à : TcxGridTableView ,
TcxGridDBTableView , TcxGridBandedTableView et
TcxGridDBBandedTableView .
OnCustomDrawPartBackgrou Permet aux éléments View tels que les pieds de page, les
nd pieds de groupe, les panneaux de filtre et la zone Grouper par
d' être dessinés de manière personnalisée .
OnCustomDrawCell Permet à une cellule de vue de grille d' être dessinée de
manière personnalisée . TcxCustomGridTableView ,
TcxGridTableView , TcxGridDBTableView ,
TcxGridBandedTableView , TcxGridDBBandedTableView ,
TcxGridCardView et TcxGridDBCardView .
OnCustomDrawGroupCell Permet à une ligne de groupe d'être personnalisée. S'applique
à : TcxGridTableView , TcxGridDBTableView ,
TcxGridBandedTableView et TcxGridDBBandedTableView
.
OnCustomDrawGroupSumma Permet d'afficher un résumé de groupe personnalisé.
ryCell S'applique à : TcxGridColumn , TcxGridBandedColumn et
TcxGridDBBandedColumn ; TcxGridTableView ,
TcxGridDBTableView , TcxGridBandedTableView et
TcxGridDBBandedTableView .
OnCustomDrawIndicatorCell Permet à un indicateur de ligne d'être personnalisé.
S'applique à : TcxGridTableView , TcxGridDBTableView ,
TcxGridBandedTableView et TcxGridDBBandedTableView
OnCustomDrawLegend Permet de dessiner une légende de graphique personnalisée.
S'applique à : TcxGridChartView et TcxGridDBChartView ;
TcxGridChartDiagram , TcxGridChartHistogram ,
TcxGridChartColumnDiagram , TcxGridChartBarDiagram ,
TcxGridChartLineDiagram , TcxGridChartAreaDiagram et
TcxGridChartPieDiagram .
OnCustomDrawLegendItemO Permet à un élément de légende d'être personnalisé.
nCustomDrawLegendItem S'applique à : TcxGridChartView et TcxGridDBChartView ;
TcxGridChartDiagram , TcxGridChartHistogram ,
TcxGridChartColumnDiagram , TcxGridChartBarDiagram ,
TcxGridChartLineDiagram , TcxGridChartAreaDiagram et
TcxGridChartPieDiagram .
OnCustomDrawPlotOnCusto Permet à la zone de traçage d' un graphique d' être
mDrawPlot personnalisée .
OnCustomDrawValueOnCust Permet à une valeur de graphique ( également appelée
omDrawValue marqueur de données ) d' être personnalisée .
TcxGridChartSeries et TcxGridDBChartSeries .
OnCustomDrawValueArea Permet à la zone de valeur d'un graphique (partie constitutive
des marqueurs de données dans les diagrammes de zone)
d'être personnalisée. S'applique à :
TcxGridChartAreaDiagram .
OnCustomDrawSeriesSite Permet à la zone d'un site de série d'être personnalisée.
S'applique à : TcxGridChartPieDiagram .
OnCustomDrawSeriesSiteCap Permet à la zone de légende d' un site de série d'être
tion personnalisée. S'applique à : TcxGridChartPieDiagram .

L' objet ViewInfo , qui contient toutes les informations requises pour peindre chaque élément,
est passé via le paramètre ViewInfo . De nombreuses propriétés ViewInfo ne sont requises que
par la structure interne de la grille, vous pouvez donc les ignorer. Les propriétés ViewInfo les
plus utiles sont : Propriété Bounds . Détermine le rectangle de délimitation de l'élément de
grille repeint. Chaque événement de dessin personnalisé fournit un canevas de contrôle de
grille représenté par le paramètre ACanvas . Comme le paramètre ACanvas fait référence à
l'ensemble du canevas de contrôle de la grille, vous devez utiliser AViewInfo . Propriété
Bounds pour déterminer la position et la taille de l'élément de grille actuel. Le rectangle
contenu dans cette propriété détermine les coins supérieur gauche et inférieur droit de
l'élément dans le contrôle de grille via les champs Bounds .Top , Bounds .Left, Bounds
.Bottom et Bounds .Right correspondants. Propriété des paramètres . Contient un ensemble
de champs qui déterminent le style de l'élément peint. Avec les champs Params .Color,
Params .TextColor et Params .Font, vous pouvez spécifier la couleur d'arrière-plan, la
couleur du texte (le cas échéant) et la police (un objet TFont) appliquées à l'élément de grille.
Propriété DisplayValue (ReadOnly) – Spécifie la valeur affichée par l'élément.
Le paramètre ACanvas fournit le canevas où l'élément est peint. N'oubliez pas que la propriété
ACanvas fournit l'ensemble du canevas du contrôle de grille. Vous devez donc utiliser la
propriété AViewInfo .Bounds pour déterminer le rectangle de délimitation de l'élément
repeint. Bien qu'ACanvas soit du type TcxCanvas , il publie toutes les méthodes de canevas
les plus utiles. Si vous souhaitez accéder au canevas VCL standard, vous devez utiliser la
propriété ACanvas .Canvas. Le paramètre ADone détermine si un gestionnaire d'événements
dessine complètement un élément approprié. Si ADone vaut True , la procédure de dessin par
défaut n'est pas appelée.

TcxGridBandedTableView.OnCustomDrawBandHeader
Se produit lorsqu'un en- tête de bande dans une vue de table à bandes doit être peint. Syntaxe
TcxGridBandCustomDrawHeaderEvent = procédure (expéditeur :
TcxGridBandedTableView ; ACanvas : TcxCanvas ; AViewInfo :
TcxGridBandHeaderViewInfo ; var ADone : booléen) de objet ;
propriété OnCustomDrawBandHeader : TcxGridBandCustomDrawHeaderEvent ;
Description Cet événement se déclenche chaque fois qu'un en-tête de bande doit être dessiné.
Comme pour les autres événements de dessin personnalisés, il fournit un canevas pour le
contrôle de grille (le paramètre ACanvas ), ViewInfo pour obtenir le rectangle englobant de
l'en-tête de bande (le paramètre AViewInfo et sa propriété Bounds ). Sender est la vue qui a
initié le repaint. Le paramètre ADone est initialement False , vous devez le définir sur True
pour indiquer à la grille que vous avez choisi de dessiner l'en-tête de bande.

TcxGridColumn.OnCustomDrawFooterCell
Se produit lorsqu'une cellule de pied de page ou une cellule de pied de page de groupe dans la
colonne actuelle doit être peinte. Syntaxe
TcxGridColumnCustomDrawHeaderEvent = procédure (Expéditeur :
TcxGridTableView ; ACanvas : TcxCanvas ; AViewInfo :
TcxGridColumnHeaderViewInfo ; var ADone : Booléen) de objet ;
propriété OnCustomDrawFooterCell : TcxGridColumnCustomDrawHeaderEvent ;
Description Comme pour les autres événements de dessin personnalisés, cet événement
fournit un canevas pour le contrôle de grille (le paramètre ACanvas ) et ViewInfo pour obtenir
le rectangle englobant de l'élément peint (le paramètre AViewInfo et sa propriété Bounds ).
L'expéditeur est généralement l'élément qui a causé le repaint. Le paramètre ADone est
initialement False , vous devez le définir sur True pour indiquer à la grille que vous avez
choisi de dessiner cet élément de manière personnalisée.
Pour peindre manuellement les résumés de groupe d'une colonne situés dans des lignes de
groupe , gérez plutôt l' événement TcxGridColumn.OnCustomDrawGroupSummaryCell de la
colonne.

TcxGridColumn.OnCustomDrawHeader
Se produit lorsqu'un en- tête de colonne doit être peint. Syntaxe
TcxGridColumnCustomDrawHeaderEvent = procédure (Expéditeur :
TcxGridTableView ; ACanvas : TcxCanvas ; AViewInfo :
TcxGridColumnHeaderViewInfo ; var ADone : Booléen) de objet ;
propriété OnCustomDrawHeader : TcxGridColumnCustomDrawHeaderEvent ;
Description Comme pour les autres événements de dessin personnalisés, cet événement
fournit un canevas pour le contrôle de grille (le paramètre ACanvas ) et ViewInfo pour obtenir
le rectangle englobant de l'élément peint (le paramètre AViewInfo et sa propriété Bounds ).
L'expéditeur est généralement l'élément qui a causé le repaint. Le paramètre ADone est
initialement False , vous devez le définir sur True pour indiquer à la grille que vous avez
choisi de dessiner cet élément de manière personnalisée.

TcxGridTableView.OnCustomDrawColumnHeader
Se produit lorsqu'un en- tête de colonne doit être peint. Syntaxe
TcxGridColumnCustomDrawHeaderEvent = procédure (Expéditeur :
TcxGridTableView ; ACanvas : TcxCanvas ; AViewInfo :
TcxGridColumnHeaderViewInfo ; var ADone : Booléen) de objet ;
propriété OnCustomDrawColumnHeader : TcxGridColumnCustomDrawHeaderEvent ;
Description Cet événement se produit chaque fois qu'un en-tête de colonne doit être dessiné.
Comme avec les autres événements de dessin personnalisés, l'événement fournit un canevas
pour le contrôle de grille (le paramètre ACanvas ) et un objet ViewInfo pour obtenir le
rectangle englobant de l'élément peint (le paramètre AViewInfo et sa propriété Bounds ).
Sender est la vue qui a causé le repaint. Le paramètre ADone est initialement False .
Définissez-le sur True pour indiquer à la grille que vous avez choisi de dessiner l'élément
(en-tête de colonne).

TcxCustomGridTableView.OnCustomDrawPartBackground
Vous permet de personnaliser l'arrière-plan d'un élément View . Syntaxe
TcxGridPartCustomDrawBackgroundEvent = procédure (Expéditeur :
TcxCustomGridTableView ; ACanvas : TcxCanvas ; AViewInfo :
TcxCustomGridCellViewInfo ; var ADone : Booléen) de objet ;
propriété OnCustomDrawPartBackground :
TcxGridPartCustomDrawBackgroundEvent ;
Description Cet événement se déclenche pour les éléments suivants : panneau Filtre ; panneau
Rechercher ; Panneau de pied de page ; Panneaux de pied de groupe ; Zone Grouper par .
Le paramètre Sender de l'événement OnCustomDrawPartBackground identifie la vue dont
l'élément doit être peint. Le paramètre ACanvas fournit la surface de dessin. Le paramètre
ADone spécifie si le dessin par défaut doit être effectué après l'exécution du gestionnaire
d'événements. Définissez ce paramètre sur True si vous avez peint l'élément et que le
traitement par défaut n'est pas requis.
Le paramètre AViewInfo permet d'accéder à l' objet ViewInfo dont les propriétés et la méthode
permettent d'obtenir des informations sur l'élément peint. Par exemple, vous pouvez
déterminer l'élément à peindre et obtenir les limites de l'élément à l'aide de la propriété
Bounds de cet objet . Le tableau ci-dessous répertorie tous les éléments disponibles pour la
peinture personnalisée à l'aide de l'événement et les types d'objets ViewInfo correspondants
(noms de classe).
Élément Nom de la classe ViewInfo
Panneau de filtre TcxGridFilterViewInfoTcxGridFilterViewInfo
Panneau Rechercher TcxGridFindPanelViewInfo
Panneau de pied de page TcxGridFooterViewInfoTcxGridFooterViewInfo
Panneaux de pied de page de TcxGridRowFooterViewInfo
groupe
Zone Grouper par TcxGridGroupByBoxViewInfo

Dans l'exemple ci-dessous, la zone Grouper par est personnalisée en gérant l' événement
OnCustomDrawPartBackground . La boîte est rendue avec une image personnalisée
chargée à partir d'un fichier externe. Pour les autres éléments de la vue, la peinture par défaut
est utilisée.
[Delphi]
//A brush used to fill the "group by" box
var
APatternBrush: TBrush;
//Create the pattern brush by loading an image to it
procedure TForm1.FormCreate(Sender: TObject);
begin
APatternBrush := TBrush.Create;
APatternBrush.Bitmap := TBitmap.Create;
APatternBrush.Bitmap.LoadFromFile('c:\texture1.bmp');
end;
//An OnCustomDrawPartBackground handler
procedure TForm1.cxGrid1DBTableView1CustomDrawPartBackground(
Sender: TcxGridTableView; ACanvas: TcxCanvas;
AViewInfo: TcxCustomGridCellViewInfo; var ADone: Boolean);
begin
if AViewInfo is TcxGridGroupByBoxViewInfo then
begin
//Fill the "group by" box with the pattern brush
ACanvas.Brush := APatternBrush;
ACanvas.FillRect(AViewInfo.Bounds);
//Disable the default painting of the "group by" box
ADone := True;
end else
//Enable the default painting of other View elements
ADone := False;
end;
end;
//Dispose of the pattern brush
procedure TForm1.FormDestroy(Sender: TObject);
begin
APatternBrush.Bitmap.Free;
APatternBrush.Free;
end;
La capture d'écran suivante montre le résultat de la gestion de l'événement.
TcxCustomGridTableItem.OnCustomDrawCell
Se produit lorsqu'une cellule de tableau ou une cellule de carte doit être peinte. Syntaxe
TcxGridTableDataCellCustomDrawEvent = procédure (Expéditeur :
TcxCustomGridTableView ; ACanvas : TcxCanvas ; AViewInfo :
TcxGridTableDataCellViewInfo ; var ADone : Booléen) de objet ;
propriété OnCustomDrawCell : TcxGridTableDataCellCustomDrawEvent ;
Description Cet événement se produit chaque fois qu'une cellule de tableau ou une cellule de
carte doit être peinte. Comme pour les autres événements de dessin personnalisés, il fournit un
canevas pour le contrôle de grille ( paramètre ACanvas ), ViewInfo pour obtenir le rectangle
englobant de l'élément peint ( paramètre AViewInfo et sa propriété Bounds ). L'expéditeur est
généralement l'élément qui a causé le repaint. Le paramètre ADone est initialement False ,
vous devez le définir sur True pour indiquer à la grille que vous avez choisi de dessiner cet
élément de manière personnalisée.

TcxGridTableView.OnCustomDrawGroupCell
Vous permet de peindre des lignes groupées de manière personnalisée. Syntaxe
TcxGridTableCellCustomDrawEvent = procédure (Expéditeur :
TcxCustomGridTableView ; ACanvas : TcxCanvas ; AViewInfo :
TcxGridTableCellViewInfo ; var ADone : Booléen) de objet ;
propriété OnCustomDrawGroupCell : TcxGridTableCellCustomDrawEvent ;
Description Gérez l' événement OnCustomDrawGroupCell pour prendre le contrôle de la
peinture des lignes groupées. Cet événement se déclenche juste avant qu'une ligne de
regroupement ne soit peinte. Les paramètres d'événement ACanvas et AViewInfo spécifient le
canevas sur lequel dessiner et l' objet ViewInfo sur les lignes, respectivement. Veuillez vous
référer à la description de la classe TcxGridTableCellViewInfo pour plus de détails sur cet
objet ViewInfo.
Le paramètre ADone spécifie si le dessin par défaut doit être effectué après l'exécution du
gestionnaire d'événements. Définissez-le sur True pour interdire la peinture par défaut pour la
ligne traitée. Laissez le paramètre défini sur False pour peindre la rangée de groupe en
utilisant le processus de peinture normal.
Le paramètre Sender spécifie la vue dont la ligne est peinte.

TcxGridColumn.OnCustomDrawGroupSummaryCell
Se déclenche chaque fois qu'un résumé de groupe (appartenant à la colonne actuellement
traitée) est sur le point d'être dessiné dans une ligne de groupe . Syntaxe
TcxGridGroupSummaryCellCustomDrawEvent = procédure (Sender : TObject ;
ACanvas : TcxCanvas ; ARow : TcxGridGroupRow ; AColumn : TcxGridColumn ;
ASummaryItem : TcxDataSummaryItem ; AViewInfo :
TcxCustomGridViewCellViewInfo ; var ADone : booléen) de l'objet ;
propriété OnCustomDrawGroupSummaryCell :
TcxGridGroupSummaryCellCustomDrawEvent ;
Description Implémentez le gestionnaire d'événements
OnCustomDrawGroupSummaryCell pour personnaliser le résumé du groupe dans une
ligne de groupe pour une colonne particulière. L'expéditeur spécifie la colonne actuellement
traitée. ACanvas spécifie la surface de dessin. ARow spécifie la ligne du groupe dans laquelle
le résumé du groupe est actuellement dessiné. AColumn spécifie la colonne actuellement
traitée. ASummaryItem spécifie le résumé du groupe actuellement dessiné. AViewInfo fournit
les informations ViewInfo pour rendre le résumé du groupe. ADone spécifie si la peinture par
défaut est requise. Définissez ADone sur True pour empêcher la peinture par défaut.
Pour peindre manuellement les résumés de groupe d'une colonne situés dans les panneaux de
pied de groupe , gérez plutôt l' événement OnCustomDrawFooterCell de la colonne.

TcxGridTableView.OnCustomDrawIndicatorCell
Se produit lors de la peinture d'une cellule d'indicateur dans une vue de tableau. Syntaxe
TcxGridIndicatorCellCustomDrawEvent = procedure(Sender : TcxGridTableView ;
ACanvas : TcxCanvas ; AViewInfo : TcxCustomGridIndicatorItemViewInfo ; var
ADone : booléen) de objet ;
propriété OnCustomDrawIndicatorCell : TcxGridIndicatorCellCustomDrawEvent ;
Description L' événement OnCustomDrawIndicatorCell se produit chaque fois qu'une
cellule d'indicateur doit être peinte. Semblable à d'autres événements de dessin personnalisés,
il fournit un canevas pour le contrôle de grille (le paramètre ACanvas ) et les informations
ViewInfo sur la cellule de l'indicateur (le paramètre AViewInfo ). Le paramètre Sender est la
vue qui a initié le repaint. Le paramètre ADone est initialement False . Vous devez le définir
sur True pour informer le contrôle de grille que le dessin personnalisé a été appliqué à cet
élément.
L'exemple suivant montre comment imiter une colonne fixe de la vue Table à l'aide de l'
événement OnCustomDrawIndicatorCell
procedure
TViewTableSimpleDemoMainForm.cxgFilmsDBTableViewCustomDrawIndicatorCell(Sen
der: TcxGridTableView; ACanvas: TcxCanvas; AViewInfo:
TcxCustomGridIndicatorItemViewInfo; var ADone: Boolean);
var
FValue: string;
FBounds: TRect;
begin
FBounds := AViewInfo.Bounds;
if (AViewInfo is TcxGridIndicatorHeaderItemViewInfo) then
begin
ACanvas.Brush.Color := $00C56A31;
ACanvas.FillRect(FBounds);
ACanvas.DrawComplexFrame(FBounds, clBlack, clBlack, cxBordersAll, 1);
ACanvas.Font.Color := clWhite;
ACanvas.Font.Style := [fsBold];
ACanvas.Brush.Style := bsClear;
InflateRect(FBounds, -3, 0);
ACanvas.DrawText('Year', FBounds, cxAlignLeft or cxAlignVCenter);
ADone := True;
end
else if (AViewInfo is TcxGridIndicatorRowItemViewInfo) then
begin
ACanvas.FillRect(FBounds);
ACanvas.DrawComplexFrame(FBounds, clBlack, clBlack, [bBottom, bLeft,
bRight], 1);
FValue :=
TcxGridIndicatorRowItemViewInfo(AViewInfo).GridRecord.Values[cxgFilmsDBTabl
eViewYEAR.Index];
InflateRect(FBounds, -3, -2);
ACanvas.Font.Color := clBlack;
ACanvas.Brush.Style := bsClear;
ACanvas.DrawText(FValue, FBounds, cxAlignRight or cxAlignTop);
ADone := True;
end;
end;

Le résultat est affiché sur l'image suivante :

TcxGridChartDiagram.OnCustomDrawLegend
Se produit lorsqu'une légende de graphique doit être peinte. Syntaxe
TcxGridChartDiagramLegendCustomDrawEvent = procédure (Expéditeur :
TcxGridChartDiagram ; ACanvas : TcxCanvas ; AViewInfo :
TcxGridChartLegendViewInfo ; var ADone : Booléen) de l'objet ;
propriété OnCustomDrawLegend : TcxGridChartDiagramLegendCustomDrawEvent ;
Description L' événement OnCustomDrawLegend se produit chaque fois que la zone d'une
légende de graphique doit être peinte. Comme pour les autres événements de dessin
personnalisés, il fournit un canevas pour le contrôle de grille (le paramètre ACanvas ),
ViewInfo (le paramètre AViewInfo et sa propriété Bounds ) pour obtenir le rectangle
englobant de l'élément peint (dans ce cas, la légende du graphique). L'expéditeur est
normalement l'élément qui a causé le repaint. La valeur du paramètre ADone est initialement
définie sur False . Définissez-le sur True pour empêcher la grille d'effectuer la peinture par
défaut et de peindre sur toute peinture personnalisée. Remarque : L'événement
OnCustomDrawLegend de la vue graphique peut remplacer l' événement
OnCustomDrawLegend du diagramme puisque le premier est déclenché après le second.
Pour en savoir plus sur le dessin personnalisé, veuillez consulter la rubrique Dessin
personnalisé .

TcxGridChartDiagram.OnCustomDrawLegendItem
Se produit lorsqu'un élément de légende doit être peint. Syntaxe
TcxGridChartDiagramLegendItemCustomDrawEvent = procédure (Expéditeur :
TcxGridChartDiagram ; ACanvas : TcxCanvas ; AViewInfo :
TcxGridChartLegendItemViewInfo ; var ADone : Booléen) de l'objet ;
propriété OnCustomDrawLegendItem :
TcxGridChartDiagramLegendItemCustomDrawEvent ;
Description L' événement OnCustomDrawLegendItem se produit chaque fois qu'un élément
de légende (une clé de légende et sa description, c'est-à-dire le texte d'affichage de la série qui
correspond à l'élément de légende) doit être peint. Comme pour les autres événements de
dessin personnalisés, il fournit un canevas pour le contrôle de grille (le paramètre ACanvas ),
ViewInfo (le paramètre AViewInfo et sa propriété Bounds ) pour obtenir le rectangle
englobant de l'élément peint (dans ce cas, l'élément de légende). L'expéditeur est
généralement l'élément qui a causé le repaint. La valeur du paramètre ADone est initialement
False . Définissez-le sur True pour empêcher le contrôle de grille d'effectuer une peinture de
dessin par défaut sur la peinture personnalisée effectuée. Remarque : L'événement
OnCustomDrawLegendItem de la vue graphique peut remplacer l' événement
OnCustomDrawLegendItem du diagramme puisque le premier est déclenché après le
second.
Pour en savoir plus sur le dessin personnalisé, veuillez consulter la rubrique Dessin
personnalisé .

TcxGridChartHistogram.OnCustomDrawPlot
Se produit lorsque la zone de traçage d'un graphique doit être peinte. Syntaxe
TcxGridChartHistogramPlotCustomDrawEvent = procédure (Expéditeur :
TcxGridChartHistogram ; ACanvas : TcxCanvas ; AViewInfo :
TcxGridChartHistogramViewInfo ; const ABounds : TRect ; var ADone :
Booléen) de l'objet ;
propriété OnCustomDrawPlot :
TcxGridChartHistogramPlotCustomDrawEvent ;
Description Le paramètre Sender permet d'accéder au diagramme qui a provoqué le redessin
de la zone de traçage d'un graphique. Les paramètres ACanvas et AViewInfo permettent
d'accéder au canevas et à ViewInfo du contrôle de grille. Le paramètre ABounds spécifie le
rectangle de délimitation de la zone de traçage d'un graphique en cours de peinture. Notez que
les mêmes informations sont accessibles via le AViewInfo . Propriété PlotBounds . Comme
pour les autres événements de dessin personnalisés, la valeur du paramètre ADone est
initialement False . Définissez-le sur True pour empêcher le contrôle de grille d'effectuer la
peinture par défaut.
Pour en savoir plus sur le dessin personnalisé,reportez-vous à la rubrique Dessin personnalisé.

TcxGridChartDiagram.OnCustomDrawValue
Se produit lorsqu'un marqueur de données doit être peint. Syntaxe
TcxGridChartDiagramValueCustomDrawEvent = procédure (Expéditeur :
TcxGridChartDiagram ; ACanvas : TcxCanvas ; AViewInfo :
TcxGridChartDiagramValueViewInfo ; var ADone : Booléen) de l'objet ;
propriété OnCustomDrawValue : TcxGridChartDiagramValueCustomDrawEvent ;
Description L' événement OnCustomDrawValue se produit chaque fois qu'un marqueur de
données (par exemple, une barre pour un diagramme à barres ou une colonne pour un
diagramme à colonnes) doit être dessiné. Comme pour les autres événements de dessin
personnalisés, il fournit un canevas pour le contrôle de grille (le paramètre ACanvas ),
ViewInfo (le paramètre AViewInfo et ses Bounds propriété) pour obtenir le rectangle
englobant de l'élément peint (dans ce cas, le marqueur de données). L'expéditeur est
généralement l'élément qui a causé le repaint. La valeur du paramètre ADone est initialement
False . Définissez-le sur True pour empêcher la grille d'effectuer la peinture par défaut et de
peindre sur toute peinture personnalisée. Notez que l' événement OnCustomDrawValue du
diagramme pour une série spécifique est déclenché uniquement lorsque le gestionnaire
d'événement OnCustomDrawValue de cette série n'a pas fini de dessiner le marqueur de
données.
Pour en savoir plus sur le dessin personnalisé, veuillez consulter la rubrique Dessin
personnalisé .

TcxGridChartAreaDiagram.OnCustomDrawValueArea
Se produit lorsqu'une zone de valeur pour un marqueur de données doit être peinte. Syntaxe
TcxGridChartAreaDiagramValueAreaCustomDrawEvent = procédure (expéditeur :
TcxGridChartAreaDiagram ; ACanvas : TcxCanvas ; AViewInfo :
TcxGridChartAreaDiagramValueViewInfo ; var ADone : booléen) de l'objet ;
propriété OnCustomDrawValueArea :
TcxGridChartAreaDiagramValueAreaCustomDrawEvent ;
Description Dans les diagrammes d'aires , les marqueurs de données sont peints en deux
passes. La zone de valeurs d'un diagramme en aires est dessinée en premier, puis les
marqueurs de valeur et les lignes qui relient les points de valeur adjacents sont peints. Vous
pouvez gérer l' événement OnCustomDrawValueArea pour personnaliser une zone de
valeur pour chaque marqueur de données. Pour personnaliser les marqueurs de valeur de
peinture et les lignes reliant les points de valeur adjacents après la première passe, gérez la
OnCustomDrawValue du diagramme ou la série correspondante.
Le paramètre Sender permet d'accéder au diagramme de zone qui a provoqué le repeint d'une
zone de valeur ; Les paramètres ACanvas et AViewInfo permettent d'accéder au canevas et à
ViewInfo du contrôle de grille. Le rectangle de délimitation de la zone de valeur peinte peut
être obtenu via AViewInfo . Limite la propriété. Comme pour les autres événements de dessin
personnalisés, la valeur du paramètre ADone est initialement False .
Pour en savoir plus sur le dessin personnalisé, veuillez consulter la rubrique Dessin
personnalisé .

TcxGridChartPieDiagram.OnCustomDrawSeriesSite
Se produit lorsque la zone d'un site de série doit être peinte. Syntaxe
TcxGridChartPieDiagramSeriesSiteCustomDrawEvent = procédure (Expéditeur :
TcxGridChartPieDiagram ; ACanvas : TcxCanvas ; AViewInfo :
TcxGridChartPieSeriesSiteViewInfo ; var ADone : booléen) de l'objet ;
propriété OnCustomDrawSeriesSite :
TcxGridChartPieDiagramSeriesSiteCustomDrawEvent ;
Description Le paramètre Expéditeur permet d'accéder au diagramme circulaire qui a
provoqué le repeint de la zone d'un site de série. Les paramètres ACanvas et AViewInfo
permettent d'accéder au canevas et à ViewInfo du contrôle de grille. Le rectangle de
délimitation de la zone du site de la série en cours de peinture peut être obtenu via AViewInfo .
Limite la propriété. La série dont le site est en train d'être peint est accessible via le
AViewInfo . Propriété de série . Comme pour les autres événements de dessin personnalisés,
la valeur du paramètre ADone est initialement False .
Pour en savoir plus sur le dessin personnalisé, reportez-vous à la rubrique Dessin personnalisé

TcxGridChartPieDiagram.OnCustomDrawSeriesSiteCaption
Se produit lorsque la légende d'un site de série doit être peinte. Syntaxe
TcxGridChartPieDiagramSeriesSiteCaptionCustomDrawEvent = procédure
(Expéditeur : TcxGridChartPieDiagram ; ACanvas : TcxCanvas ; AViewInfo :
TcxGridChartPieSeriesSiteCaptionViewInfo ; var ADone : Boolean) de l'objet
;
propriété OnCustomDrawSeriesSiteCaption :
TcxGridChartPieDiagramSeriesSiteCaptionCustomDrawEvent ;
Description Le paramètre Sender permet d'accéder au diagramme circulaire qui a provoqué le
repaint de la légende du site de la série. Les paramètres ACanvas et AViewInfo permettent
d'accéder au canevas et à ViewInfo du contrôle de grille. Le rectangle de délimitation de la
légende du site de la série en cours de peinture peut être obtenu via AViewInfo . Limite la
propriété. La série dont le site est en train d'être peint est accessible via le AViewInfo .
Propriété de série . Comme pour les autres événements de dessin personnalisés, la valeur du
paramètre ADone est initialement False .
Pour en savoir plus sur le dessin personnalisé, reportez-vous à la rubrique Dessin
personnalisé.
Comment personnaliser le contrôle de la grille à l'aide de peintres
personnalisés
éléments de vue de la grille de peinture , l'implémentation standard consiste à gérer les
événements associés. Mais pour certains éléments, la seule approche consiste à remplacer les
méthodes des classes utilisées pour peindre ces éléments. Parallèlement, vous devrez
également remplacer les méthodes qui renvoient une classe painter appropriée . Pour les
getters ViewInfo et painter, la règle de convention de dénomination suivante est utilisée.
Toutes les méthodes qui permettent d'accéder aux objets ViewInfo utilisent le modèle
d'identificateur suivant - GetXXXViewInfoClass . Chaque instance d'une classe de peintre
est accessible à partir de l'objet ViewInfo via la méthode GetPainterClass . Pour illustrer
comment vous pouvez implémenter des tâches de peinture personnalisées dans ces cas,
considérez l'exemple suivant. Supposons que vous deviez personnaliser la ligne de données de
base . La grille ne fournit pas d'événement associé pour cela, vous devrez donc dériver des
classes TcxGridMasterDataRowViewInfo et TcxGridMasterDataRowPainter . Dans le
descendant de TcxGridMasterDataRowViewInfo , remplacez la méthode GetPainterClass
, dans laquelle vous renvoyez la sous-classe de TcxGridMasterDataRowPainter . Ensuite,
pour informer le contrôle que de nouvelles classes sont maintenant utilisées pour représenter
visuellement la ligne de données maître, implémentez les descendants des classes suivantes et
remplacez les méthodes suivantes : La classe TcxGridMasterDataRow et sa méthode
GetViewInfoClass . La classe TcxGridViewData et sa méthode GetRecordClass . La classe
TcxGridTableView et sa méthode GetViewDataClass . La classe
TcxGridMasterDataRowViewInfo et sa méthode GetPainterClass . Enfin, remplacez la
méthode TcxMyGridMasterDataRowPainter.DrawExpandButtonCell pour peindre la
zone du bouton de développement de la ligne de données maître avec la couleur spécifiée.
L'exemple suivant montre comment implémenter la peinture personnalisée de la ligne de
données maître à l'aide du mécanisme d'héritage décrit :
[Delphi]
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
Forms, Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
cxDataStorage, cxEdit, DB, cxDBData, cxGridLevel, cxGridCustomTableView,
cxGridTableView, cxGridDBTableView, cxClasses, cxControls,
cxGridCustomView, cxGrid, DBTables, cxGridRows;
type
TcxMyGridDBTableView = class(TcxGridDBTableView)
protected
function GetViewDataClass: TcxCustomGridViewDataClass; override;
end;
TcxMyGridViewData = class(TcxGridViewData)
protected
function GetRecordClass(ARecordInfo: TcxRowInfo):
TcxCustomGridRecordClass; override;
end;
TcxMyGridMasterDataRow = class(TcxGridMasterDataRow)
protected
function GetViewInfoClass: TcxCustomGridRecordViewInfoClass; override;
end;
TcxMyGridMasterDataRowViewInfo = class(TcxGridMasterDataRowViewInfo)
protected
function GetPainterClass: TcxCustomGridCellPainterClass; override;
end;
TcxMyGridMasterDataRowPainter = class(TcxGridMasterDataRowPainter)
protected
procedure DrawExpandButtonCell; override;
end;
TForm1 = class(TForm)
Table1: TTable;
DataSource1: TDataSource;
DataSource2: TDataSource;
Table2: TTable;
cxGrid1: TcxGrid;
cxGrid1DBTableView1: TcxGridDBTableView;
// ...
cxGrid1Level1: TcxGridLevel;
cxGrid1Level2: TcxGridLevel;
cxGrid2Level1: TcxGridLevel;
cxGrid2: TcxGrid;
cxGrid2Level2: TcxGridLevel;
cxGrid2DBTableView1: TcxGridDBTableView;
cxGrid2TableView1: TcxGridTableView;
procedure FormCreate(Sender: TObject);
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
uses
cxGridDBDataDefinitions;
{ TcxMyGridDBTableView }
function TcxMyGridDBTableView.GetViewDataClass: TcxCustomGridViewDataClass;
begin
Result := TcxMyGridViewData;
end;
{ TcxMyGridViewData }
function TcxMyGridViewData.GetRecordClass(
ARecordInfo: TcxRowInfo): TcxCustomGridRecordClass;
begin
if GridView.IsMaster then
Result := TcxMyGridMasterDataRow
else
Result := inherited GetRecordClass(ARecordInfo);
end;
{ TcxMyGridMasterDataRow }
function TcxMyGridMasterDataRow.GetViewInfoClass:
TcxCustomGridRecordViewInfoClass;
begin
Result := TcxMyGridMasterDataRowViewInfo;
end;
{ TcxMyGridMasterDataRowViewInfo }
function TcxMyGridMasterDataRowViewInfo.GetPainterClass:
TcxCustomGridCellPainterClass;
begin
Result := TcxMyGridMasterDataRowPainter;
end;
{ TcxMyGridMasterDataRowPainter }
procedure TcxMyGridMasterDataRowPainter.DrawExpandButtonCell;
var
ABounds: TRect;
begin
Canvas.Brush.Color := $4FC8FB;
ABounds :=
TcxMyGridMasterDataRowViewInfo(ViewInfo).ExpandButtonCellViewInfo.Bounds;
Canvas.FillRect(ABounds);
end;
procedure TForm1.FormCreate(Sender: TObject);
var
AView: TcxMyGridDBTableView;
begin
cxGrid2.BeginUpdate;
try
AView :=
TcxMyGridDBTableView(cxGrid2.CreateView(TcxMyGridDBTableView));
AView.Assign(cxGrid1DBTableView1);
cxGrid2Level1.GridView := AView;
AView :=
TcxMyGridDBTableView(cxGrid2.CreateView(TcxMyGridDBTableView));
AView.Assign(cxGrid1DBTableView2);
cxGrid2Level2.GridView := AView;
finally
cxGrid2.EndUpdate;
end;
end;
end.
Voici le résultat de l'exécution du code :
Affichage de RecNo dans la grille tcxGrid
Utilisé l’événement suivant :
procedure <AForm>.<AcxGridTableViewColumn>GetDataText(Sender:
TcxCustomGridTableItem; ARecordIndex: Integer; var AText: string);
var
AIndex: Integer;
begin
AIndex :=
TcxGridTableView(Sender.GridView).DataController.GetRowIndexByRecordIndex(
ARecordIndex, False);
AText := IntToStr(AIndex + 1);
end;

Vous aimerez peut-être aussi