Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.01.2012, 21:07   #1
tim21701
Пользователь
 
Регистрация: 16.01.2012
Сообщений: 67
Вопрос PopupMenu - свойство Checked...

У PopupMenu есть три MenuItem, все три представлены как RadioItem. Соответственно, можно выбрать лишь один их них, но, есть возможность вообще ничего не выбирать. То есть, значение по умолчанию.
Вот с этим, что-то не пойму, помогите...
Вот как сделано у меня на одном из трех MenuItem (Last7day):

Код:
procedure TForm.Last7dayClick(Sender: TObject);
begin
  Last7day.Checked:=not Last7day.Checked;
    
    if Last7day.Checked = True
       then
    MyQuery2.Active:=True;

begin
    if MyQuery1.Active = True
       then
    MyQuery1.Active:=False end;
begin
    if MyQuery3.Active = True
       then
    MyQuery3.Active:=False end;
end;
По умолчанию у меня работает MyQuery1, если я выбираю в меню один из трех пунктов, то - оно включает соответствующий MyQuery (отключая другие) и всё отображается правильно, всё работает. Но, как сделать так, что бы назад включался MyQuery1, если я опять выбрал Last7day? (тоесть, убрал RadioItem)

Последний раз редактировалось tim21701; 27.01.2012 в 21:10.
tim21701 вне форума Ответить с цитированием
Старый 27.01.2012, 21:26   #2
Кольша
Далеко не
Участник клуба
 
Аватар для Кольша
 
Регистрация: 11.08.2011
Сообщений: 1,512
По умолчанию

исходник кинте или вот:
Код:
if Last7day.Checked
       then begin
   MyQuery2.Active:=false;
   MyQuery1.Active:=true;
   MyQuery3.Active:=False end;
сами вставите
Кольша вне форума Ответить с цитированием
Старый 27.01.2012, 22:09   #3
tim21701
Пользователь
 
Регистрация: 16.01.2012
Сообщений: 67
Восклицание

Кольша спасибо за ответ, но, Вы лишь упростили мой код. Это не решает проблему...

Необходимо заново подключать MyQuery1 - если ни один из пунктов меню не выбран.
Что для этого надо, как это реализовать???

Что то вроде:
Код:
Если отмечено меню Last7day
То отключить MyQuery1 и MyQuery3 и подключить MyQuery2 (как раз то - что Вы написали)
Иначе вернуть MyQuery1 (надо добавить)
Как мне это Иначе добавить?

Последний раз редактировалось tim21701; 27.01.2012 в 22:15.
tim21701 вне форума Ответить с цитированием
Старый 27.01.2012, 22:19   #4
tim21701
Пользователь
 
Регистрация: 16.01.2012
Сообщений: 67
По умолчанию

Всем спасибо. Решил сделать вот так:

Код:
procedure TForm.Last7dayClick(Sender: TObject);
begin
  Last7day.Checked:=not Last7day.Checked;
  if Last7day.Checked = True then
  begin
  MyQuery2.Active:=True;
  MyQuery1.Active:=False;
  MyQuery3.Active:=False
  end
  else begin
  MyQuery1.Active:=True;
  MyQuery2.Active:=False;
  MyQuery3.Active:=False
  end;
end;
tim21701 вне форума Ответить с цитированием
Старый 28.01.2012, 17:45   #5
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Код:
     if Item1.checked then ....
else if Item2.checked then ...
else if Item3.checked then ...
else ...
и общий обработчик
Цитата:
Вот как сделано у меня на одном из трех MenuItem (Last7day):
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
свойство PopupMenu, компонент DBGrid Jene4ka Компоненты Delphi 5 19.12.2011 22:17
Свойство Checked в RadioButton из GroupBox Nesta23 Общие вопросы Delphi 14 25.05.2011 14:24
Правильно определить знак перед строкой и в зависимости от этого выставить checked свойство Человек_Борща Общие вопросы Delphi 9 18.02.2011 01:11
Ranged checked error agarum Общие вопросы Delphi 6 19.09.2010 23:34
CheckListBox checked iz zarosa marisham0612 Общие вопросы Delphi 1 18.12.2009 00:56