Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.03.2012, 20:17   #1
Karp_13
Всё знать хотяка!
Пользователь
 
Аватар для Karp_13
 
Регистрация: 21.04.2009
Сообщений: 67
Восклицание

Что есть:
Форма с кучей компонентов. Кучей панелей, кнопок, кошек, женщин, блэк-джеков и чего тока нет на этой форме.
Что нужно: поверх всего этого хлама нарисовать "БОБРЫ-ДОБРЫ" и обвести надпись в прямоугольник. Или переформулируем по другому - как поставить, например, компонент timage поверх всех остальных компонентов(тогда то я запросто нарисую что нить на его канве)?
Что достигнуто: я запионерился гуглить и натыкаться на советы для тех, кто впервые мышку видит, наподобе "поставь лампу за монитор. Она будет ярко светить, он будет просвечивать и всё будет как надо. Мне помогло!".

Ищу помощи. =(

Вот ты! Да, Ты! Ты прочитал эту тему! Ты знаешь, что мне нужна помощь! Давай, не ленись, ответь, напиши! Помоги Бобру! Спаси Бобра! Я дерево назову в твою честь, только напиши ответ на вопрос!

Как минимум - нужна прозрачная панель, сквозь которую можно было бы видеть форму и всё что на форме. Тогда бы я мог поместить на неё имэйдж и стать всемогущим.((( Но как сделать панель прозрачной, чтоб сквозь неё было видно форму, я не знаю.(((
Я вредный и нервный, но бдобр.

Последний раз редактировалось Stilet; 10.03.2012 в 20:55.
Karp_13 вне форума Ответить с цитированием
Старый 10.03.2012, 20:51   #2
Karp_13
Всё знать хотяка!
Пользователь
 
Аватар для Karp_13
 
Регистрация: 21.04.2009
Сообщений: 67
По умолчанию

...Печаль...

*оставьте хоть печаль отдельным текстом. Душа итак болит и сердце не в покое... Пойду залью шампанским своё горе...*

Дополнено позже:
Всё, к чертям СиБилдер! И его панели к чертям! И его создателей тудаже! Сделаю для текущего проекта всё на Имэйджах! Затем выкину жёсткий диск с уставноленной виндой и билдером. Линукс. интерфейсные библиотеки и Dev-cpp ждут меня, успокоят меня, вернуть мне мир....
Я вредный и нервный, но бдобр.

Последний раз редактировалось Karp_13; 10.03.2012 в 21:23.
Karp_13 вне форума Ответить с цитированием
Старый 10.03.2012, 23:51   #3
nick42
Форумчанин
 
Аватар для nick42
 
Регистрация: 14.10.2011
Сообщений: 267
По умолчанию

Есть такая функция для компонентов: Bring to Front, которая в отличие от Send to Back перемещает его слой "вперёд" (или "наверх"). Кроме этого, если у компонента TImage свойство прозрачности установить в "истину", то цвет нижнего левого пикселя будет определять "прозрачный цвет" для картинки; его можно динамично менять. Это ещё если не трогать "альфа"-составляющую компонентов Builder`а.
nick42 вне форума Ответить с цитированием
Старый 11.03.2012, 00:17   #4
EUGY
Форумчанин
 
Аватар для EUGY
 
Регистрация: 11.07.2010
Сообщений: 914
По умолчанию

TImage не окно. И его device context, или как там в билдере, canvas, есть контекст контейнера. Поэтому рисовать поверх других компонентов, используя TImage так просто не получится.

Последний раз редактировалось EUGY; 11.03.2012 в 00:19.
EUGY вне форума Ответить с цитированием
Старый 11.03.2012, 01:46   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Всё, к чертям СиБилдер!
Мдя... А просто вывести на экран отдельное StayOnTop окно и на нем нарисовать?
Короче, завязывай с программированием, терпения тебе не хватает такими серьезными вещами заниматься.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 11.03.2012, 20:47   #6
Karp_13
Всё знать хотяка!
Пользователь
 
Аватар для Karp_13
 
Регистрация: 21.04.2009
Сообщений: 67
По умолчанию

Так, разношу первого:
nick42, я типа случайно подчеркнул слово "панели"? Кинь на форму панель и картину, и прикажи картинке "Bring to Front". А потом сядь и подумай. прежде чем писать не подумав.
(хотя я тут мог косячнуть, ибо выше шестого Билдера ещё не знал; может в новых версиях что нить переделали... щас стоит на закачке какой то последний... посмотрим что он из себя представляет)

Дополняю второго:
EUGY, рисовать на переднем фоне используя имэйдж это не основная моя цель. Моя основная цель рисовать на переднем фоне. Искал вот способ как. И да, согласен, не всё так просто, как хотелось бы. Билдер меня бесит.
Как вариант имэйдж можно кинуть на панель. Но тогда проблема - как панель сделать прозрачной? Немного погуглил. Ответа не нашёл. Наверняка быстро сдался... в общем, отложил в ящик. Приполз искать совета тут.)

Хочу убить третьего(он меня обидел):
Отдельное окно? Только для того, чтобы нарисовать пару линий на переднем фоне? Удивлю, этот вариант я реализовал(накидал) ещё до того, как запостил эту тему. И меня затошнило, ибо почувствовал себя урологом, который с детства мечтал лечить людям зубы. Стил, завязывай с программированием, если для решения подобных проблем ты придумываешь такие не красивые варианты - ты так много не добьёшься(максимум будешь сидеть на уровне офисного планктона).
Серъёзная вещь? Серъёзная вещь это придумать алгоритм автопилота для радиуправляемого самолёта. Я же убил почти 24-ре часа на "серъёзные Билдеровские" вещи за эту неделю, общаясь с СиБилдером... а не буду ничего говорить, просто сделай добро бобру, сломай себе пальцы(блин, понаберут в модераторов кого ни попадя -_- ). Спасибо за внимание, не держите зла, я добрый.

*****
И раскрою немного карт, может на основе этого получу какой нить дельный минисоветик:
Делаю интерфейс для одного проекта. ранее с интерфейсами не работал и сроки сжаты - так что выбран был Виндоувс и СиБилдер(позже, после данного проекта переползу на линукс и тру интерфейсные библиотеки... пока же чувствую себя бомжом, бредущим по алее славы Голивуда...).
Хочу чтобы запускалось видео из стандартного(да знаю я что это тоже убого, но сроки убивают) медиаплеера билдеровского, расположенного на панели. А в это время задний фон - т.е. всё что стоит за панелью(кнопочки, другие панели. картинки) затемнялось. Ну и само собой при тычке а затемнённую область всё возвращалось к нормальному функционирвоанию и видео закрывалось. Т.е. нуно как то затемнить фон.
Плюс хочу чтобы панель с видео плавно выезжала из точки А в точку Б и увеличивалась. Для этого придумал создавать для любого компонента, требующего плавного перемещения и увеличения, отдельный поток; который в свою очередь перемещает компонент и затем завершается. Но столкнулся с тем, что наживую двигать компоненты - это смотреть слайд шоу(эффекта как, например, во флеш анимации не добиться). Как вариант, убирать компонент при начале движения, вместо него рисуя на канве фона его муляж(увеличивающийся и передвигающийся чёрный квадратик)... но столкнулся опять с жуткими глюками(хотя до этого, года эдак пол назад сварганил свой мини паинт... так что рисовать на канве умею... однако чёт всё жутко глючило... видать не хватило сил тру прокопаться настройками задержек)... потом же, когда мой фоновый имейдж начал просто исчезать с формы(похоже уже ошибка памяти какая то... ибо я нигде не прописывал ничего на его счёт... тупо рисовал на нём... а он стал исчезать... хнык) я начал беситься и бросил эту затею... интерфейс у меня будет без механизма плавного изменения... что печалит... вот. Ещё опечалила невозможность чётко указывать задержки и работать с процессорным временем(ниже 15 милисекунд не опуститься)... по крайней мере стандартных вещей не нашёл... копаться ради интерфейса в проктологии виндовса стало противно...
Вот и вся злость...
Если есть идеи как реализовать плавное изменение вещей на форме(рывки практически не приемлимы... комп не слабый, стандартный-среднестатистический...) - буду рад выслушать.
Я вредный и нервный, но бдобр.

Последний раз редактировалось Karp_13; 12.03.2012 в 11:49.
Karp_13 вне форума Ответить с цитированием
Старый 13.03.2012, 14:43   #7
Krok27
Форумчанин
 
Аватар для Krok27
 
Регистрация: 08.07.2010
Сообщений: 505
По умолчанию

Ух тыж бдобр. СиБилдер попробуй, ХЕ2 который, там новые VCL компоненты FireMonkey зовутся. От хде все плавненько и гламурненько. Все таки Pixel Shader 2.0.тут
Знающий не говорит, говорящий не знает (С) Лао Цзы
Krok27 вне форума Ответить с цитированием
Старый 13.03.2012, 15:18   #8
EUGY
Форумчанин
 
Аватар для EUGY
 
Регистрация: 11.07.2010
Сообщений: 914
По умолчанию

Цитата:
копаться ради интерфейса в проктологии виндовса стало противно
Если по контексту рисовать умеем, что мешает рисовать где угодно:
Код:
	
 HDC hdc = GetDCEx(GetDesktopWindow(), NULL, DCX_WINDOW | DCX_LOCKWINDOWUPDATE);
	 RECT rc = {10,20,300,400};
	 FillRect(hdc, &rc, GetSysColorBrush(COLOR_GRADIENTACTIVECAPTION));
EUGY вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
узнать окно на переднем плане или нет fate Win Api 3 21.09.2011 14:26
Всегда на переднем плане Rapala Общие вопросы Delphi 10 28.04.2010 16:54
Можно ли рисовать за пределами формы? TwiX Общие вопросы Delphi 3 14.09.2009 11:56