Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 27.08.2013
Сообщений: 8

Как на кнопки созданные в рантайме написать процедуру запуска нужной программы

03.09.2013, 17:08. Показов 1321. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
есть форма на которой в oncreate находиться процедура чтения настроек из ini файла. А Именно количество создаваемых в рантайме лэйблов, и столько же кнопок. Имена к каждому лэйблу тоже находятся в ini файле. Объясню - на лэйблы из ини файла выводятся имена программ, напротив лэйблов кнопки, так вот на каждую кнопку в tag из ini файла копируется путь до нужной (для каждой кнопки разной) программы. Вот вопрос - Как на эти кнопки созданные в рантайме написать функцию или процедуру для запуска нужной программы.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.09.2013, 17:08
Ответы с готовыми решениями:

Как в своей программе назначить код для кнопки в рантайме
Вот в QtDesigner бросаем на форму кнопку, дважды кликаем по ней и можно изменить текст Как сделать что-то подобное в своей программе,...

Как очистить созданные кнопки от текста?
Создаю опр. кол-во кнопок в программе for (int i = 0; i < 5; i++) for (int j = 0; j < 5; j++) { ...

Как перекрыть панелью кнопки, созданные на форме (WinForms)
На форме созданы кнопки. В определенный момент появляется panel с background. Так вот этот фон не перекрывает элементы, расположенные на...

8
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
03.09.2013, 17:48
Создаёшь функцию общую для всех
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void __fastcall TForm1::But(int MenuNum)
{
  switch(MenuNum)
{
  case 1:
//прописываешь действие на первую кнопку
  break;
// и т.д
}
 
}
 
//а вызывать будешь её так через Tag
 But(dynamic_cast<TComponent *>(Sender)->Tag);//просто копируешь эту строку в каждую кнопку
В принципе я так думаю....так что могу и ошибаться...
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
03.09.2013, 17:49
В tag кнопки путь к файлу не запишется, - это не строка, а целое. А вообще при создании кнопки нужно указать для ее свойства OnClick функцию (можно самодельную), которая будет запускать программу, соответствующую номеру (вот здесь уместен Tag) из списка.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33394 / 21504 / 8236
Регистрация: 22.10.2011
Сообщений: 36,900
Записей в блоге: 12
03.09.2013, 18:39
Цитата Сообщение от nick42 Посмотреть сообщение
В tag кнопки путь к файлу не запишется, - это не строка, а целое.
Это смотря, как попросить. Размер целого равен размеру указателя на строку (или на класс, содержащий строку), так что очень даже можно записать...
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
03.09.2013, 19:04
Цитата Сообщение от UI Посмотреть сообщение
Это смотря, как попросить. Размер целого равен размеру указателя на строку (или на класс, содержащий строку), так что очень даже можно записать...
Вопрос только зачем так дико извращаться, когда можно просто состряпать фрейм содержаший лебл, кнопку и все что душа пожелает, и добавить в него свои свойства ( например Path )
0
 Аватар для gumi250
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
03.09.2013, 19:27
Поскольку это все создается в рантайме, то фрейм не нужен, можно простым классом обойтись, который будет содержать и кнопку и лэйбл и что угодно, включая ф-ции загрузки и выгрузки из ини файла
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
03.09.2013, 19:38
Цитата Сообщение от gumi250 Посмотреть сообщение
Поскольку это все создается в рантайме, то фрейм не нужен, можно простым классом обойтись, который будет содержать и кнопку и лэйбл и что угодно, включая ф-ции загрузки и выгрузки из ини файла
Так кто мешает фрейм создавать в рантайме, и чем фрейм не класс, но только с возможностью его изменять визуально в дизайн тайме, а не кодом ?

0
 Аватар для gumi250
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
03.09.2013, 19:40
Просто еще 1 вариант. Хочешь фрейм, хочешь класс. Можно даже просто структурку, но хуже.
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
03.09.2013, 19:53
Цитата Сообщение от gumi250 Посмотреть сообщение
Просто еще 1 вариант.
Ну да..

Лучше Фрем тем что можно настраивать его визуально, хуже тем что нарушается инкапсуляция.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.09.2013, 19:53
Помогаю со студенческими работами здесь

Перемещение фигуры (кнопки) мышью в рантайме
В дельфі 7. У меня фігура - это кнопка. В процедуре drag drop для кнопки не получается перевести на машинный язык фразу...

Написать батник для удалённого запуска программы
Товарищи программисты, подскажите пожалуйста, можно ли через батник удалённо запустить программу на другом компьютере? И так же закрыть...

Как вскрыть текст нужной мне программы?
Уже месяц бьюсь над одной проблемкой: как вскрыть текст нужной мне программы? Подскажите, она явно написана на Delphi, а никакие...

Как написать функцию с нужной зависимостью f(x)?
Здравствуйте. Нужно написать функцию f(x), так, чтобы при входных значениях в диапазоне 0..7200 возвращались значения в диапазоне...

Как можно программно, после запуска программы, переместить окно программы на определенные координаты?
Как можно программно, после запуска программы, переместить окно программы на определенные координаты?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru