Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вкл/Выкл одной кнопкой? Как можно осуществить такую задачу? 
:(
    Опции темы
EvilProgrammer
Дата 5.6.2007, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 18.7.2006

Репутация: нет
Всего: нет



Понимаю, что вопрос детский, но все же ответ на него найти не смог. Помогите пожалуйста! 
Знаю что для этого используется SpeedButton, но как именно?  smile 
PM MAIL   Вверх
Rodman
Дата 5.6.2007, 15:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 7
Всего: 122



Код

 SpeedButton1->Enabled= False;   

PM MAIL WWW Skype GTalk YIM MSN   Вверх
Fazil6
Дата 5.6.2007, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1653
Регистрация: 3.5.2006
Где: Минск

Репутация: 11
Всего: 60



Цитата(EvilProgrammer @  5.6.2007,  15:54 Найти цитируемый пост)
Знаю что для этого используется SpeedButton, но как именно?

ЭТО - то о чем я подумал? Я никогда для ЭТОГО не пользовался SpeedButton.
Может всетаки CheckBox ?
PM MAIL   Вверх
EvilProgrammer
Дата 5.6.2007, 16:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 18.7.2006

Репутация: нет
Всего: нет



Пример:
Мы хотим соединитьсяс БД. Нажимае кнопку "Соединиться" Программа выполняет соединение и в тот же момент кнопка меняет свой каптион на "Отключиться" 
Т.е. при повторном нажатии соединение должно разорваться.
PM MAIL   Вверх
Fazil6
Дата 5.6.2007, 16:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1653
Регистрация: 3.5.2006
Где: Минск

Репутация: 11
Всего: 60



Код

const String in_name("Подключить");
const String out_name("Отключить");

void Connect()
{
}

void Disconnect()
{
}
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
    Button1->Caption = in_name;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
    TButton *b = dynamic_cast<TButton*>(Sender);
    if(!b) return;

    if(b->Caption == in_name)
    {
        b->Caption = out_name;
        Connect();
    }
    else
    {
        b->Caption = in_name;
        Disconnect();
    }
}


PM MAIL   Вверх
Greeen
Дата 5.6.2007, 16:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 710
Регистрация: 13.8.2006
Где: Петербург

Репутация: нет
Всего: 18



EvilProgrammer, в следующий раз среду лучше указывать...


--------------------
Подпись больше не нужна
PM MAIL ICQ Skype   Вверх
vinter
Дата 5.6.2007, 16:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Explorer
****


Профиль
Группа: Завсегдатай
Сообщений: 2735
Регистрация: 1.4.2006
Где: Н.Новгород

Репутация: нет
Всего: 56



интересно а почему этот вопрос в общих вопросах? ты хоть среду разработки бы указал...


--------------------
Мой блог
PM MAIL WWW   Вверх
Rockie
Дата 5.6.2007, 17:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1143
Регистрация: 23.4.2006

Репутация: нет
Всего: 31



EvilProgrammer, если можно - анализируй состояние кнопки, либо поставь флажок и при нажатии на кнопку инвертируй его. Example:
Код

// в классе формы
bool flag = true;

// в методе нажатия кнопки
{
    if(flag)
            {// соединиться
            }
    else
           { // отсоединиться
           }

    flag = !flag;
}





--------------------
Чтобы иметь большой гардероб - надо иметь большой гардероб.
PM   Вверх
threef
Дата 5.6.2007, 20:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 375
Регистрация: 27.10.2005
Где: Запорожье

Репутация: нет
Всего: 10



В MFC для этого меняют название кнопки
Код

void OnButton()
{
   static bool connected=false;

   if( !connected)
   {
              Button->SetWindowText("Disconnect");
              Connect();
    }
     else
   {
              Button->SetWindowText("Connect");
              Disconnect();
    }
     connected=!connected;


PM MAIL   Вверх
Klin
Дата 5.6.2007, 22:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1938
Регистрация: 7.10.2002
Где: Краснодар

Репутация: 20
Всего: 25



Реализовать действительно просто:

Код

if (((TButton*) Sender)->Tag == 0) /* ваше дествие при состоянии №0 */;
else /* ваше дествие при состоянии №1 */;
((TButton*) Sender)->Tag = abs(((TButton*) Sender)->Tag-1);


Автор упоминал SpeedButton, я так понимаю, что он имеел ввиду, что на кнопке должна быть картинка, которая бы изменялась. Для такой цели можно использовать RxSwitch (или как-то так) из библиотеки RxLib - выглядит как выключатель. Назначаються два действия для обоих состояний (вкл/выкл) и картинки для этих состояний. 


--------------------
Я человек - попробуйте обвинить меня за это.
PM MAIL   Вверх
EvilProgrammer
Дата 6.6.2007, 10:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 18.7.2006

Репутация: нет
Всего: нет



Среда Delphi
PM MAIL   Вверх
pandrew
Дата 6.6.2007, 12:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 213
Регистрация: 27.3.2006

Репутация: 3
Всего: 3



Цитата(EvilProgrammer @  5.6.2007,  15:54 Найти цитируемый пост)
Знаю что для этого используется SpeedButton, но как именно?

У SpeedButton задаем AllowAllUp=true и GroupIndex отл. от нуля. Неплохо бы нарисовать четыре Glypha.
В событии OnClick кнопки анализируем свойство Down. Здесь же можно менять Caption.

PM MAIL   Вверх
Klin
Дата 6.6.2007, 18:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1938
Регистрация: 7.10.2002
Где: Краснодар

Репутация: 20
Всего: 25



Цитата(EvilProgrammer @  6.6.2007,  11:36 Найти цитируемый пост)
Среда Delphi


EvilProgrammer, рад видеть, то что наш раздел пользуется популярностью - не зависимо от того, относится ли вопрос к разделу smile




--------------------
Я человек - попробуйте обвинить меня за это.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0601 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.