Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Функция на все случаи жизни, как сделать:? 
:(
    Опции темы
Doc_d0s
Дата 20.5.2007, 19:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



На форме 30 кнопок, на каждой написано число, надо чтобы по нажатию на определенную кнопку во внешнюю переменную класса формы писалось число которое написано на кнопке.
итак то что у меня есть и то что не работает:
Код

void __fastcall TForm2::Button2Click(TObject *Sender)
{
        etta=StrToFloat(Caption);//Инетересует пространство в котором выполняется функция, и как достать кэпшн //кнопки( на которую нажали)
        Close();
}

--------------------
Админ- это вождь Apache'й :)
PM MAIL ICQ   Вверх
NightXXX
Дата 20.5.2007, 20:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата

etta=StrToFloat(Caption);
 Вот эта строчка вообще не понятно что ты ей хочешь сделать!!?

Первое что мне пришло в голову : 
У каждой кнопки есть номер табуляции вычисляй его и все TabOrder вроде свойство называется вот тебе и будет номер кнопки по значению!

Добавлено через 30 секунд
Эх наверно я чушь написал ((((
PM MAIL ICQ   Вверх
codelord
Дата 20.5.2007, 20:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 777
Регистрация: 7.5.2005
Где: ты моя темноглаза я где?!

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





Цитата(Doc_d0s @  20.5.2007,  15:06 Найти цитируемый пост)
/Инетересует пространство в котором выполняется функция, и как достать кэпшн //кнопки( на которую нажали)

Button2->Caption; 
не подходит?
функция выполняется как член класса в данном случае TForm2


--------------------
Доступен поиск по исходным кодам в GOOGLE.
http://www.google.com/codesearch
PM MAIL   Вверх
skyboy
Дата 20.5.2007, 20:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


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

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



указатель TObject Sender* - это указатель на объект, от которого пришло событие. в твоем случае - Button2.
т.е. правильно так 
Код

etta=StrToFloat(((TButton*)Sender)->Caption);

Цитата(Doc_d0s @  20.5.2007,  18:06 Найти цитируемый пост)
Инетересует пространство в котором выполняется функция

Это не функция. Это метод. 
Цитата(Doc_d0s @  20.5.2007,  18:06 Найти цитируемый пост)
void __fastcall TForm2::Button2Click(TObject *Sender)

Метод класса TForm2. Соотвественно, метод выполняется в пространстве имен объекта класса TForm2 - скорее всего, относительно переменной с именем Form2.
Ты бы про классы сначала почитал хоть чего, а то с мышкокликательством далеко не уйдешь...
PM MAIL   Вверх
codelord
Дата 20.5.2007, 20:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 777
Регистрация: 7.5.2005
Где: ты моя темноглаза я где?!

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



сори не понял суть, решение проблемы в примере ниже.
чтобы получить Caption в примере ниже замени button->Name на button->Caption;
просто там они называются одинаково поэтому использовал Name

Присоединённый файл ( Кол-во скачиваний: 6 )
Присоединённый файл  button.zip 12,97 Kb


--------------------
Доступен поиск по исходным кодам в GOOGLE.
http://www.google.com/codesearch
PM MAIL   Вверх
Doc_d0s
Дата 21.5.2007, 19:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Я Билдер юзаю только когда просят на нем написать...писал в нем мало, потому и спрашиваюsmile
--------------------
Админ- это вождь Apache'й :)
PM MAIL ICQ   Вверх
SenkraD
Дата 21.5.2007, 19:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Doc_d0s, вообще это так делается
Код

void __fastcall TForm2::Button2Click(TObject *Sender)    
{    
        TButton *pSender;
       
        pSender = dynamic_cast<TButton *>(Sender);
        if(TryStrToFloat(pSender->Caption))
        {
                etta = TryStrToFloat(pSender->Caption);
        }
        else
        {
                etta = 0;
        }
        Close();    // а зачем тебе это?
}



--------------------
 Имеющий язык - да не убоится спросить! 
user posted image
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

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

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

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

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


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

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


 




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


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

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