Главная страница
    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.037 c
15-1152788177
Джо
2006-07-13 14:56
2006.08.13
Веселые картинки, продолжаем с "Абсолютом" :)


11-1130349488
Vladimir Kladov
2005-10-26 21:58
2006.08.13
Версия 2.19


3-1149653396
apl
2006-06-07 08:09
2006.08.13
Как посдсчитать кол-во записей


1-1151372156
parovoZZ
2006-06-27 05:35
2006.08.13
Экспорт / импорт (dll) функций из класса


2-1153511140
WhiteCat
2006-07-21 23:45
2006.08.13
Проклятый DBGrid





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский