DBGrid як програмно видаляти стовпці з таблиці
Будьте ласкаві підкажіть як програмно видалити стовпці з DBGrid під час роботи програми. Заздалегідь вдячний.
Для того, щоб видалявся стовпець, треба спочатку в Columns Editor"e додати стовпці таблиці
Може вистачить Visible: = False? Чи під корінь треба?
Дякую всім, хто відгукнувся, справа в тому, що я використовую не стандартний Grid а wwDBGrid з набору InfoPower 3000. Visible не працює Destroy викликає виняток. А, щодо того, щоб спочатку створити в Editor'е Grid динамічно в'яжеться з наборами (різними) під час роботи програми.
2Олексій Мерфі (03.10.03 10:51) [5] Grid динамічно в'яжеться з наборами (різними) під час роботи програми.
Так нафіга тобі прати стовпчики. Вбий старий екземпляр, створи новий порожній, створи поля-колонки.
У мене інет закінчується. Якщо ніхто не допоможе - чекай до завтра.
Grid1.Columns.RebuildColumns; пише треба йому [] а знайшов він. Grid1.Columns[0].RebuildColumns; пише не розумію RebuildColumns наче дурниця якась і питання плювий, стандартними методами раніше робив, а тепер від wwDBGrida відмовлятися вже пізно. SOS.
Якщо спробувати wwDBGr >
Пробував вже, якщо 0, то ширина не змінюється якщо одиниця все одно бачити, запарився вже
Deletes existing columns and generates new columns from the dataset associated with the grid.
RebuildColumns initializes the TDBGridColumns об'єктом, щоб вилучити всі існуючі columns, будуть створювати нові ones from the grid’s associated dataset. Якщо grid is not connected to a dataset, RebuildColumns simplely deletes any existing columns.
Метод класу TDBGridColumns. Подивися, чи не успадковує його твій грид.
Help цей вже дивився, Grid не успадковує цей метод,якийсь подібний метод у цьому, загалом то не поганому Гриді, також не був виявлений така ось проблема млинців, майже весь останній робочий день на поточному тижні, вбив на цю штуку, все одно всім дякую за щиру участь., може є ще думки .
Спробуй у дизайні не пов'язувати грид із датасорсом, а зробити це у рані.
Sergey13 правий! не морочте голову Table1Field1.visible:=False; // звернися до об'єкта поля на ім'я і керуй його властивістю бачимо/невидимий
До речі, а чим краще wwDbgrid?
Всім велике спасибі за допомогу, проблема вирішена, через Gr >P.S. Велике спасибі всім майстрам та розробникам сайту >> найкращий Delphi сайт у всьому Інеті.
Завтра вийшла була субота, тож продовжую у понеділок. 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.W >nc.Title.Caption:=a_col[i].nt; nc.Checkboxes:=True; nc.Title.TitleButton:=True; nc.KeyList.Append("1"); nc.KeyList.Append("0"); end; .
Це звичайно не зовсім ті умови, що в тебе, але принцип той самий.