Форум: "Начинающим";
Текущий архив: 2016.07.24;
Скачать: [xml.tar.bz2];
ВнизПочему не очищаются Columns in DBGrid? Найти похожие ветки
← →
Drowsy © (2014-11-22 16:48) [0]cnt1 = cnt
Почему?
type
TForm2 = class(TForm)
DBGrid1: TDBGrid;
Button1: TButton;
Label1: TLabel;
Label2: TLabel;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
{$R *.dfm}
procedure TForm2.Button1Click(Sender: TObject);
var cntб сnt1 : integer;
begin
cnt := DBGrid1.Columns.Count;
Label1.Caption := IntToStr(cnt);
DBGrid1.Columns.Clear;
cnt1 := DBGrid1.Columns.Count;
Label2.Caption := IntToStr(cnt1);
end;
end.
← →
Drowsy © (2014-11-24 13:44) [1]Кому не лень, намекните, хотя бы, в чём причина?
← →
кгшзх © (2014-11-24 13:48) [2]в невнимательности и в ненаблюдательности
← →
junglecat © (2014-11-24 14:03) [3]> [1] Drowsy © (24.11.14 13:44)
а грид привязан к датасету? как там вообще колонки создаются: руками или автоматом из датасета?
← →
кгшзх © (2014-11-24 14:11) [4]руками или автоматом роли не играет.
после clear вызывается ResetColumnFieldBindings
и если есть датасор/датасет, то для всех полей вызывается интерналадд.
великая тайна вселенной раскрывается за одну минуту
← →
junglecat © (2014-11-24 14:16) [5]а приведенный код вообще не скомпилиццо. из-за буквы б после cnt
← →
Drowsy © (2014-11-24 14:34) [6]
> после clear вызывается ResetColumnFieldBindings
А где эта процедура ResetColumnFieldBindings?
Ни в хелпах, ни в сорсах не могу найти.
← →
кгшзх © (2014-11-24 14:38) [7]А где эта процедура ResetColumnFieldBindings?
а давай подумаем, где она может быть?
у тебя есть много вариантов ? если да, то какой второй вариант?
← →
Drowsy © (2014-11-24 14:59) [8]второй, наверно,
procedure TCollection.Clear;
begin
if FItems.Count > 0 then
begin
BeginUpdate;
try
while FItems.Count > 0 do
TCollectionItem(FItems.Last).Free;
finally
EndUpdate;
end;
end;
end;
а какой первый?
← →
кгшзх © (2014-11-24 15:29) [9]слушай, чего тебе надо?
клеар добросовестно чистит все твои колонки.
они исчезают.
все.
бесследно.
затем, в связи с тем что к твоему гриду прикручен датасорс и датасет, грид пересоздает все колонки.
по числу полей датасета на который смотрит грид.
теперь про варианты.
вариант единственный - это исходники (а не косметичка жены или туалетный лоток кошки)
но исходников много и живут они в разных модулях
твой клеар - метод тколлекшон из классес пас.
который нихрена не знает ни про грид ни про его колонки.
код который пересоздает колонки живет в модуле, в котором живет грид.
имя модуля назвать или сам найдешь?
← →
icWasya © (2014-11-24 16:29) [10]код который ... живет в модуле, в котором живет грид.
И не CustomGreed, и не StringGreed, а DBGreed
← →
junglecat © (2014-11-24 16:55) [11]> а DBGreed
тогда уж DBCreed
← →
Inovet © (2014-11-24 19:53) [12]> DBCreed
И искать надо по сочетанию символов "DBGrid"
← →
Германн © (2014-11-25 01:21) [13]
> тогда уж DBCreed
<offtop>
Тогда уж лучше Creedence :)
</offtop>
← →
Ega23 © (2014-11-25 15:32) [14]
procedure TForm2.Button1Click(Sender: TObject);
var cntб сnt1 : integer;
begin
cnt := DBGrid1.Columns.Count;
Label1.Caption := IntToStr(cnt);
DBGrid1.DataSource := nil;
DBGrid1.Columns.Clear;
cnt1 := DBGrid1.Columns.Count;
Label2.Caption := IntToStr(cnt1);
end;
← →
Jeer © (2014-11-25 20:55) [15]Самая загадочная програм-фраза :)
DBGrid1.DataSource := nil;
← →
Ega23 © (2014-11-26 12:33) [16]Чего загадочного-то? Датасорс отцепил
← →
junglecat © (2014-11-26 13:11) [17]а для меня загадочна сама постановка вопроса: зачем очищать Columns in DBGrid?
← →
Ega23 © (2014-11-26 13:15) [18]Знавал я одного поциэнта, у него любимой темой было на фрейм набросить датасет, датасорс и дбгрид. А потом этот фрейм в одном экземпляре пихать во все стопицот форм своего приложения.
Вот он там тоже вручную в каждом месте колонки создавал.
← →
junglecat © (2014-11-26 13:40) [19]> фрейм в одном экземпляре пихать во все стопицот форм
вот это я понимаю - тру код реюзинг
← →
Ega23 © (2014-11-26 14:00) [20]Там целый менеджер был написан.
Т.к. "всё равно на экране только один дбгрид в каждый момент времени".
← →
Jeer © (2014-11-26 16:37) [21]>Ega23 © (26.11.14 12:33) [16]
>Чего загадочного-то? Датасорс отцепил
Это я по поводу для ТС.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2016.07.24;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.005 c