Главная страница
    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
1-1106208843
ilya39
2005-01-20 11:14
2005.01.30
Свойство типа "record"


4-1102570024
NetDigger
2004-12-09 08:27
2005.01.30
Работа с окнами


3-1103969668
Russko
2004-12-25 13:14
2005.01.30
table is read only


3-1103801711
}|{yk
2004-12-23 14:35
2005.01.30
Где ошибка в триггере?


1-1106205535
snake_r
2005-01-20 10:18
2005.01.30
TEdit и свойство Text





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