Виртуальная библиотека Delphi

Здесь есть возможность читать онлайн «Виртуальная библиотека Delphi» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Жанр: Программирование, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Виртуальная библиотека Delphi: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Виртуальная библиотека Delphi»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

Виртуальная библиотека Delphi — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Виртуальная библиотека Delphi», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

8. Когда используется свойство Glyph, как узнать, какой цвет прозрачный?

Delphi всегда принимает, что цвет пикселя в левом нижнем углу картинки является фоновым цветом и должен отображаться на экране как прозрачный. Это нигде не документировано, но если у вас есть исходники VCL, вы можете посмотреть код в BUTTONS.PAS .

9. Как отобразить bitmap в 256 цветах?

картинка 105

Как подгрузить 256 цветный bitmap из ресурса и отобразить его в нормальной палитре?

картинка 106

Обычно это делается следующим образом. Код Вадима Пузанова (Красноярск).

Image1.Bitmap.Handle := LoadBitmap(hInstance, 'BMP_NAME');

LoadBitmap загружает только картинку, без палитры. Если палитра у картинки отличается от системной, то ее надо устанавливать "вручную". Могут возникнуть проблемы, если на одной форме расположены две картинки с разными палитрами.

procedureXLoadBitmap(Instance: THandle; BitmapName: PChar; varHB: HBitmap; varHP: Palette);

var

DC: HDC;

BI: PBitMapInfo;

Pal: PLogPalette;

I: Integer;

ResIdHandle: THandle;

ResDataHandle: THandle;

Bitmap: HBitmap;

C: HWnd;

OldPalette, Palette: HPalette;

begin

Bitmap := 0;

Palette := 0;

HB := 0;

HP := 0;

{ Получить ресурс из модуля }

ResIDHandle := FindResource(Instance, BitmapName, RT_BITMAP);

ifResIDHandle <> 0 then

begin

ResDataHandle := LoadResource(Instance, ResIDHandle);

ifResDataHandle <> 0 then

begin

BI := LockResource(ResDataHandle);

ifBI <> nil then

begin

{ 256-цветный битмап? }

ifBI^.bmiHeader.biBitCount = 8 then

begin

{ Создать палитру }

GetMem(Pal, SizeOf(TLogPalette) + 256*SizeOf(TPaletteEntry));

forI := 0 to255 do withPal^.palPalEntry[I] do

begin

peRed := BI^.bmiColors[I].rgbRed;

peGreen:= BI^.bmiColors[I].rgbGreen;

peBlue := BI^.bmiColors[I].rgbBlue;

peFlags:= 0;

end;

Pal^.palNumEntries := 256;

Pal^.palVersion := $300;

Palette := CreatePalette(Pal^);

FreeMem(Pal, SizeOf(TLogPalette) + 256 * SizeOf(TPaletteEntry));

{ Привести цвета палитры в системные }

DC := CreateDC( 'Display', nil, nil, nil);

OldPalette := SelectPalette(DC, Palette, False);

UnrealizeObject(Palette);

RealizePalette(DC);

{ Создать битмап }

BitMap:= CreateDIBitmap(DC, BI^.bmiHeader, CBM_INIT,

@PByteArray(BI)^[SizeOf(TBitMapInfo) + SizeOf(TRGBQuad) * 256 - 4], BI^, DIB_RGB_COLORS);

{ Освободить ресурсы }

UnlockResource(ResDataHandle);

FreeResource(ResDataHandle);

SelectPalette(DC, OldPalette, False);

DeleteDC(DC);

end else

begin

{ Не 256-цветный битмап }

UnlockResource(ResDataHandle);

FreeResource(ResDataHandle);

BitMap := LoadBitmap(Instance, BitmapName);

end;

HB := Bitmap;

HP := Palette;

end;

end;

end;

end;

procedureTForm1.FormCreate(Sender: TObject);

var

HB: HBitmap;

HP: HPalette;

begin

XLoadBitmap(hInstance, 'PHOTO', HB, HP);

Image1.Picture.Bitmap.Handle := HB;

Image1.Picture.Bitmap.Palette := HP;

end;

10. Если я хочу рассылать EXE файл, созданный в Delphi, какие еще файлы нужно посылать с ним?

Hикакие. Все компилируется в .EXE файл. Конечно, если вы разработали другие файлы (HLP, данные и т.д. ), или если вы используете VBX/OCX файлы, тогда вы должны распространять и их заодно. Если вы используете файлы VBX, то в поставку нужно также включать BIVBX11.DLL.

Если приложение использует функции BDE, вы также должны включать Borland DataBase Engine.

Полезные хитрости

1. Может ли редактор текстов в Delphi вырезать и вставлять прямоугольные фрагменты текста?

Конечно, может: Нажмите кроме Shift еще и Alt и режьте на здоровье. Alt можно сразу отпустить. Чтобы вернуться в старый режим, нужно выделить что-либо мышкой.

2. Редактирование файлов SQL в Delphi IDE.

картинка 107

Если вы в Delphi 2.0 IDE редактируете файл с расширением SQL, то, хотя это нигде не документировано, происходит автоматический Syntax Highlighting. Наибольший недостаток — не отслеживается конец комментария '*/'.

картинка 108

В Delphi 3.0 комментарии отрабатываются нормально.

3. Встроенный отладчик/дизассемблер.

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

Интервал:

Закладка:

Сделать

Похожие книги на «Виртуальная библиотека Delphi»

Представляем Вашему вниманию похожие книги на «Виртуальная библиотека Delphi» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «Виртуальная библиотека Delphi»

Обсуждение, отзывы о книге «Виртуальная библиотека Delphi» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x