Валентин Озеров - Советы по Delphi. Версия 1.4.3 от 1.1.2001

Тут можно читать онлайн Валентин Озеров - Советы по Delphi. Версия 1.4.3 от 1.1.2001 - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-programming. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Советы по Delphi. Версия 1.4.3 от 1.1.2001
  • Автор:
  • Жанр:
  • Издательство:
    неизвестно
  • Год:
    неизвестен
  • ISBN:
    нет данных
  • Рейтинг:
    4/5. Голосов: 101
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 80
    • 1
    • 2
    • 3
    • 4
    • 5

Валентин Озеров - Советы по Delphi. Версия 1.4.3 от 1.1.2001 краткое содержание

Советы по Delphi. Версия 1.4.3 от 1.1.2001 - описание и краткое содержание, автор Валентин Озеров, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

…начиная с 1001. Смотрите другие файлы…

Советы по Delphi. Версия 1.4.3 от 1.1.2001 - читать онлайн бесплатно полную версию (весь текст целиком)

Советы по Delphi. Версия 1.4.3 от 1.1.2001 - читать книгу онлайн бесплатно, автор Валентин Озеров
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Как создать disable'ный битмап из обычного (emboss etc)?

Nomadicсоветует:

CreateMappedBitmap() :-)

Один из параметров указатель на COLORMAP, в нем для 16 основных цветов делаешь перекодировку, цвета подберешь сам из принципа:

• все самые яркие → в GetSysColor(COLOR_3DLIGHT);

• самые темные → GetSysColor(COLOR_3DSHADOW);

• нейтральные, которые бyдyт прозрачными → GetSysColor(COLOR_3DFACE);

Так на самом деле вот как делается данная задача:

procedureTform1.aaa(bmpFrom, bmpTo:Tbitmap);

var

TmpImage,Monobmp:TBitmap;

IRect:TRect;

begin

MonoBmp := TBitmap.Create;

TmpImage:=Tbitmap.Create;

TmpImage.Width := bmpFrom.Width;

TmpImage.Height := bmpFrom.Height;

IRect := Rect(0, 0, bmpFrom.Width, bmpFrom.Height);

TmpImage.Canvas.Brush.Color := clBtnFace;

try

withMonoBmp do begin

Assign(bmpFrom);

Canvas.Brush.Color := clBlack;

ifMonochrome then begin

Canvas.Font.Color := clWhite;

Monochrome := False;

Canvas.Brush.Color := clWhite;

end;

Monochrome := True;

end;

withTmpImage.Canvas do begin

Brush.Color := clBtnFace;

FillRect(IRect);

Brush.Color := clBlack;

Font.Color := clWhite;

CopyMode := MergePaint;

Draw(IRect.Left + 1, IRect.Top + 1, MonoBmp);

CopyMode := SrcAnd;

Draw(IRect.Left, IRect.Top, MonoBmp);

Brush.Color := clBtnShadow;

Font.Color := clBlack;

CopyMode := SrcPaint;

Draw(IRect.Left, IRect.Top, MonoBmp);

CopyMode := SrcCopy;

bmpTo.assign(TmpImage);

TmpImage.free;

end;

finally

MonoBmp.Free;

end;

end;

procedureTForm1.Button1Click(Sender: TObject);

begin

aaa(image1.picture.bitmap,image2.picture.bitmap);

Image2.invalidate;

end;

Писал это не я. Это написал сам Борланд (некузявно было бы взглянуть на класс TButtonGlyph. Как раз из него я это и выдернул). Ну а если уже совсем хорошо разобраться, то можно заметить функцию ImageList_DrawEx, в которой можно на 25 и 50 процентов уменьшить яркость (но визуально это очень плохо воспринимается). Соответственно параметры ILD_BLEND25, ILD_BLEND50, ILD_BLEND-A-MED. Естественно, что последний абзац работает только с тройкой.

Denis Tanayeff

Это кусочек из рабочей проги на Си, Вроде все лишнее я убрал.

#define CO_GRAY 0x00C0C0C0L

hMemDC = CreateCompatibleDC(hDC);

hOldBitmap = SelectObject(hMemDC, hBits);

// hBits это собственно картинка, которую надо «засерить»

GetObject(hBits, sizeof(Bitmap), (LPSTR) &Bitmap);

if (GetState(BS_DISABLED)) // Blt disabled

{

hOldBrush = SelectObject(hDC, CreateSolidBrush(CO_GRAY));//CO_GRAY

PatBlt(hDC, BD_BORDERWIDTH, BD_BORDERWIDTH, Bitmap.bmWidth, Bitmap.bmHeight, PATCOPY);

DeleteObject(SelectObject(hDC, hOldBrush));

lbLogBrush.lbStyle = BS_PATTERN;

lbLogBrush.lbHatch =(int)LoadBitmap(hInsts, MAKEINTRESOURCE(BT_DISABLEBITS));

hOldBrush = SelectObject(hDC, CreateBrushIndirect(&lbLogBrush));

BitBlt(hDC, BD_BORDERWIDTH, BD_BORDERWIDTH, Bitmap.bmWidth, Bitmap.bmHeight, hMemDC, 0, 0, 0x00A803A9UL); // DPSoa

DeleteObject(SelectObject(hDC, hOldBrush));

DeleteObject((HGDIOBJ)lbLogBrush.lbHatch);

}

Компонент для работы с FLIC-анимацией

Новостная группа: comp.lang.pascal.delphi.components

Тема: Компонент для работы с FLIC-анимацией: отправной пункт.

От: Paul Kuczora < paul@kuczora.demon.co.uk>

Дата: Чет, 03 Авг 95 16:51:19 GMT

В качество ответа на целый круг вопросов, я включил в свой ответ два файла:

aaplay1.inc — include-файл с интерфейсом для библиотеки aaplay.dll

aaplay1.pas — сырой скелет компонента для проигрывания FLIC-анимации

Я разработал это глядя на другой компонент (это был полнофункциональный плейер, работающий как форма), и вынужден был сохранить некоторые вещи неприкосновенными (попробуй тут сделай иначе :-)

Для работы вам понадобится библиотека aaplay.dll от Autodesk, которую вы можете найти на множестве мест (например, я так предполагаю, на Encarta CD). Для полного счастья вы можете обратиться к файлу помощи для Animation Player for Windows, который, не удивляйтесь, содержит справку для этой DLL — на первой странице найдите в ее самой нижней части указание на эту библиотеку, и перед вами предстанет полная справка по вызовам этой самой DLL.

Надеюсь что помог вам…

ВНИМАНИЕ! Это мой первый код, написанный для Windows (спасибо Delphi), поэтому он рекомендуется только для ознакомления.

{ ============================================================================ }

{ aaplay1.inc }

{ (c) P W Kuczora }

{ 17-го апреля 1995 }

{ Заголовочный файл, содержащий константы и определения типов для aaplay1.pas }

const

NULL = 0;

NULLPTR = ^0;

{

Доступные Флаги wMode: integer;

Используются в aaLoad, aaReLoad

Первые восемь бит wMode используются в aa_flags.

}

AA_MEMORYLOAD = $1; { Загрузка в память }

AA_HIDEWINDOW = $2; { Скрывать окно анимации }

AA_NOPALETTE = $4 ; { Анимация без палитры }

AA_RESERVEPALETTE = $8; { Резервировать при старте всю палитру }

AA_LOOPFRAME = $10; { Циклическая загрузка кадров }

AA_FULLSCREEN = $20; { Использовать полноэкранный режим воспроизведения }

AA_STOPNOTIFY = $40; { Исключать любые уведомляющие сообщения }

AA_STOPSTATUS = $80; { Исключать сообщения об изменении статуса }

AA_NOFAIL = $100; { Уменьшение типа нагрузки при ошибке }

AA_DONTPAINT = $200; { Не делать paByVal-анимацию при загрузке }

AA_BUILDSCRIPT = $400; { lpzFileName – скрипт, не имя }

AA_ALLMODES = $FF;

{

Доступные флаги для режимов звука – wMode: integer;

Используются в aaSound

}

AA_SNDFREEZE = $1; { Заморозка кадров при проигрывании звуков }

AA_SNDDEVICEID = $100; { ID устройства, не имя }

AA_SNDBUILDALIAS = $200; { создавать псевдоним звукового устройства }

{

aaNotify позволяет извещать приложение о проигрывании определенных кадров.

lPosition – позиция, на которой должно происходить уведомление.

wParam для этого сообщения – hAa, а lParam копируется из этого вызова.

При установке сообщения возвращается TRUE.

Следующее значение определяет необходимость завершения цикла анимации по окончании проигрывания звука. Если звук отсутствует, анимация зацикливается навсегда.

}

AA_LOOPSOUND = $FFFF;

{

Автоматическое уведомление посылается при перезагрузке в скрипте анимации.

lParam для этого сообщения определен ниже

}

AA_ANIMATIONLOADED = 0;

{

Типы параметров

Используется с aaGetParm и aaSetParm.

}

AA_STATUS = 1; { Получить текущий статус }

AA_FILETYPE = 2; { Получить тип анимации на диске }

AA_MODE = 3; { Получить/установить флаги анимации }

AA_WINDOW = 4; { Установить/получить окно анимации }

AA_SPEED = 5; { Установить/получить текущую скорость }

AA_DESIGNSPEED = 6; { Получить скорость на этапе дизайна }

AA_FRAMES = 7; { Получить число кадров }

AA_POSITION = 8; { Установить/получить позицию текущего кадра }

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Валентин Озеров читать все книги автора по порядку

Валентин Озеров - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Советы по Delphi. Версия 1.4.3 от 1.1.2001 отзывы


Отзывы читателей о книге Советы по Delphi. Версия 1.4.3 от 1.1.2001, автор: Валентин Озеров. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x