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

Вниз

Как динамически создать столбцы в сетке?   Найти похожие ветки 

 
tytus   (2004-12-23 14:34) [0]

Приветствую всех. На форме имеется ExDBGrid - 1 штука (сделал по советам Игоря Шевченка и Елены Филипповой - чтобы заголовки были многострочными). В модуле данных имеется две таблицы TTable , каждая со своим источником данных - DS1 и DS2 соответственно. Двойным кликом на TTable создал столбцы, и в их свойстве DisplayLabel написал что хотел.
В ExDBGrid-e строки разделяются пробелами " ". Так вот мне бы хотелось на выбор менять источники данных для сетки, и чтобы создавались столбцы для сетки с заголовками следующим способом:
for i:=0 to DM1.Main.FieldCount-1 do
begin
   Grid1.Columns.Add;
Grid1.Columns[i].Title.Caption:=DM1.Main.Fields[i].DisplayLabel;
end;
где - Grid1 - ExDBGrid, DM1.Main - модуль данных и таблица.
Необходимость такового нужна из-за того, что два набора данных имеют разное количество полей.
Подскажите, как мне этого добится.
Вышеописанный метод выдает AV.


 
Sergey13 ©   (2004-12-23 14:47) [1]

А непроще сделать 2 грида и играть их видимостью?


 
tytus   (2004-12-23 14:54) [2]

>Sergye13
оно то проще, но хочется сделать как задумано.


 
Sergey13 ©   (2004-12-23 15:01) [3]

Ну тогда:
1 ExDBGrid - что это?
2 Двойным кликом на TTable создал столбцы - в смысле "создал", добавил?
3 В ExDBGrid-e строки разделяются пробелами " ". - это как?
4 Указанный код когда срабатывает?
5 Это весь код?


 
tytus   (2004-12-23 15:27) [4]

>Sergey13
1 ExDBGrid - компонент, потомок от DBGrid-a, все 1 к 1 только добавлена прорисовка заголовка.
2 На этапе разработки, на модуле данных DubleClick на компоненте TTable, откроется редактор, RightClick на пустом месте,  в меню выбираем Add All Fields.
3 Это свойство самого компонента ExDBGrid - если TitleLines>1 то в заголовке сетки текст выводится в две строки, если между первым словом и остальным текстом стоит пробел.
4 Указанный код должен срабатывать на по событию OnClick кнопки ToolButton. (Сейчас в этом обработчике только DM1.DS1.Enabled:=true; А другой кнопкой я делаю ему False; Таким образом данные рисуются/не рисуются в сетке, а сам набор данных TTable всегда активный. Закрываю при выходе).
5 Если всей проги - то не весь. Если обработчика клика на тулбутоне - то весь.
Жду идей.
(Одна есть - Grid.Column.SaveToFile/LoadFromFile пока не пробывал);


 
Sergey13 ©   (2004-12-23 15:44) [5]

>Вышеописанный метод выдает AV
На какой строке? Грид создается в рантайме?


 
tytus   (2004-12-24 19:01) [6]

>Sergey13
Все, разобрался. Забыл столбцам грида присваивать поля набора данных:
for i:=0 to DM1.Main.FieldCount-1 do
   begin    
     Columns.Add;
     Columns[i].Field:=DM1.Main.Fields[i];
     Columns[i].Title.Caption:=DM1.Main.Fields[i].DisplayLabel;
     end;
Вот и все. Потом меняю ширину столбцов и все ок.
Удаляю столбцы след. образом:
for i:=0 to Columns.Count-1 do
 Columns.Delete(0);
Вот и все. Спасибо за внимание.



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

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

Наверх





Память: 0.46 MB
Время: 0.046 c
6-1099985680
lightix
2004-11-09 10:34
2005.01.30
TNMSMTP криво кодирует вложенные файлы?


1-1105513028
leonidus
2005-01-12 09:57
2005.01.30
Контекстный переход внутри chm-справки


1-1106123979
MakNik
2005-01-19 11:39
2005.01.30
состояние файла


1-1106085285
Bobby Digital
2005-01-19 00:54
2005.01.30
RichEdit


14-1105421027
Layner
2005-01-11 08:23
2005.01.30
Здравствуйте! Вот проблемка есть, есть 2 exe файла





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