Olá Bruno, eu fiz isso, mas via código mesmo...
A idéia é a seguinte: FTamanhoColunas: Array of integer; //Mantém o tamanho original das colunas quando é maximizado Mantenha o tamanho original de cada coluna em um Array dinâmico, para quando for restaurado voltar elas. Pode utilizar o evento Loaded; procedure SetTamanhoOriginalColunas; var i: Integer; begin //Inicializa o tamanho original de cada coluna do grid SetLength(FTamanhoColunas, Columns.Count); for i := 0 to Columns.Count -1 do FTamanhoColunas[i] := Columns.Items[i].Width; end; e na... procedure WMSize(var Message: TWMSize); message WM_SIZE; var i, Dif, Aux, TamanhoTotal: Integer; Rateio: Extended; begin inherited; //Exit; //Tirei fora por enquanto pq, passa muitas vezes por aqui if (Not Assigned(Columns)) or (Not FReSizeMaximizar) or (csReading in ComponentState) or (csLoading in ComponentState) or (csDesigning in ComponentState) then Exit; //ShowMessage('TClDbGrid.WMSize'); //Ajusta o tamanho das colunas do grid, quando o formulário é maximizado //para não sobrar espaços em branco dentro do grid TamanhoTotal := 0; With Columns do begin for i := 0 to Count -1 do if Items[i].Visible then Inc(TamanhoTotal, Items[i].Width +1); // +1 pq tem a linha que separa a coluna if ((Width - LARGSCROOL) > TamanhoTotal) and (TamanhoTotal > 0) then begin Dif := (Width - LARGSCROOL) - TamanhoTotal; // contém a diferença a ser ratiada nas colunas do dbgride Aux := Dif; for i := 0 to count - 1 do if Items[i].Visible then begin Rateio := Dif * (items[i].Width / TamanhoTotal); Items[i].Width := Items[i].Width + Round(Rateio); Aux := Aux - Round(Rateio); end; Items[count - 1].Width := Items[count - 1].width + Aux; // última coluna recebe uma possível diferença end else if (Width - LARGSCROOL) < TamanhoTotal then //Restaurando o tamanho, depois de ter maximizado for i := 0 to count - 1 do if Items[i].Visible then Items[i].Width := FTamanhoColunas[i]; end; Deve ter código sobrando aí no meio, pois tenho várias outras funcionalidades implementadas. Mas é só tirar o que não compilar. Att, Celso Lorenzetti Analista de Sistemas msn: [EMAIL PROTECTED] -------------------------------------------------------------- SysRS Tecnologia da Informação Ltda. www.sysrs.com.br ----- Original Message ----- From: Bruno Antonio Ribeiro de Souza To: Grupo Delphi Sent: Tuesday, April 24, 2007 10:00 AM Subject: [delphi-br] Resize na coluna do DBGrid Olá amigos Estou desenvolvendo uma aplicação que em todos os forms se usa um DBGrid... gostaria de saber se tem como dar um resize nas _*colunas*_ para que ele se ajuste ao tamanho do DBGrid... ... Estou utilizando MDI e tem grid que tem 3 colunas, outro Grid 4 colunas... Então fica muito estranho quando tem 3 colunas e um espaço em branco depois até terminar o Grid... Obrigado Bruno Souza CEPEA - Centro de Estudos Avançados em Economia Aplicada ESALQ/USP [As partes desta mensagem que não continham texto foram removidas]