else temp:= CreateRectRgn(XStart, Y
, X
, Y
+ 1);
CombineRgn(Result, Result,temp, RGNOR);
DeleteObject(Temp);
end;
end
end;
procedure Tltf.rgn(cb:Tcolor);
var mRgn: HRGN;
begin
mRgn:= BitmapToRegion(img.Picture.Bitmap,cb);
SetW
indowRgn(Handle, mRgn, True);
DeleteObject(mRgn)
end;
Всего один
дурной
бит
- и гигабай-
ты лежат в
маразме!
П е р е й д е м н е п о с р е д с т в е н н о к код у*»,
К
ак же теперь научить нашу программу рабо-
тать с этими звуковыми фрагментами? Нет
ничего проще. Но для начала займемся внешним
видом. Прежде всего, запустим среду ЮЕ и созда-
дим новую форму, но без заголовка. Покажем ус-
тановку региона форме:
• • ■
Т 1 т а д е
был выбран как контейнер, отображаю-
щий логотип при начальной инициализации, потом
он перерисовывается текстом, который и является
интерфейсом нашей утилиты.
Ввиду ограниченности места в журнале, рас-
смотрим только основные моменты реализации
озвучки. Как мы уже знаем, у нас есть минимально
необходимый набор звуковых фрагментов.
CreateRectRgn(XStart, Y
, X
, Y
+ 1);
CombineRgn(Result, Result,temp, RGN
OR);
SetW
indowRgn(Handle, mRgn, True);
■ ■ ■
Далее просто будем рисовать на канве компонен-
та
T lm a g e
или формы (что в принципе проще) и пе-
редавать картинку на преобразование в регионы:
//=================== регион
function Tltf. BitmapToRegion{ Bitmap:
TBitmap; TransColor: TColor): HRGN;
var X
, Y
: Integer;
XStart: Integer;
temp:HRGN;
begin
Result:= 0;
with Bitmap do
for Y:= 0 to Height - 1
do begin
application.ProcessMessages;
X:= 0;
while X
< W
idth do begin
while (X
< W
idth) and (Canvas.Pixels[X, Y] =
TransColor) do
Inc(X);
if X
>= W
idth then Break;
XStart:= X
;
while (X
< W
idth) and (Canvas.Pixels[X, Y] <>
TransColor) do
Inc(X);
if Result = 0 then Result:=
CreateRectRgn(XStart, Y
, X
, Y
+ 1)
Наиболее приемлемым вариантом их хранения
является включение в проект в виде ресурсов. С
помощью
утилиты
b r c c 3 2 . e x e
из
стандартной
поставки
ОБЕРНІ
это
делается
достаточно
про-
зрачно.
Последовательность
действий
должна
быть следующей:
1
В блокноте (или скопируйте в любой другой
текстовый файл) создаем файл
іа и с ііо . г с
со
следующим содержимым:
ссылки на звуковые фрагменты
z0 RCDATA
LOADONCALL
z0.wav
z1 RCDATA
LOADONCALL
z1 .wav
z2 RCDATA
LOADONCALL
z2.wav
z3 RCDATA
LOADONCALL
z3.wav
В Интер-
нете прошел переый
конкурс
красоты.
Звание «Мисс
нет»завоевала деву-
шка
B_21399KS.jpg.
Поздравляем победи-
тельницу!
шммкмммим
2
Далее запускаем утилиту
b r c c 3 2 . e x e
со
следующей командной строкой
(П уск > В ы -
* &*&
Съжтш
Ан*»е
Офы&в
т
т
і
4$
чг
mJ
'
fi
a***:
І I
»b«*
Ck
JS
І
Л
nf
V W W .w X v A W VWMAMWVWVkt. .
.. .
•V m v / a w V ■ V .-.V ’. Л ’
1*0
Р
ис
.
3 . О кно
ut
A u d a C ity. О кон ч а-
н и е з а п и с и и р е д а к -
т и рован и е
-
ност и ф р а зы
Щ
Щ
*0
jc * j
г
*
*
.-A -.W /A W .-j X . '. - .
. — .
............
2,0
Ш
А7
О
-7 4
-« 2
О
.......
Л.........
■ W M ^ v k iM m w v w v .
......
-a w w v À v .v « a w .v ■
1*0
4.0
5 ,0
ОД»
it s
«
»
частота проекта (Гцу
ЦШШ
Ц
Прттть*.(штшеU ШШШ'МШШ ШШШШШМ*
Намело выделений.
» Конец
... Длительность
Текущая гзоойция
- t.J
.« • ^ W . Ч У Л Ч У .И .
*
V * *V W A -.V , > .w ,.
gfj
;Щ *«ш ите
я
п ерегщ ю т» для »ыавл«н»я ш угового ф раггтгге
Peers»»,*« частоте! 4<
предыдущая страница 45 Компьютер 2010 09 читать онлайн следующая страница 47 Компьютер 2010 09 читать онлайн Домой Выключить/включить текст