![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 01.04.2009
Сообщений: 4
|
![]()
Ситуация такая есть объект типа TImage, в нем нарисовано черным цветом чет через Canvas. Мне нужно чтобы при нажатии на кнопку изменялся цвет того что нарисовал.
Делал так: var col:TColor; ......... procedure TForm1.FormCreate(Sender: TObject); begin col:=clgreen; img.canvas.pen.color:=col; img.canvas.rectangle (10,10,50,70); end; procedure TForm1.Button1Click(Sender: TObject); begin col:=clred; img.repaint; end; цвет не изменяется. Помогите кто в курсе, че я не так делаю и как сделать чтобы цвет изменился. |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 22.02.2009
Сообщений: 875
|
![]()
А вы переместите код
Код:
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство.
|
![]() |
![]() |
![]() |
#3 |
Регистрация: 01.04.2009
Сообщений: 4
|
![]()
дело в том что у меня много таких компонентов и они создаются динамически... можно конечно переделать на onpaint...... но других вариантов разве нету?
|
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 22.02.2009
Сообщений: 875
|
![]()
Вы же рисуете ее только при создании формы, как же вы хотите ее обновлять методом Repaint?
При Repaint обрабатывается событие OnPaint Так что, мне кажется, только так, как я сказал, будет работать.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство.
|
![]() |
![]() |
![]() |
#5 |
Регистрация: 01.04.2009
Сообщений: 4
|
![]()
не, это я пример маленький написал, чтобы весь свой код не писать у меня там по другому..... у меня при нажатии мыши на уже вставленом по всей области формы Image с картинкой рисуется различные фигуры через канвас... но при повторном нажатии на эти фигуры мне нужно чтобы их цвет менялся, якобы происходило выделение...
Последний раз редактировалось dimon4il; 03.05.2009 в 10:47. |
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
напиши внешнюю процедуру(как метод формы лучше)
в нее передавай нужный цвет и идентификатор фигур что надо нарисовать(например 1-квадрат, 2-круг...и тд) а процедуру пропиши в ОнПаинте (учти те условия по которым ты сам хотел отличать, каким цветом и что рисовать) в общем вот ![]() Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
#7 |
Регистрация: 01.04.2009
Сообщений: 4
|
![]()
спасибо вам что откликнулись, буду переделывать тогда код... хотя так впадло))
|
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 22.02.2009
Сообщений: 875
|
![]()
Вот, сваял прогу, я думаю это то что вам нужно
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство.
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
ошибка при запуске. Нужна помощь | Dimanduc | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 25.02.2009 22:08 |
В Image Transparen = true - тормоза при рисовании | lexaltd | Мультимедиа в Delphi | 0 | 28.09.2008 16:03 |
Изменение вида Image при наведении указателя | Сергей А | Помощь студентам | 3 | 05.08.2007 15:26 |
нужна помощь | Селезнёв | Microsoft Office Excel | 1 | 02.03.2007 03:19 |