Форум: "Базы";
Текущий архив: 2006.08.13;
Скачать: [xml.tar.bz2];
ВнизКак отследить изменение размеров столбцов в TDBGrid Найти похожие ветки
← →
menart © (2006-06-01 19:59) [0]Cобственно сабж!
Заранее спасибо за помощь
← →
sniknik © (2006-06-01 22:24) [1]можно так. поскольку события такого нет, то его придется сделать...
для начала скопируй к себе в папку файл DBGrids.Pas, не забудь рядом лежащий DBGrids.res, после подключи его к проекту (кнопка + на палитре). теперь можно его менять ...
ищеш описание TColumn, добавляеш пару строк (выделено жирным)TColumn = class(TCollectionItem)
private
FField: TField;
...
FStored: Boolean;
FOnColumnResize: TNotifyEvent;
procedure FontChanged(Sender: TObject);
...
property Showing: Boolean read GetShowing;
property OnColumnResize: TNotifyEvent read FOnColumnResize write FOnColumnResize;
published
...
end;
в процедуре SetWidth однуprocedure TColumn.SetWidth(Value: Integer);
var
Grid: TCustomDBGrid;
TM: TTextMetric;
DoSetWidth: Boolean;
begin
DoSetWidth := IsStored;
...
Changed(False);
if Assigned(FOnColumnResize) then FOnColumnResize(Self);
end;
end;
использоватьTForm1 = class(TForm)
DBGrid1: TDBGrid;
....
procedure FormCreate(Sender: TObject);
private
procedure ColumnResize(Sender: TObject);
public
end;
procedure TForm1.ColumnResize(Sender: TObject);
begin
with TColumn(Sender) do
Label1.Caption:= Title.Caption + " : " + IntToStr(Width);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
DBGrid1.Columns[0].OnColumnResize:= ColumnResize; //какие нужны
...
//DBGrid1.Columns[n].OnColumnResize:= ColumnResize;
end;
все. но лучше так не делать... ;) лучше поменять причину, ту отчего этого захотелось.
← →
MsGuns © (2006-06-02 13:17) [2]>все. но лучше так не делать... ;) лучше поменять причину, ту отчего этого захотелось.
Слова не мальчика, но мужа
;)
← →
menart © (2006-06-03 16:58) [3]СПАСИБО БОЛЬШОЕ!
> все. но лучше так не делать... ;) лучше поменять причину,
> ту отчего этого захотелось.
А как лучше сделать, чтобы запомнить на сколько изменился размер колонки, что бы потом установить такой же при обращении к этой же таблице?
← →
sniknik © (2006-06-03 17:40) [4]зачем вообще в таком случае отслеживать изменения в процессе? у тебя же есть место где начало/конец "обращения"? не знаю что ты под этим подразумеваеш, но допустим открытие закрытие формы на которой лежит грид, вот там и запоминай/восстанавливай размер всех, неважно менялся он или нет, будет гораздо менее напряжно для системы чем отслеживать каждое изменение каждой колонки юзером.
или сделать сохранение настроек кнопкой, захотел сохранить изменения - нажал, нет останется как было.
← →
menart © (2006-06-03 20:50) [5]В принципе сейчас так и делаю, просто думал что так будет правильнее.
Еще раз спасибо за совет
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2006.08.13;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.035 c