Страница 1 из 1

как сделать чтобы при стоящем флажке объект скрывался только у активной записи ???

Добавлено: Пн июн 26, 2017 1:52 pm
zeyram
Помогите мне пожалуйста:
У меня есть такой код в основной форме. При открытии выделенной записи в базе данных по умолчанию на флажке (dxCheckBox1) не стоит галочка и соответственно числовое поле (dxCalcEdit1) у нас показывается.
По этому коду если мы установим галочку во флажке (dxCheckBox1), то числовое поле (dxCalcEdit1) должно скрыться - и это происходит, но только оно скрывается во всех записях, а мне нужно чтобы оно скрывалось только в выделенной активной записи. Как это сделать напишите правильный код пожалуйста.......

procedure ClickCheckBox1 (Sender: TObject);
begin
if dxCheckBox1.Enabled=True then
begin
dxCalcEdit1.Visible:=false;
end;
end;

procedure Form_Create;
begin
dxCheckBox1.OnClick :=@ ClickCheckBox1;
end;

Re: как сделать чтобы при стоящем флажке объект скрывался только у активной записи ???

Добавлено: Пн июн 26, 2017 6:47 pm
admin
В обработчике события формы OnAfterScroll делайте проверку значения флажка. И в зависимости от значения показывайте или скрывайте поле. OnAfterScroll - это событие, возникающее после перехода на запись.

Re: как сделать чтобы при стоящем флажке объект скрывался только у активной записи ???

Добавлено: Пн июн 26, 2017 7:05 pm
zeyram
Если честно я не очень знаю этот язык и изучаю его методом тыка (проб и ошибок) и сейчас мне не ясно куда нужно вставлять команду OnAfterScroll !?!?! Напишите пожалуйста здесь полный код события обработки формы от начала и до конца, а то я все испробовал, но так ничего не получилось...... :(

Re: как сделать чтобы при стоящем флажке объект скрывался только у активной записи ???

Добавлено: Пн июн 26, 2017 7:07 pm
YurAnt

Код: Выделить всё

...

procedure Form_Create;
begin
Self.OnAfterScroll :=@ ClickCheckBox1;
end;

методом тыка (проб и ошибок)

Надо учить матчасть, иначе в голове эти тыки так и останутся бессмысленными тыками...

Re: как сделать чтобы при стоящем флажке объект скрывался только у активной записи ???

Добавлено: Пн июн 26, 2017 7:25 pm
zeyram
:( :( :( у меня получился следующий код:

procedure ClickCheckBox1 (Sender: TObject);
begin
if dxCheckBox1.Enabled=True then
begin
dxCalcEdit1.Visible:=false;
end;
end;

procedure Form_Create;
begin
Self.OnAfterScroll :=@ ClickCheckBox1;
end;

====================================================
но теперь у меня поле dxCalcEdit1 всегда скрыто и не зависит от того установлен или нет флажок !!!
Что опять не так ??? Я хочу чтобы если флажок был установлен, то поле dxCalcEdit1 было скрыто, а если нет, то оно было показано и так должно быть у каждой записи свое значение флажка и где-то поле dxCalcEdit1 будет показано, а где-то нет ....
ПОМОГИТЕ !!!!!!!! исправьте мой код и напишите как он должен выглядеть......

Re: как сделать чтобы при стоящем флажке объект скрывался только у активной записи ???

Добавлено: Пн июн 26, 2017 7:41 pm
YurAnt
А Вы очень... темпераментный человек... Жуть представить - что будет дальше.

Код: Выделить всё

procedure ClickCheckBox1 (Sender: TObject);
begin
if dxCheckBox1.Checked=True then
dxCalcEdit1.Visible:=false else
dxCalcEdit1.Visible:=true;

end;

procedure Form_Create;
begin
Self.OnAfterScroll :=@ ClickCheckBox1;
dxCheckBox1.OnChange:=@ ClickCheckBox1;
end;


P.S. dxCheckBox1.Enabled - отвечает за доступность флажка.

Re: как сделать чтобы при стоящем флажке объект скрывался только у активной записи ???

Добавлено: Пн июн 26, 2017 7:49 pm
zeyram
:D :D :D :D :D
УРАААА !!!!! ОГРОМНЕЙШЕЕ СПАСИБО......всё раротает, как я и хотел .......

Re: как сделать чтобы при стоящем флажке объект скрывался только у активной записи ???

Добавлено: Пн июн 26, 2017 7:50 pm
neitri
Или так.

Код: Выделить всё

procedure ClickCheckBox1 (Sender: TObject);
begin
dxCalcEdit1.Visible:=not dxCheckBox1.Checked;
end;

procedure Form_Create;
begin
Self.OnAfterScroll :=@ ClickCheckBox1;
dxCheckBox1.OnChange:=@ ClickCheckBox1;
end;

Re: как сделать чтобы при стоящем флажке объект скрывался только у активной записи ???

Добавлено: Пн июн 26, 2017 7:55 pm
YurAnt
Кстати да. Вариант neitri более оптимальный. (Сам сидел думал - как "развернуть"... Забыл, что есть not :) )