Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.02.05;
Скачать: CL | DM;

Вниз

Ни как не соображу, как получить изображение под формой.   Найти похожие ветки 

 
Shuric ©   (2005-12-28 16:41) [0]

На ум приходит перечисление всех форм, отброс не перекрывающих необходимую и вывод изображения каждой в мой DC, что есть муторно и долго.
Собственно нет ли способа попроще?


 
Anatoly Podgoretsky ©   (2005-12-28 17:02) [1]

Под формой нет изображения.


 
Deka ©   (2005-12-28 17:35) [2]

Запомнить координаты формы, спрятать форму, вырезать кусок из DC(0), показать форму. И зачем тебе картинка "под формой"?


 
Prohodil Mimo ©   (2005-12-28 21:00) [3]

Deka ©   (28.12.05 17:35) [2]
И зачем тебе картинка "под формой"?


что бы наложить на форму :о)


 
Shuric ©   (2005-12-28 21:39) [4]

Имелось ввиду что на канву формы (типа не прямоугольная) накладывается изображение (ну не знаю как для [1] выразиться) под ней (под формой), и сверху в конву формы выводится рисунок с alpha каналом :) вот такая задачка. Зато не будет шерохотостей бордюра формы.


 
Deka ©   (2005-12-29 10:39) [5]

Долго напрягал воображение в попытках предствать то о чем в [4] ты написал. Так и не смог представить. Может есть другое решение? То что должно получиться на экране описАть можешь? Если только бордюр мешает, так он вроде проще убирается.


 
Shuric ©   (2005-12-29 15:17) [6]

На ум приходит окошко логотипа Potoshop CS2. Пытаюсь реализовать что-то типа примитивной skin библиотеки для себя.
Существует формат PNG (и всякие 32 битмапы), который позволяет сохранять в себе 4-ю составляющую (RGBA), ну и соответственно изображение с тенью (за счет использования альфа канала), например в TImage, смотрится привлекательней. С конролами на форме я разобрался, т.к. можно получить изображение под ними и соответственно накладывая на полученное изображение картинку из PNG получаем, например кнопочку с 3d эффектом. Проблема собственно формой, т.к. получить снимок под ней у меня неполучается :(


 
Deka ©   (2005-12-29 15:37) [7]

Если прозрачность тени не интересует, то может быть совсем отказаться от рамки окна и отрисовать все его элементы самому? Хотя может быть и прозрачность тени получится. Надо пробовать. Возьми TImage и растяни его на всю площадь окна, а у окна отключи отрисовку бордюра. Может быть так? Система сама будет следить за тем, что под твоим окном.


 
Shuric ©   (2005-12-29 15:44) [8]

Ты непонял, как раз интересует, а то парился бы я :) Форма на основе региона. Чтобы получить нужный эффект картинка из Png должна накладыватся на "что-то" а не на просто на серый фон.


 
Igor_thief   (2006-01-01 21:39) [9]

Вот одного не пойму, зачем получать изображение под контролом?


 
antonn ©   (2006-01-02 07:01) [10]

меняйте телепатор, товарищи:)

как я понимаю, нужно сделать форму с переменной прозрачностью (например у acrobat Reader"а сплаш - квадратик с информацией и шикарная затененность на его фоне). Под win2k и выше можно использовать png и UpdateLayeredWindow(), на ОСях ниже так не получится.
Чтобы сделать вид полупрозрачности, берем фон под формой, и на этот фон накладываем полупрозрачную маску, и обработанный фон помещаем на форму. Т.е. вручную рисуем то, что в вин2к рисует система. Правда окно то на самом деле прозрачным не будет, но по виду не отличить:)

попробуй так:
var BM:TBitmap;

procedure TForm1.Button1Click(Sender: TObject);
var DC:HDC;
begin
ShowWindow(Handle,SW_Hide);
sleep(1);
DC:=GetDC(0);
BitBlt(BM.Canvas.Handle,0,0,BM.Width,BM.Height,DC,left,top,SrcCopy);
ReleaseDC(0,DC);
ShowWindow(Handle,SW_Show);

BitBlt(canvas.Handle,0,0,BM.Width,BM.Height,BM.Canvas.Handle,0,0,SrcCopy);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
BM:=TBitmap.Create;
BM.Width:=width;
BM.Height:=Height;
end;

возможно нужно будет увеличить sleep(), чтобы окна перерисовались. А еще этот способ не "видит" прозрачные окна.


 
Deka ©   (2006-01-03 14:25) [11]

Тогда такое окошко перемещать нельзя - вся "прозрачность" разом пропадет. И при появлении новых либо при перемещении старых окошек эффект тоже пропадет. В общем подходит только для статики.


 
OldNaum ©   (2006-01-03 16:52) [12]

были четко сформулированные примеры окна с полупрозрачностью как в Winamp"e от одного из мастеров. не помню, то ли MBo, то ли еще кто...



Страницы: 1 вся ветка

Текущий архив: 2006.02.05;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.01 c
8-1124853884
palgen
2005-08-24 07:24
2006.02.05
Как перевести Panel.Canvas в Image.Canvas ?


2-1137666947
De
2006-01-19 13:35
2006.02.05
Что такое object?


15-1136989131
Хинт
2006-01-11 17:18
2006.02.05
Статья: "Оптимизация кода"


6-1130557035
jk
2005-10-29 07:37
2006.02.05
динамическая связь приложений по сети


9-1124798364
hgd
2005-08-23 15:59
2006.02.05
Распознование автомобильных номеров по видеопотоку





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский