Programdaki bir formda kullanıcılar dbgridde sütun ekleme ve kaldırma yapabiliyor genişliklerini değiştirebiliyorlar. Lakin bu işlemler sonucunda grid in sağ tarafında boşluklar kalabiliyor.
Sorunun çözümü için ufak bir araştırma yaptım. Bulduğum bir makale üzerinde ufak değişiklikler yaparak istediğim hale getirdim.
Makalenin orjinalinde istenilen sütunların genişliği ayarlanıyordu ben son sütunun genişliğini ayarlayacak hale getirdim.
Makalenin orjinaline buradan ulaşabilirsiniz. Resimli olarak anlatmış eleman.
benim değiştirdiğim hali ise aşağıda.
Kod: Tümünü seç
Procedure SonSutunGenisliginiAyarla(aGrid:TDBGrid);
var
i : integer;
TotWidth : integer;
VarWidth : integer;
AColumn : TColumn;
VisibleColumns:integer;
begin
TotWidth := 0;
VarWidth := 0;
VisibleColumns := 0;
for i := 0 to -1 + aGrid.Columns.Count do
begin
if aGrid.Columns[i].Visible then
Begin
TotWidth := TotWidth + aGrid.Columns[i].Width;
inc(VisibleColumns);
end;
end;
if dgColLines in aGrid.Options then
TotWidth := TotWidth + VisibleColumns;
if dgIndicator in aGrid.Options then
TotWidth := TotWidth + IndicatorWidth;
VarWidth := aGrid.ClientWidth - TotWidth;
// if korşılaştırması sütunun boyunu küşültmek istenmezse
//if VarWidth>0 then
Begin
aGrid.Columns[aGrid.Columns.Count-1].Width:=aGrid.Columns[aGrid.Columns.Count-1].Width+VarWidth;
End;
End;
Kod: Tümünü seç
SonSutunGenisliginiAyarla(DbGrid1);

Kolay gelsin.