|
Вопрос # 3 786/ вопрос открыт / |
|
Доброго времени суток, уважаемые эксперты!
ситуация- на форме создается большой динамический timage, на него в свою очередь кидаю неограниченое к-во совершенно разных маленьких timage с картинками.
Подскажите пжлста: как можно выделить текущую timage (одну из многих на форме) рамкой, щелкнув по ней мышью????
Причем если выделить следущую timage, на прошлой timage рамка должна исчезнуть.
Плюс при печати на принтере этого выделения не должно наблюдаться.
Как понимаю через canvas.framerect и canvas.brush.color надо делать. Но пока не выходит.
что еще важно, через свойство tag мне делать нельзя
 |
Вопрос задал: varelik (статус: Посетитель)
Вопрос отправлен: 18 февраля 2010, 14:19
Состояние вопроса: открыт, ответов: 0.
|
Мини-форум вопроса
Всего сообщений: 8; последнее сообщение — 20 февраля 2010, 00:35; участников в обсуждении: 3.
|
min@y™ (статус: Доктор наук), 18 февраля 2010, 14:48 [#1]:
Напиши-ка поподробней, что за программу ты пишешь, а то сильно смахивает на сагу про XYZ.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
varelik (статус: Посетитель), 18 февраля 2010, 15:22 [#2]:
Программа типа граф редактора:
практически все реализовано на timage.
На форме несколько кнопок и панель.
по нажатию 1й кнопки- на панель помещается timage (большой белый холст).
по нажатию 2й кнопки- открывается opendialog c bitmapami. Ну и дальше динамически создается timage в которую bmp икидается. Этот timage помещается на "большой белый холст". Соответственно скоко раз по этой (2й) кнопке нажал- столько timage на холсте и появилось.
Потом их можно перемещать по холсту мышкой.
3я кнопка- это печать на обычный принтер содержимого холста.
|
|
min@y™ (статус: Доктор наук), 18 февраля 2010, 15:41 [#3]:
Тогда не FrameRect(), а DrawFocusRect().
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
varelik (статус: Посетитель), 18 февраля 2010, 17:26 [#4]:
А можно поподробней рассказать?
Дело в том, что Просто выделить по щелчку каждую картинку например clred я могу. А вот чтоб например если одну выделил, а на остальных выделение исчезло- пока никак.
Вобщем есть у меня такие tform1.controlmousedown, tform1.controlmousemove,tform1.controlmouseup, tform1.onclickbutton процедуры.
|
|
min@y™ (статус: Доктор наук), 18 февраля 2010, 19:58 [#5]:
Цитата (varelik):
что еще важно, через свойство tag мне делать нельзя
Это, интересно, почему?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
varelik (статус: Посетитель), 19 февраля 2010, 09:52 [#6]:
дело втом что у картинок одного "типа"- у меня один таг, у другово- другой. И в проге это все задействовано. Иными словами, например есть на форме 10 картинок одного типа- таг уних всех одинаковый, и эти картинки нада выделять рамкой по очереди.
|
|
min@y™ (статус: Доктор наук), 19 февраля 2010, 10:37 [#7]:
Перебирай их (картинки) в цикле.
if (надо выделить)
then (выделяю)
else (снимаю выделение);
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Вадим К (статус: Академик), 20 февраля 2010, 00:35 [#8]:
а зачем создавать кучу TImage, одного будет предостаточно.
Галочка "подтверждения прочтения" - вселенское зло.
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|