Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.02.11;
Скачать: [xml.tar.bz2];

Вниз

DBGrid   Найти похожие ветки 

 
Есипенко   (2002-01-12 00:59) [0]

Уважаемые мастера! Подскажите пожалуйста начинающему как програмно изменить порядок следования столбцов в DBGrid и
как повесить одно PopupMenu на поле данных а второе PopupMenu
на заголовки столбцов?
Буду признателен за ответы.


 
Sergey13   (2002-01-14 11:42) [1]

1. DBGrid отображает то что есть в таблице или запросе. Поэтому менять порядок надо при выборке данных. Применять для этого индексы(для Table) или предложение ORDER BY (для Query).
2. PopupMenu врядли удастся повесить на разные части ОДНОГО контрола без извратов.


 
TonnyS   (2002-01-14 12:31) [2]

Если через Query, то порядок столбцов в DBGrid зависит от порядка полей в SELECT:
SELECT * FROM mytable - так как в таблице,
SELECT Name,Fam,year FROM MyTable - уже в такой последовательности.

Popup: отлавливаеш OnMouseDown DBgrid, по позиции курсора определяеш номер столбца, соответственно обрабатываеш попуп-меню (какие-то пункты может невидимыми сделать надо) и вручную его раскрываеш.


 
SergVlad   (2002-01-14 13:42) [3]

Порядок можно задавать и после визуализации данных в DBGid.
Последовательно пробежаться по всем полям tb или query (или видимым или нужным) и установить новые индексы
qu.Fields[i].Index := newidx;


 
evgeg   (2002-01-15 20:57) [4]

> Sergey13, TonnyS
Ну вы даете!
Переоткрывать запрос, чтобы просто поменять порядок столбцов!

> SergVlad
Уже лучше, но привязываемся к набору данных, а не к сетке. А если одну набору соответсвует несколько сеток?

Есть такое свойство TDBGrid.Columns. В Дельфи 2 нельзя у него нельзя напрямую менять порядок столбцов (что странно, так как перетаскивать стольцы мышью в run-time можно),
но можно воспользоваться назначением TDBGrid.Columns.Items [i].FieldName.
Например, меняем i и k-й столбцы:


var s: string;
begin
s := DBGrid1.Columns.Items [i].FieldName;
DBGrid1.Columns.Items [i].FieldName := DBGrid1.Columns.Items [k].FieldName;
DBGrid1.Columns.Items [k].FieldName := s;
end;


IMHO в старших версиях Дельфи DBGrid.Columns более удобен.
Им и надо пользоваться.


 
evgeg   (2002-01-15 20:58) [5]

Поправка

> IMHO в старших версиях Дельфи DBGrid.Columns более удобен.

IMHO в старших версиях Дельфи DBGrid.Columns должен быть более удобен.


 
SergVlad   (2002-01-15 21:09) [6]

Ok
Важны правильные альтернативы.



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2002.02.11;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.006 c
3-32127
nuk
2002-01-15 15:31
2002.02.11
поиск в DBLockupCombobox


1-32209
Satrap
2002-01-24 10:19
2002.02.11
Application.OnException


1-32252
67108864
2002-01-26 19:09
2002.02.11
Console - textcolor.


1-32217
Do№
2002-01-24 19:27
2002.02.11
Изменение регистра символов


1-32265
Zuvom
2002-01-25 13:34
2002.02.11
Копирование из файла в файл





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