Обсуждение возникших проблем, предложений и ошибок MyDAC компонентов
-
MrKreDo
- Сообщения: 2
- Зарегистрирован: Пн 21 ноя 2011 13:16
-
Контактная информация:
Сообщение
MrKreDo » Пн 05 дек 2011 21:23
Добрый вечер.
Пытаюсь сделать на основе выведенных данных, блокировать нужный Label.
В данный момент блокируется TLabel1, а второе значение TLabel6 не блокируется. ( не ставится переменная Enabled на false ).
Неоходимо сделать так что бы TLabel1 и TLabel6 , при совпадении ставилось значение Enabled:=false.
Код: Выделить всё
MyQuery6.SQL.Clear;
MyQuery6.SQL.Add('SELECT * FROM `soft_admin_access` WHERE `id_user`="'+MyQuery5.FieldByName('id').AsString+'"');
MyQuery6.Execute;
MyQuery6.Open;
while not (MyQuery6.Eof) do
begin
if (MyQuery6.FieldByName('category').AsString = 'avto_vkl') then
begin
TLabel6.Enabled:=false;
end else
begin
TLabel6.Enabled:=true;
end;
if (MyQuery6.FieldByName('category').AsString = 'public1') then
begin
TLabel1.Enabled:=false;
end else
begin
TLabel1.Enabled:=true;
end;
MyQuery6.Next;
Спасибо.
-
AndreyZ
- Devart Team
- Сообщения: 328
- Зарегистрирован: Чт 08 сен 2011 13:18
Сообщение
AndreyZ » Вт 06 дек 2011 10:37
Здравствуйте,
Если Вы хотите определить существуют ли категории avto_vkl и public1 в таблице soft_admin_access для пользователя id_user и отразить это на форме установкой свойств TLabel.Enabled в False, Вам следует использовать следующий код:
Код: Выделить всё
MyQuery6.SQL.Clear;
MyQuery6.SQL.Add('SELECT * FROM `soft_admin_access` WHERE `id_user`="'+MyQuery5.FieldByName('id').AsString+'"');
MyQuery6.Open;
TLabel1.Enabled := True;
TLabel6.Enabled := True;
while not (MyQuery6.Eof) do begin
if (MyQuery6.FieldByName('category').AsString = 'avto_vkl') then
TLabel6.Enabled := False;
if (MyQuery6.FieldByName('category').AsString = 'public1') then
TLabel1.Enabled := False;
MyQuery6.Next;
end;
Ваш код в данном случае приведет к ошибочным результатам. Например, если последняя запись в MyQuery6 содержит категорию отличную от avto_vkl и public1, то обе Ваши метки будут иметь свойство Enabled=True, хотя эти категории были в предыдущих записях. Если Вам нужна другая функциональность, опишите ее подробнее и мы попытаемся Вам помочь.
-
MrKreDo
- Сообщения: 2
- Зарегистрирован: Пн 21 ноя 2011 13:16
-
Контактная информация:
Сообщение
MrKreDo » Вт 06 дек 2011 20:38
AndreyZ писал(а):Здравствуйте,
Если Вы хотите определить существуют ли категории avto_vkl и public1 в таблице soft_admin_access для пользователя id_user и отразить это на форме установкой свойств TLabel.Enabled в False, Вам следует использовать следующий код:
Код: Выделить всё
MyQuery6.SQL.Clear;
MyQuery6.SQL.Add('SELECT * FROM `soft_admin_access` WHERE `id_user`="'+MyQuery5.FieldByName('id').AsString+'"');
MyQuery6.Open;
TLabel1.Enabled := True;
TLabel6.Enabled := True;
while not (MyQuery6.Eof) do begin
if (MyQuery6.FieldByName('category').AsString = 'avto_vkl') then
TLabel6.Enabled := False;
if (MyQuery6.FieldByName('category').AsString = 'public1') then
TLabel1.Enabled := False;
MyQuery6.Next;
end;
Ваш код в данном случае приведет к ошибочным результатам. Например, если последняя запись в MyQuery6 содержит категорию отличную от avto_vkl и public1, то обе Ваши метки будут иметь свойство Enabled=True, хотя эти категории были в предыдущих записях. Если Вам нужна другая функциональность, опишите ее подробнее и мы попытаемся Вам помочь.
Спасибо. Код работает как надо.
-
AndreyZ
- Devart Team
- Сообщения: 328
- Зарегистрирован: Чт 08 сен 2011 13:18
Сообщение
AndreyZ » Ср 07 дек 2011 11:25
Мы рады что смогли Вам помочь. Пишите нам если у Вас возникнут дальнейшие вопросы по MyDAC.