Последняя версия DataExpress 3 beta от 7 декабря 2019 года.
Изображение Скачать | Изображение Что нового?
См. также: Энциклопедия DX | Форум на develop-soft | Песочница
ИзображениеИзображениеИзображение

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

Все о том как сделать что-то с помощью скриптов.
zeyram
Интересующийся
Сообщения: 191
Зарегистрирован: Пн июн 26, 2017 1:43 pm

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

Сообщение zeyram » Пн июн 26, 2017 1:52 pm

Помогите мне пожалуйста:
У меня есть такой код в основной форме. При открытии выделенной записи в базе данных по умолчанию на флажке (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;

Аватара пользователя
admin
Разработчик
Сообщения: 4630
Зарегистрирован: Пн мар 14, 2016 11:32 am
Откуда: Ленинградская
Благодарил (а): 20 раз
Поблагодарили: 96 раз

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

Сообщение admin » Пн июн 26, 2017 6:47 pm

В обработчике события формы OnAfterScroll делайте проверку значения флажка. И в зависимости от значения показывайте или скрывайте поле. OnAfterScroll - это событие, возникающее после перехода на запись.

zeyram
Интересующийся
Сообщения: 191
Зарегистрирован: Пн июн 26, 2017 1:43 pm

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

Сообщение zeyram » Пн июн 26, 2017 7:05 pm

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

Аватара пользователя
YurAnt
Эксперт
Сообщения: 3352
Зарегистрирован: Чт апр 13, 2017 8:57 am
Поблагодарили: 4 раза
Контактная информация:

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

Сообщение YurAnt » Пн июн 26, 2017 7:07 pm

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

...

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

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

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

zeyram
Интересующийся
Сообщения: 191
Зарегистрирован: Пн июн 26, 2017 1:43 pm

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

Сообщение zeyram » Пн июн 26, 2017 7:25 pm

:( :( :( у меня получился следующий код:

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 будет показано, а где-то нет ....
ПОМОГИТЕ !!!!!!!! исправьте мой код и напишите как он должен выглядеть......

Аватара пользователя
YurAnt
Эксперт
Сообщения: 3352
Зарегистрирован: Чт апр 13, 2017 8:57 am
Поблагодарили: 4 раза
Контактная информация:

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

Сообщение YurAnt » Пн июн 26, 2017 7:41 pm

А Вы очень... темпераментный человек... Жуть представить - что будет дальше.

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

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 - отвечает за доступность флажка.
Изображение

zeyram
Интересующийся
Сообщения: 191
Зарегистрирован: Пн июн 26, 2017 1:43 pm

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

Сообщение zeyram » Пн июн 26, 2017 7:49 pm

:D :D :D :D :D
УРАААА !!!!! ОГРОМНЕЙШЕЕ СПАСИБО......всё раротает, как я и хотел .......

neitri
Мастер скриптов
Сообщения: 539
Зарегистрирован: Пн фев 13, 2017 5:42 pm

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

Сообщение neitri » Пн июн 26, 2017 7:50 pm

Или так.

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

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

procedure Form_Create;
begin
Self.OnAfterScroll :=@ ClickCheckBox1;
dxCheckBox1.OnChange:=@ ClickCheckBox1;
end;
Помогли Тебе. Помоги проекту.
Реквизиты помощи Вы можете найти в окне "О программе"

Аватара пользователя
YurAnt
Эксперт
Сообщения: 3352
Зарегистрирован: Чт апр 13, 2017 8:57 am
Поблагодарили: 4 раза
Контактная информация:

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

Сообщение YurAnt » Пн июн 26, 2017 7:55 pm

Кстати да. Вариант neitri более оптимальный. (Сам сидел думал - как "развернуть"... Забыл, что есть not :) )
Изображение