Форум программистов
 
Расширенный поиск
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Новички в программировании > Помощь студентам
Регистрация

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



Ответ
 
Опции темы
Старый 17.05.2011, 00:42   #1
VIK_aka_TOR
Профессионал
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Адрес: Минск
Сообщений: 1,516
Репутация: 502

icq: 554461851
skype: lord_t0r
Сообщение создание OnClick для массива типа Button

приветствую... друзья по коду... столкнулся с проблемой... реализовал создание массива типа Button... вывел кнопку на форму... как создать через код событие OnClick ... что бы по нажатию на кнопку выполнялись определенные действия...

Код:

void __fastcall TForm1::FormCreate(TObject *Sender)
{ int i;
typedef TButton* PButton;
PButton *mass = new PButton[6];

for( int i = 0; i < 6; ++i )
{
mass[i] = new TButton( this );
}
mass[1]->Parent = Form1;
mass[1]->Top = 100;
mass[1]->Left = 100;
mass[1]->Height = 100;
}

за динамический массив прошу не ругать... если кто знает как написать его "статически".. просьба написать... количество кнопок известно заранее... и ещё вопрос... по нажатию на кнопку из массива должна открываться новая форма, в которой появляется инфа из внешних текстовых файлов в зависимости от номера элемента массива типа Button... как отслеживать какая именно кнопка из массива Button нажата? Не хотелось бы писать на каждую кнопку отдельное событие и код... не говоря уже о создании большого числа форм P.S. более 200...

Последний раз редактировалось VIK_aka_TOR; 17.05.2011 в 00:54.
VIK_aka_TOR вне форума   Ответить с цитированием
Старый 17.05.2011, 01:31   #2
nyasha2013
Пользователь
 
Регистрация: 13.05.2011
Сообщений: 38
Репутация: 15
По умолчанию

создай буттн, и укажи в онклике что надо

потом в масиве делай так :
myButton.OnClick:=button1.OnClick


если хочешь можешь сделать буттон1 инвизбл

извините конечно за такой не программистский подход
nyasha2013 вне форума   Ответить с цитированием
Старый 17.05.2011, 01:35   #3
nyasha2013
Пользователь
 
Регистрация: 13.05.2011
Сообщений: 38
Репутация: 15
По умолчанию

а у меня вот не массив.. теперь не знаю как его высвободить (((

Код:

for i:=1 to i do
    begin
         ch:=Tcheckbox.Create(form1);
         ch.OnClick:= s0CB.OnClick;
         ch.Parent:=panel2;
         ch.top:=6;
         ch.left:=i*60;
         ch.Name:='s'+inttostr(i)+'CB';
         ch.tag:=i
    end;
end;

nyasha2013 вне форума   Ответить с цитированием
Старый 17.05.2011, 08:13   #4
VIK_aka_TOR
Профессионал
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Адрес: Минск
Сообщений: 1,516
Репутация: 502

icq: 554461851
skype: lord_t0r
По умолчанию

нашел способ передачи номера массива в другие функции (сделать это через Tag), но для этого нужно сделать массив не локальным а глобальным... где это описывать в С++ Bilder 6??
VIK_aka_TOR вне форума   Ответить с цитированием
Старый 17.05.2011, 08:19   #5
Sparkman
220400
Участник клуба
 
Аватар для Sparkman
 
Регистрация: 21.05.2010
Адрес: Дальний Восток
Сообщений: 726
Репутация: 221
По умолчанию

Цитата:
Сообщение от VIK_aka_TOR Посмотреть сообщение
нашел способ передачи номера массива в другие функции (сделать это через Tag), но для этого нужно сделать массив не локальным а глобальным... где это описывать в С++ Bilder 6??
в заголовочной части (header, файлы с расширением *.h). В билдере правый клик мышкой на заголовке вкладки и выбор заголовочной части (забыл что там написано).

ПС: чтобы присвоить на событие OnClick свой метод, пропиши (объяви) его там же (в заголовочной части) и в таком же формате (__void чегототам (...sender...)) как у метода, который создается для события OnClick (двойной тык мышкой по кнопке).
__________________
Cерьёзной помощи не ждите - помогаю в перерывах на "перекур".
Не существует ничего невозможного для человека, который не собирается ничего делать сам.
Не учите человека, если вы не его учитель.

Последний раз редактировалось Sparkman; 17.05.2011 в 08:22.
Sparkman вне форума   Ответить с цитированием
Старый 17.05.2011, 08:49   #6
VIK_aka_TOR
Профессионал
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Адрес: Минск
Сообщений: 1,516
Репутация: 502

icq: 554461851
skype: lord_t0r
По умолчанию

OnClick уже описал.... ещё вчера... работает... вот только гобальными сделать осталось...
такой вот вопрос... в зависимости от номера массива будут считываться файлы текстового формата... можно ли как то считать файл , название которого будет лежать непосредственно в переменной? предположим что i - номер элемента массива... файл для считывания этго номера будет иметь вид "i-i.txt" ... как это реализовать???
VIK_aka_TOR вне форума   Ответить с цитированием
Старый 17.05.2011, 08:51   #7
Sparkman
220400
Участник клуба
 
Аватар для Sparkman
 
Регистрация: 21.05.2010
Адрес: Дальний Восток
Сообщений: 726
Репутация: 221
По умолчанию

IntToStr .
__________________
Cерьёзной помощи не ждите - помогаю в перерывах на "перекур".
Не существует ничего невозможного для человека, который не собирается ничего делать сам.
Не учите человека, если вы не его учитель.
Sparkman вне форума   Ответить с цитированием
Старый 17.05.2011, 13:07   #8
VIK_aka_TOR
Профессионал
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Адрес: Минск
Сообщений: 1,516
Репутация: 502

icq: 554461851
skype: lord_t0r
По умолчанию

видимо меня не совсем правильно поняли "i-i.txt" пример: 5-5.txt
VIK_aka_TOR вне форума   Ответить с цитированием
Старый 18.05.2011, 02:20   #9
Sparkman
220400
Участник клуба
 
Аватар для Sparkman
 
Регистрация: 21.05.2010
Адрес: Дальний Восток
Сообщений: 726
Репутация: 221
По умолчанию

Цитата:
Сообщение от VIK_aka_TOR Посмотреть сообщение
видимо меня не совсем правильно поняли "i-i.txt" пример: 5-5.txt
Код:

IntToStr(i)+"-"+IntToStr(i)+".txt"

__________________
Cерьёзной помощи не ждите - помогаю в перерывах на "перекур".
Не существует ничего невозможного для человека, который не собирается ничего делать сам.
Не учите человека, если вы не его учитель.
Sparkman вне форума   Ответить с цитированием
Старый 18.05.2011, 11:36   #10
VIK_aka_TOR
Профессионал
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Адрес: Минск
Сообщений: 1,516
Репутация: 502

icq: 554461851
skype: lord_t0r
По умолчанию

точняк... должно прокатить....
ещё такая загвоздка... нужно отследить какая клавиша была нажата... так как OnClick для всех один... не подскажете как это сделать? нашел был старую тему http://programmersforum.ru/showthread.php?t=127530... но никто не отвечает... если кто знает или разобрался... просьба разъяснить...
VIK_aka_TOR вне форума   Ответить с цитированием
Ответ



Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработчик OnClick у массива кнопок MyLastHit Общие вопросы Delphi 15 18.05.2011 11:33
Как остановить выполнение button.onclick? igabenu Общие вопросы Delphi 6 22.01.2011 00:36
Создание массива объектов типа Label levandowskiy Общие вопросы C/C++ 3 21.12.2010 16:20
Запись числа типа инт в ячейку двумерного массива типа char AxenicX Помощь студентам 1 25.09.2009 00:35
OnClick для массива компонентов Dj_smart Компоненты Delphi 5 30.04.2008 14:16




13:13.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

купить трафик


как улучшить посещаемость, а также решения по монетизации сайтов, видео и приложений

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru