![]() |
Модераторы: Poseidon |
![]() ![]() ![]() |
|
masterdelphi |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 23.5.2006 Репутация: нет Всего: нет |
Кто может помочь!!Надо сделать такую процедуру или функцию!У меня на форме три кнопки Button и три Image,надо чтобы при нажатии на Button1 рисование происходило в Image1,при нажатии на Button2 рисование происходило в Image2 и т.д.,на каждом image цикл рисования одинаков, важна только реакция на конкретный Button!!
|
|||
|
||||
D4rk |
|
|||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 3.5.2006 Где: Самара Репутация: нет Всего: нет |
1) Оформи цикл рисования как отдельную процедуру. В качестве параметра будет Image1, Image2 или Image3.
2) Напиши процедуры TForm1.Button1Click TForm2.Button1Click TForm3.Button1Click В них будешь вызывать процедуру рисования... Или я чего-то не догоняю? Это сообщение отредактировал(а) D4rk - 23.5.2006, 23:46 |
|||
|
||||
masterdelphi |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 23.5.2006 Репутация: нет Всего: нет |
Проблема в том что у меня 20 фигур для прорисовки и если для них писать по три процедуры рисования (для каждого Image) то получится 60 процедур, я хочу чтобы при нажатии на Button1,Button2,button3 загружалась одна и та же процедура(для одной фигуры) прорисовки но с разным Image(1,2,3-соответственно).
|
|||
|
||||
skyboy |
|
|||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 5 Всего: 260 |
masterdelphi,по нажатию на кнопку что должно происходить? Выставляется какой-то признак, типа "номер текущего Image"? Тогда не проще ли сделать на checkbox'ax интерфейс? И по нажатию одной кнопки ты по состоянию checkbox'ов определяешь, где рисовать... А вообще - обрисуй пояснее картину... А то я тебе могу и про FindComponent в цикле рассказать, только знать бы ещё - надо оно тебе или нет...
|
|||
|
||||
masterdelphi |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 23.5.2006 Репутация: нет Всего: нет |
Поясняю:
Обязательно надо с Button'ами и Image'ами. вот прога: procedure ... var... begin... и тут самое главное with Image1.canvas do begin само рисование end; end; надо чтобы вместо Image1 стояла переменная ,которой при выполнении процедуры: procedure TForm1.Button1Click(Sender: TObject);присваивалось бы значение компонента Image1 procedure TForm1.Button2Click(Sender: TObject);-Image2 procedure TForm1.Button3Click(Sender: TObject);-Image3. Где-то слышал что это делается в отдельной процедуре через вот эту вещь Sender: TObject. Обязательно надо с Button'ами и Image'ами. Добавлено @ 00:31 FindComponent это по ходу та тема что надо... |
|||
|
||||
Sunvas |
|
|||
![]() Соль и сахар ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3388 Регистрация: 12.3.2006 Где: Тосно Репутация: 7 Всего: 89 |
-------------------- Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их. |
|||
|
||||
skyboy |
|
|||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 5 Всего: 260 |
Пущай все твои button'ы имеют один обработчик событий: OnMyButtonClick.
Тогда...
|
|||
|
||||
masterdelphi |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 23.5.2006 Репутация: нет Всего: нет |
Понял, работает.
Спасибо парни!! |
|||
|
||||
masterdelphi |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 23.5.2006 Репутация: нет Всего: нет |
Кто знает как сделать так чтобы при движении(нажатии, перемещении, отпускании) курсора мыши его координаты считывались не с формы а с Image!!!
Поясню: procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin //координаты X и Y в этой процедуре это координаты на форме а мне надо на моем Image end; надо именно в этой процедуре!!! |
|||
|
||||
Yanis |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2937 Регистрация: 9.2.2004 Где: Москва Репутация: 4 Всего: 111 |
masterdelphi
А тебя не смущает, что при движении над Image событие OnMouseMove у формы не срабатывает? Это сообщение отредактировал(а) Yanis - 24.5.2006, 09:04 |
|||
|
||||
masterdelphi |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 23.5.2006 Репутация: нет Всего: нет |
Я если честно этого не знал!!Т.Е.
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); действует только над формой и нет возможности сделать её относительно Image?? |
|||
|
||||
Yanis |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2937 Регистрация: 9.2.2004 Где: Москва Репутация: 4 Всего: 111 |
Можно посчитать относительно чего угодно. Всё зависит от того в каком собитии ты будешь получать координаты.
Вообще есть один способ как определить положение курсора, когда он двигается над формой... Не знаю подойдёт ли он тебе. Вот:
|
|||
|
||||
masterdelphi |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 23.5.2006 Репутация: нет Всего: нет |
Ситуация такая я должен по Image перемещать треугольник с помощью мыши. Для этого мне и нужны координаты на Image(чтобы определить попадает курсор в треугольник или нет)!!!
|
|||
|
||||
Yanis |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2937 Регистрация: 9.2.2004 Где: Москва Репутация: 4 Всего: 111 |
А почему бы тогда не использовать OnMouseMove Image'а? Если ты не в курсе, то помимо функции Win API GetCursorPos существует глобальный объект Mouse с помощью которого можно узнать положение курсора на экране. Я не понимаю в чём загвоздка?
![]()
|
|||
|
||||
masterdelphi |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 23.5.2006 Репутация: нет Всего: нет |
Все догнал!!!!
Слушай а не скажешь как мне поставить условие для попадания курсора на фигуру(которую сам нарисовал в Image)? |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Центр помощи" | |
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Центр помощи | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |