0 / 0 / 0
Регистрация: 15.04.2009
Сообщений: 11

OnClick

30.05.2009, 13:59. Показов 5681. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
C++
1
2
3
4
5
6
7
8
9
10
11
int a=0;
void __fastcall TForm1::Image1Click(TObject *Sender)
{
TImage *Image = new TImage(Form1);
Image->Parent = Form1;
Image->Picture->LoadFromFile("file");
Image->OnClick = OnClick; {Image->Picture->LoadFromFile("file2");}
Image->Top =a;a=a+105;
//Как сделать чтобы у каждой новой Image был свой клик
//и в каждом клике создать Image->Picture->LoadFromFile("file2");
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.05.2009, 13:59
Ответы с готовыми решениями:

OnClick непонятно
Привет! у меня есть класс class voin { public TImage *imag; voin(){ imag =new TImage(Form1); ...

OnClick + OnDblClick
Здравствуйте! Есть панелька, хочу сделать 2 события - OnClick и OnDblClick. желаемого результата не получаю. при двойном щелчке сначала...

OnClick на TreeView
Вот такая проблемка. Есть TreeView. По клику мышкой на листе дерева этот лист становится выделенным и происходит его нормальная...

11
Программист TH
 Аватар для DanUnited
292 / 147 / 12
Регистрация: 06.01.2009
Сообщений: 537
30.05.2009, 14:15
Ну чёт я не понял.... всё правильно, только
C++
1
2
3
void __fastcall TForm1::ImageClick(TObject* Sender){
((TImege*)Sender)->Picture->LoadFromFile("File.bmp");
}
И хоть где прописываешь: Image1->OnClick = ImageClick;
0
0 / 0 / 0
Регистрация: 15.04.2009
Сообщений: 11
31.05.2009, 12:53  [ТС]
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
int a=0,b=0;
TImage *Image[1000000];
void __fastcall TForm1::ImaClick(TObject* Sender)
{
Image[b] =new TImage(Form1);
Image[b]->Parent =Form1;
Image[b]->Left = a;a=a+105;
if(b == 0){Image[b]->OnClick = Image0Click;}
if(b == 1){Image[b]->OnClick = Image1Click;}
if(b == 2){Image[b]->OnClick = Image2Click;}
if(b == 3){Image[b]->OnClick = Image3Click;}
//...и так до бесконечности
//if(b == "Безконечности"){Image->OnClick = Image"Безконечности"Click;}
Image[b]->Picture->LoadFromFile("foto\\1.bmp");
b++;
}
 
void __fastcall TForm1::Image0Click(TObject* Sender)
{
Image[0]->Picture->LoadFromFile("foto\\2.bmp");
}
 
void __fastcall TForm1::Image1Click(TObject* Sender)
{
Image[1]->Picture->LoadFromFile("foto\\2.bmp");
}
 
void __fastcall TForm1::Image2Click(TObject* Sender)
{
Image[2]->Picture->LoadFromFile("foto\\2.bmp");
}
 
void __fastcall TForm1::Image3Click(TObject* Sender)
{
Image[3]->Picture->LoadFromFile("foto\\2.bmp");
}
//... и так до бесконечности
void __fastcall TForm1::Image1000000Click(TObject* Sender)
{
Image[1000000]->Picture->LoadFromFile("foto\\2.bmp");
}
/*
Меня интересует вопрос вотакой способ один или можно както подругому написать по проще.
То очень много текста полючается
*/
0
Фрилансер
 Аватар для Black Fregat
3709 / 2082 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
31.05.2009, 13:20
Зачем тебе каждому рисунку назначать отдельный обработчик?
Сделай один на всех:
C++
1
2
3
4
5
void __fastcall TForm1::Image1Click(TObject* Sender)
{
  TImage*img = dynamic_cast<TImage*>(Sender);
  if (img) img->Picture->LoadFromFile("foto\\2.bmp");
}
1
0 / 0 / 0
Регистрация: 15.04.2009
Сообщений: 11
02.06.2009, 15:13  [ТС]
Нужно узнать на какой фотке был клик
При клике на любую Image[b]->Click()
нужно узнать клик произашол Image[2]->Click() или Image[25]->Click()
или Image[45]->Click()
как узнать
0
UNIX-way
 Аватар для Delphin_KKC
712 / 495 / 49
Регистрация: 15.01.2009
Сообщений: 1,720
02.06.2009, 15:25
Свойство Tag выставь для каждой фотки разное и по нему определяй на какой фотке щёлкнули.
C++
1
2
3
4
5
6
void __fastcall TForm1::Image1Click(TObject* Sender)
{
  TImage*img = dynamic_cast<TImage*>(Sender);
  if (img) img->Picture->LoadFromFile("foto\\2.bmp");
 if (img->Tag==1) //тут обработка щелчка по фотке с тегом "1"
}
З.Ы. Сейчас С-Билдера на компе нет, потому по памяти пишу. Но вродь так.
0
Фрилансер
 Аватар для Black Fregat
3709 / 2082 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
05.06.2009, 10:59
Цитата Сообщение от bot666 Посмотреть сообщение
Нужно узнать на какой фотке был клик
Мой код определяет, на какой фотке был клик. Именно она попадает в img
0
UNIX-way
 Аватар для Delphin_KKC
712 / 495 / 49
Регистрация: 15.01.2009
Сообщений: 1,720
05.06.2009, 22:18
Цитата Сообщение от Black Fregat Посмотреть сообщение
Мой код определяет, на какой фотке был клик. Именно она попадает в img
Согласен. Но с оговоркой. Это работает если только надо выполнить какую-то операцию с собственно рисунком на форме (загружать один и тот же файл в разные рисунки, например). А если нужно выполнить какоето другое действие? Например загружать разные файлы для разных рисунков. То как определить номер рисунка на форме?
0
Программист TH
 Аватар для DanUnited
292 / 147 / 12
Регистрация: 06.01.2009
Сообщений: 537
06.06.2009, 09:38
C++
1
2
3
4
5
void __fastcall TForm1::Image1Click(TObject* Sender)
{
TImage *m = ((TImage*)Sender);
ShowMessage(m->Name);//вот те и имя.
}
Чё вы все тупите в этой теме...??
0
 Аватар для QenT
40 / 40 / 8
Регистрация: 29.01.2009
Сообщений: 244
06.06.2009, 13:21
Цитата Сообщение от DanUnited Посмотреть сообщение
C++
1
2
3
4
5
void __fastcall TForm1::Image1Click(TObject* Sender)
{
TImage *m = ((TImage*)Sender);
//вот те и имя.
}
Чё вы все тупите в этой теме...??
Совершенству нет предела
C++
1
ShowMessage(((TImage*)Sender)->Name);
0
Фрилансер
 Аватар для Black Fregat
3709 / 2082 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
06.06.2009, 13:51
А чего это вы замену dynamic_cast на прямое преобразование выдаете за совершенство? Типа вы сами хорошо знаете, что в Sender просто обязан лежать TImage*?

Вообще, для ваших упражнений достаточно приводить к TComponent*
0
0 / 0 / 0
Регистрация: 15.04.2009
Сообщений: 11
30.06.2009, 15:38  [ТС]
Народ ещо одна проблема при перетаскивание фотки полючается так
содал одну фотку потом ещо одну, втоорая фотка она кабы над первый фоте перемещяется, а если перетаскивать 1 фотку через в торую курсор цыпяет 2 фотку дальше перетаскивается 2 фотка а нада чтобы первоя перетаскивалося дальше.
Пробывал delete new вовремя перетаскивание происходили чудеса
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.06.2009, 15:38
Помогаю со студенческими работами здесь

OnClick в WebBrowser'е
Как можно организовать такое событие, как OnClick в WebBrowser'е? Нужно, чтобы например загрузилась страница, на ней кликнули по...

OnClick в Image???
Здравствуйте!!! :) Подскажите пожалуйста как сделать OnClick в Image по нажатию на Enter??? Я делаю так: if (Key == VK_RETURN)...

Выход из обработчика onclick
Добрый день! У меня есть примерно такой код в С++ builder: void __fastcall TForm1::Button1Click(TObject *Sender) { while(1)...

OnClick для Shape
У элемента TShape нет метода OnClick. Как можно проще всего его реализовать подскажите пожалуйста.

Функция OnClick - не работает
Пробовал - не получалось. void __fastcall TForm1::StartButtonClick(TObject *Sender) { Panel1-&gt;OnClick-&gt;Color=clGreen; }...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

Новые блоги и статьи
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru