Como congelar uma coluna do TDBGrid
Normalmente quando deixo algum campo em edição de um grid eu congelo os outros, não em todos os caso pois em alguns um simples readonly resolve, mas e para aqueles casos que não se pode mexer na colunas? Então temos que fazer o congelamento delas para se apenas alterado determinadas colunas. type
THack = class(TDBGrid);
TFTabOrder = class(TForm)
end;
procedure TFTabOrder.DBGrid1ColEnter(Sender: TObject);
begin
if (THack(DBGrid1).SelectedIndex = 0) then begin
THack(DBGrid1).LeftCol := 2;
THack(DBGrid1).SelectedIndex := 1;
end;
end;
procedure TFTabOrder.DBGrid1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
if (Key = VK_Left) and (THack(DBGrid1).SelectedIndex = 1) then
Key := VK_Clear;
end;
procedure TFTabOrder.DoCreate;
begin
inherited;
THack(DBGrid1).Columns[0].ReadOnly := True;
THack(DBGrid1).FixedCols := 4;
end;
Exemplo: Download do exemplo

0 comentários:
Postar um comentário