DBGrid как да премахнете програмно колони от таблица
Моля, кажете ми как програмно да премахвам колони от DBGrid, докато приложението работи. Благодаря предварително.
За да изтриете колона, първо трябва да добавите колони на таблица в редактора на колони „e
Може би Visible:=False е достатъчно? Или е необходимо до root?
Благодаря на всички, които отговориха, факт е, че не използвам стандартния Grid, а wwDBGrid от комплекта InfoPower 3000. Visible не работи Destroy предизвиква изключение. И за това какво първо да създадете в редактора "e Grid динамично съвпада с набори (различни), докато приложението работи.
2Алексей Мърфи (03.10.03 10:51) [5] >Мрежата е динамично картографирана към (различни) набори, докато приложението работи.
И така, за какво да изтриете колони. Убийте стария екземпляр, създайте нов празен, създайте полетата на колоните.
Интернетът ми свършва. Ако никой не помогне, изчакайте до утре.
Grid1.Columns.RebuildColumns; трябва да напише [], но го намери. Grid1.Columns[0].RebuildColumns; Не разбирам RebuildColumns изглежда някаква глупост и маловажен въпрос, преди го правех със стандартни методи, но сега е твърде късно да откажа wwDBGrida. SOS.
И ако опитате wwDBGr >
Вече е изпробвано, ако е 0, тогава ширината не се променя, ако единицата все още се вижда, вече е износена
Изтрива съществуващи колони и генерира нови колони от набора от данни, свързан с мрежата.
RebuildColumns инициализира обекта TDBGridColumns, като изтрива всички съществуващи колони, след което създава нови от свързания набор от данни на мрежата. Ако мрежата не е свързана с набор от данни, RebuildColumns просто изтрива всички съществуващи колони.
Метод на класа TDBGridColumns. Вижте дали вашата мрежа го наследява.
Помогнете на този вече погледнат, Grid не наследява този метод,някакъв подобен метод в тази, като цяло, не лоша мрежа, също не беше открит такъв проклет проблем, почти целия последен работен ден от текущата седмица, убих за това нещо, благодаря на всички за искреното ви участие все пак., може би все още има мисли.
Опитайте се да не свързвате мрежата с източника на данни в дизайна, но го направете в раната.
Sergey13 е прав! не се заблуждавайте Table1Field1.visible:=False; // препраща към полевия обект по име и управлява неговото свойство visible/invisible
Между другото, защо wwDbgrid е по-добър?
Благодаря на всички за помощта, проблемът е решен чрез Gr >P.S. Много благодаря на всички майстори и разработчици на сайта >> най-добрият сайт на Delphi в интернет.
Утре се оказа събота, така че продължавам в понеделник. 8-) Имах проблем с "завъртане на мрежата", когато броят на колоните и редовете са резултати от различни заявки. Така реших. На отделна форма поставих празен gridEX (сега работя само с него) с обвързване към празен набор от данни (RxMemoryData). Проектирах местоположението му и зададох манипулаторите да бъдат „красиви“. След това попълних набора от данни с данните от заявките. След това в цикъла на полето var nc:TColumnEh; a_col: масив от 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:=Вярно; nc.KeyList.Append("1"); nc.KeyList.Append("0"); край; .
Със сигурност не са точно условията, които имате, но принципът е същият.