Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
2-1153896858
Ironman83
2006-07-26 10:54
2006.08.13
Получение файла по сети.


15-1153240882
OSokin
2006-07-18 20:41
2006.08.13
Мертвое железо


15-1152956535
PSPF2003
2006-07-15 13:42
2006.08.13
Эмулятор ОС


15-1152911962
Marser
2006-07-15 01:19
2006.08.13
Вынесен вердикт суда по делу четырех суперклубов.


3-1149505937
WhiteBarin
2006-06-05 15:12
2006.08.13
Где взять FastReport





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский