![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Sharl |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 16.8.2003 Репутация: нет Всего: нет |
Программное создание объектов класса TField в TTable или TQuery
Как это делается??? |
|||
|
||||
| Дрюча |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 20.1.2005 Где: Delphi & Pasc al Репутация: нет Всего: 1 |
Создать TField... может так...
Может конкретнее задачу поставите... |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
|
|||
|
||||
| Bes |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 806 Регистрация: 8.12.2004 Репутация: 5 Всего: 7 |
Было бы интересно узнать, для чего это может понадобиться?
Не разу не задавался таким вопросом.... |
|||
|
||||
| Sharl |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 16.8.2003 Репутация: нет Всего: нет |
Конечная цель токова.
Отображать в DBGrid -е только те поля таблицы, которые заданы извне. Т.е. поля должны быть выявлены только по ходу работы приложения. Для этого, думаю, в таблице ( TTable ) эти поля добавлять динамичевки. var f:TIntegerField; begin ff := TIntegerField.Create(Table1); ff.FieldKind := fkData; ff.DisplayLabel := 'NewField'; ff.FieldName := 'aa'; Table1.Fields.Add(ff); ................. Ну и что потом??? Как создать ссылку на это поле ( если конечно таким образом это поле в Table1 создано) в DBGrid -е??? Это сообщение отредактировал(а) Sharl - 21.1.2005, 14:30 |
|||
|
||||
| Дрюча |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 20.1.2005 Где: Delphi & Pasc al Репутация: нет Всего: 1 |
А не проще бы завести какой-нибудь другой идентификатор? Например:
|
|||
|
||||
| Bes |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 806 Регистрация: 8.12.2004 Репутация: 5 Всего: 7 |
2Sharl:
Слушай, дак не проще ли выбирать только нужные поля select-ом если работаешь через Query (что на мой взгляд предпочтительнее) или добавить в dbGrid все поля сразу и потом делать их видимыми-невидимыми.... Или я чего-то не пойму... |
|||
|
||||
| Sharl |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 16.8.2003 Репутация: нет Всего: нет |
Bes и Дрюча
Да, конечно, то что вы описываете, и проще и удобнее, но нужно, чтобы некоторые поля в grid-е показывались как lookup combobox. вот в этом и вся проблема, т.е. нужно динамически менять свойства поля query типа LookupKeyFields и т.п., что и не удается. |
|||
|
||||
| Дрюча |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 20.1.2005 Где: Delphi & Pasc al Репутация: нет Всего: 1 |
А что именно не удается? Создать или еще что-нить... привиди неработающий свой пример...
|
|||
|
||||
| Sharl |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 16.8.2003 Репутация: нет Всего: нет |
Нашел способ для удовлетворения моих нужд.
Это компонент TDBCtrlGrid. На нем можно динамически создавать ту функциональность, что требовалась от меня. Но все-таки , попробуем получить такое. В DB1 базе есть таблица "TA"с полями "F1,F2,F3". В форме есть компонент Table1 : TTable. Table1.DataBaseName := 'DB1'; Table.TableName := 'TA' ; Table1.Fields.Remove(Table1.FieldByName('F1')); Как потом снова запихнуть поле 'F1' обратно в Table1 ? |
|||
|
||||
| Дрюча |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 20.1.2005 Где: Delphi & Pasc al Репутация: нет Всего: 1 |
Обновить таблицу и спихнуть ненужное...
|
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
Table1.Fields.add
попробуй такое или Table1.Fields.insert |
|||
|
||||
| Sharl |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 16.8.2003 Репутация: нет Всего: нет |
Так вот, это все делается вот так.
разумеется 'Lookup field','KeyFields', 'LookupKeyFields', 'LookupResultField' это имена полей таблиц. |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |