![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
DBGrid как программно удалять столбцы из таблицы [D5, dBase, FoxPro]
Алексей Мэрфи © (2003-10-03 07:59:00)
Будьте, добры подскажите как программно удалить столбцы из DBGrid во время работы приложения. Заранее благодарен.
Алексей Мэрфи (2003-10-06 09:27:00) [1]
Благодарю,Sergey13 © , у меня задача большая, как раз такой момент придеться отрабатывать когда приступлю к следующим формам документов.
Sergey13 (2003-10-06 09:11:00) [2]
Завтра получилось была суббота, поэтому продолжаю в понедельник. 8-)
У меня была задачка с "поворотом грида", когда число колонок и строк - результаты разных запросов. Решал так. На отдельной форме расположил пустой гридЕХ (я только с ним работаю теперь) с привязкой к пустому датасету (RxMemoryData). Отдизайнил его расположение и прописал обработчики на "красивость".
Потом заполнял датасет данными из запросов. Потом в цикле по полям
var nc:TColumnEh;
a_col: array of col;
......
for i:=0 to length(a_col)-1 do
begin
nc:=dbg2.Columns.Add;
nc.FieldName:=md_var.Fields.Fields[4+i].FieldName;
nc.Width:=120;
nc.Title.Caption:=a_col[i].nt;
nc.Checkboxes:=True;
nc.Title.TitleButton:=True;
nc.KeyList.Append("1");
nc.KeyList.Append("0");
end;
.......
Это конечно не совсем те условия что у тебя, но принцип тот же.
Алексей Мэрфи (2003-10-06 07:23:00) [3]
Всем огромное спасибо за помощь, проблема решена, через Grid visible = false так и не получилось, KDS © подсказал что у Table Field есть так же Visible, я об этом как то и не думал, теперь все работает. Леван варшанидзе на твой вопрос отвечаю: wwDBGrid из Info Power 3000 имеет гораздо больше возможностей по работе с наборами данных и просто кучу настроек интерфейса, поработав с ними ни к какому другому Гриду ты уже не вернешься, я перепробовал штук 7 разных коипонент но на мой взгляд этот лучший.
P.S. Огромное спасибо всем мастерам и разработчикам сайта >> лучший Delphi сайт во всем Инете.
Леван варшанидзе (2003-10-04 14:46:00) [4]
Кстати, а чем лучше wwDbgrid ?
KDS (2003-10-04 13:02:00) [5]
Sergey13 прав! не морочте голову
Table1Field1.visible:=False;
// обратись к обьекту поля по имени и управляй его свойством видим/невидим
MsGuns (2003-10-03 16:11:00) [6]
Попробуй в дизайне не связывать грид с датасорсом, а сделать это в ране.
Алексей Мэрфи (2003-10-03 14:33:00) [7]
Help этот уже смотрел, Grid не наследует этот метод, какой то подобный метод в этом, в общем то не плохом Гриде, также не был обнаружен такая вот проблема блин, почти весь последний рабочий день на текущей неделе, убил на эту штуку, все равно всем спасибо за искреннее участие., может есть еще мысли.
MsGuns (2003-10-03 13:51:00) [8]
RebuildColumns
Deletes existing columns and generates new columns from the dataset associated with the grid.
procedure RebuildColumns;
Description
RebuildColumns initializes the TDBGridColumns object by deleting all existing columns, then creating new ones from the grid’s associated dataset. If the grid is not connected to a dataset, RebuildColumns simply deletes any existing columns.
Метод класса TDBGridColumns. Посмотри, не наследует ли его твой грид.
Алексей Мэрфи (2003-10-03 13:23:00) [9]
Пробовал уже, если 0 , то ширина не меняется если единица все равно видать, запарился уже
Vick (2003-10-03 13:20:00) [10]
>Алексей Мэрфи
А если попробовать
wwDBGrid1.Columns[1].DisplayWidth:=0
Алексей Мэрфи (2003-10-03 12:33:00) [11]
Grid1.Columns.RebuildColumns;
пишет нужно ему [] а нашел он .
Grid1.Columns[0].RebuildColumns;
пишет не понимаю RebuildColumns
вроде ерунда какая то и вопрос плевый, стандартными методами раньше делал, а теперь от wwDBGrida отказываться уже поздно.
SOS!!!
MsGuns (2003-10-03 12:04:00) [12]
xxGrid.Columns.RebuildColumns ?
Sergey13 (2003-10-03 11:58:00) [13]
У меня инет кончается. Если ни кто не поможет - жди до завтра.
Алексей Мэрфи (2003-10-03 11:55:00) [14]
Спасибо Sergey13 © попробую, если несложно отпиши как бы ты это сделал, в смысле пример кода, в любом случае благодарю!!!
Sergey13 (2003-10-03 11:03:00) [15]
2Алексей Мэрфи (03.10.03 10:51) [5]
>Grid динамически вяжется с наборами (разными) во время работы приложения.
Так нафига тебе стирать колонки. Убей старый экземпляр, создай новый пустой, создай поля-колонки.
Алексей Мэрфи (2003-10-03 10:51:00) [16]
Спасибо всем откликнувшимся, дело в том , что я использую не стандартный Grid а wwDBGrid из набора InfoPower 3000. Visible не работает Destroy вызывает исключение. А, насчет того, что бы сначала создать в Editor"е Grid динамически вяжется с наборами (разными) во время работы приложения.
Sergey13 (2003-10-03 09:45:00) [17]
Может хватит Visible:=False? Или под корень надо?
LexXP (2003-10-03 08:45:00) [18]
Для того чтобы удалялся столбец надо сначало в Columns Editor"e добавить столбцы таблицы
DenK_vrtz (2003-10-03 08:42:00) [19]
DBGrid1.Columns[0].Destroy
LexXP (2003-10-03 08:32:00) [20]
DBGrid1.Columns.Delete(1)