![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 26.12.2011
Сообщений: 22
|
![]()
Всем привет
![]() Во время разработки интерфейса у меня возникла проблема ![]() Я хочу чтобы при нажатии на SpeedButton3 менялся обработчик события Image5->OnMouseDown и Image5->OnMouseUp как мне это написать?? ![]() ![]() |
![]() |
![]() |
![]() |
#2 |
Пользователь
Регистрация: 26.12.2011
Сообщений: 22
|
![]()
К примеру, если я нажму на SpeedButton3 то обработчик Image5->OnMouseDown меняется с :
void __fastcall TOKBottomDlg::Image5MouseDown(TObje ct *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { Image5->Picture->LoadFromFile("blue_ico_2.bmp"); } //--------------------------------------------------------------------------- На void __fastcall TOKBottomDlg::Image5MouseDown(TObje ct *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { Image5->Picture->LoadFromFile("red_ico_2.bmp"); } //--------------------------------------------------------------------------- |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 14.10.2011
Сообщений: 267
|
![]()
- ну, используйте общую ("глобальную") переменную AnsiString *myF, которой сначала присваиваете значение blue_ico2.bmp, а затем red_ico2.bmp , вот так, к примеру
Код:
|
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 26.12.2011
Сообщений: 22
|
![]()
Всё равно не работает
![]() Ладно, Моя основная цель это нажатый Image5 при этом его изображение меняется с blue_ico_1 на blue_ico_2 а потом при нажатии на SpeedButton3 Image5 меняется с red_ico_1 на red_ico_2 кааак мне это прописать??? ![]() ![]() ![]() я уже на 2 форума писал но мне не отвечали ![]() ![]() вот пример #include <vcl.h> #pragma hdrstop #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; AnsiString myF = "blue_ico_1.bmp" ; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { { Image5->Picture->LoadFromFile(myF); } } //--------------------------------------------------------------------------- void __fastcall TForm1::Image5MouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { Image5->Picture->LoadFromFile(myF); { myF = "blue_ico_1.bmp" ; } if (SpeedButton3->OnClick) myF = "red_ico_1.bmp" ; } //--------------------------------------------------------------------------- void __fastcall TForm1::Image5MouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { Image5->Picture->LoadFromFile(myF); { myF = "blue_ico_2.bmp" ; } } //--------------------------------------------------------------------------- void __fastcall TForm1::SpeedButton3Click(TObject *Sender) { Image1->Picture->LoadFromFile("1.bmp"); } //--------------------------------------------------------------------------- P.S если надо могу скинуть полный исходник. |
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 14.10.2011
Сообщений: 267
|
![]()
Вот это посмотрите... . Я правильно понял задачу?
![]() |
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 26.12.2011
Сообщений: 22
|
![]()
В общем да, это именно то )
только red_ico_1 должен изменятся при щелчке на него, а не на кнопку Последний раз редактировалось bogdan333; 28.04.2012 в 22:20. |
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 14.10.2011
Сообщений: 267
|
![]()
Ну, тогда так приблизительно..
|
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 26.12.2011
Сообщений: 22
|
![]()
Всё работает, спс, выручил
![]() Но теперь хочу спросить возможно ли сделать это для 6-ти кнопок? принцип тот же типо при нажатии на SpeedButton3 в результате нажатия на Image5->OnMouseDown и OnMouseUp будут 2 красные картинки, с разными отличиями При нажатии на SpeedButton4 в результате нажатия на Image5->OnMouseDown и OnMouseUp будут 2 синие картинки, с разными отличиями И так для 6 кнопок SpeedButton5,6,7 и.тд У меня даже для трёх не вышло ( не знаю почему ![]() я пробовал так для других кнопок void __fastcall TOKBottomDlg::SpeedButton1MouseDown (TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { { ipush = "yellow_ico_2.bmp" ; inopush = "yellow_ico_1.bmp" ; } } //---------------------------------------------------- Но никакой реакции на кнопку ![]() ![]() Пробовал так if(ipush == "yellow_ico_2.bmp") { ipush = "yellow_ico_2.bmp" ; inopush = "yellow_ico_1.bmp" ; } Тоже не пашет ![]() |
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 14.10.2011
Сообщений: 267
|
![]()
а какая реакция должна быть? Вы просто подменили названия картинок в переменных, а использованы они будут в событии нажатия на Image5. И, кстати, здесь первая строчка неверна: если ipush не равно ..2.bmp, - иначе какой смысл перезагружать ТУ ЖЕ картинку!
|
![]() |
![]() |
![]() |
#10 |
Пользователь
Регистрация: 26.12.2011
Сообщений: 22
|
![]()
А как тогда? Мне начинает казатся что это вобще нереально )
Просто уже столько всего перепробовал, и ничего не помогает, даже в инете ничё нет на эту тему ![]() Последний раз редактировалось bogdan333; 29.04.2012 в 03:05. |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Создание обработчика событий объектов | Caside | Microsoft Office Excel | 5 | 07.04.2011 12:54 |
Перехват обработчика OnExit | Аватар | Общие вопросы Delphi | 3 | 21.01.2011 11:39 |
Выход из обработчика события | tools | Visual C++ | 1 | 20.12.2010 10:24 |
Организация обработчика OnClick | 8alig8 | Помощь студентам | 1 | 03.06.2008 05:11 |