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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.05.2011, 00:42   #1
VIK_aka_TOR
Участник клуба
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Сообщений: 1,578
Сообщение создание 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
По умолчанию

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

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


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

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

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

Код:
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,578
По умолчанию

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

Цитата:
Сообщение от 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,578
По умолчанию

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

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

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

Цитата:
Сообщение от 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,578
По умолчанию

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


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


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