QuantumGrid - ajustar estilos e cores de um cxGrid

Top  Previous  Next

// estrutura na tela:

Grid

   Nivel - Dados

 

// onde

Grid : TcxGrid

Nivel: TcxGridLevel

Dados: TcxGridDBTableView

 

uses cxGridDBTableView, cxGridTableView, cxGrid, cxGridCustomView, cxGridStyleSheetsPreview, 

     cxStyleSheetEditor, Cxstyles;

 

----------------------------------------

// QuantumGrid - ajustar estilos e cores de um cxGrid

// para mudar a aparenciar de cores/fontes e permitir ao usuário modificar tb.

// coloque um component no form chamado

Repositorio: TcxStyleRepository;

 

// carregar todos os estilos do repositorio num listbox:

var

  I: Integer;

begin

  ListBox.Clear;

  // percorre os estilos do repositorio e coloca na listbox

  for I := 0 to Repositorio.StyleSheetCount - 1 do

    ListBox.Items.AddObject(Repositorio.StyleSheets[I].Caption, Repositorio.StyleSheets[I]);

  ListBox.ItemIndex := -1;

end;

 

// aplicar o estilo selecionado numa listbox na grid

Dados.BeginUpdate;

Dados.Styles.StyleSheet := TcxGridTableViewStyleSheet(ListBox.Items.Objects[ListBox.ItemIndex]);

Dados.EndUpdate;

 

// salvar os estilos em arquivo ini do repositorio direto. 

// quando o usuario alterar um deles é necessário gravar

var

  I    : Integer;

  AList: TList;

begin

  AList := TList.Create;

  try

    // percorre todos os estilos do repositorio e grava num ini

    for I:= 0 to Repositorio.StyleSheetCount - 1 do AList.Add(Repositorio.StyleSheets[I]);

    SaveStyleSheetsToIniFile(ArquivoTodosEstilos, AList);

  finally

    AList.Free;

  end;

end;

 

// carregar itens personalizados pelo usuario de um arquivo ini

Repositorio.Clear;

Repositorio.ClearStyleSheets;

// carrega do ini os estilos previamente salvos para o repositorio

LoadStyleSheetsFromIniFile(ArquivoTodosEstilos, Repositorio, TcxGridTableViewStyleSheet);

 

// abrir o editor padrão do TcxGrid para modificar um estilo cor/fonte (o selecionado na listbox)

ShowcxStyleSheetEditor(TcxGridTableViewStyleSheet(ListBox.Items.Objects[ListBox.ItemIndex]), nil);

 

// limpar o estilo que está atualmente selecionado para um grid

Dados.BeginUpdate;

Dados.Styles.StyleSheet := nil;

Dados.EndUpdate;