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

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

Советы по Delphi. Версия 1.4.3 от 1.1.2001: краткое содержание, описание и аннотация

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

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

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

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

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

Интервал:

Закладка:

Сделать

procedureTMBitmap.Allocate(SX,SY:integer);

varDC:HDC;

begin

ifBM<>0 thenDeleteObject(BM); {удаляем старый битмэп, если был}

BM:=0;

PB:= nil;

fillchar(BI,sizeof(BI),0);

withBI.bmiHeader do{заполняем структуру с параметрами битмэпа}

begin

biSize:=sizeof(BI.bmiHeader);

biWidth:=SX;

biHeight:=SY;

biPlanes:=1;

biBitCount:=24;

biCompression:=BI_RGB;

biSizeImage:=0;

biXPelsPerMeter:=0;

biYPelsPerMeter:=0;

biClrUsed:=0;

biClrImportant:=0;

FLineSize:=(biWidth+1)*3 and(-1 shl2); {размер строки(кратна 4 байтам)}

if(biWidth orbiHeight)<>0 then begin

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

{замечательная функция (см.HELP), возвращает HBITMAP, позволяет сразу разместить выделяемый битмэп в спроецированном файле, что позволяет ускорять работу и экономить память при генерировании большого битмэпа}

{!} BM:=CreateDIBSection(DC,BI, DIB_RGB_COLORS, pointer(PB), nil, 0);

DeleteDC(DC); {в PB получаем указатель на битмэп-----^^}

ifBM=0 thenError('error creating DIB');

end;

end;

end;

{эта процедура загружает из файла true-color'ный битмэп}

procedureTMBitmap.LoadFromFile( constFileName: string);

var

HF:integer; {file handle}

HM:THandle; {file-mapping handle}

PF:pchar; {pointer to file view in memory}

i,j: integer;

Ofs:integer;

begin

{открываем файл}

HF:=FileOpen(FileName,fmOpenRead orfmShareDenyWrite);

ifHF<0 thenError('open file '''+FileName+'''');

try

{создаем объект-проецируемый файл}

HM:=CreateFileMapping(HF, nil,PAGE_READONLY,0,0, nil);

ifHM=0 thenError('can''t create file mapping');

try

{собственно проецируем объект в адресное }

PF:=MapViewOfFile(HM,FILE_MAP_READ,0,0,0);

{получаем указатель на область памяти, в которую спроецирован файл}

ifPF= nil thenError('can''t create map view of file');

try

{работаем с файлом как с областью памяти через указатель PF}

ifPBitmapFileHeader(PF)^.bfType<>$4D42 thenError('file format');

Ofs:=PBitmapFileHeader(PF)^.bfOffBits;

withPBitmapInfo(PF+sizeof(TBitmapFileHeader))^.bmiHeader do begin

if(biSize<>40) or(biPlanes<>1) thenError('file format');

if(biCompression<>BI_RGB) or(biBitCount<>24) thenError('only true-color BMP supported');

{выделяем память под битмэп}

Allocate(biWidth,biHeight);

end;

forj:=0 toBI.bmiHeader.biHeight-1 do

fori:=0 toBI.bmiHeader.biWidth-1 do

{Pixels - это property, возвр. указатель на соотв. RGBTriple в битмэпе}

Pixels[i,j]^.Tr:=ParrRGBTriple(PF+j*FLineSize+Ofs)^[i];

finally

UnmapViewOfFile(PF);

end;

finally

CloseHandle(HM);

end;

finally

FileClose(HF);

end;

end;

{эта функция - реализация Pixels read}

functionTMBitmap.GetPixel(X,Y:integer):PRGB;

begin

if(X>=0) and(Xand(Y>=0) and(Ythen

Result:=PRGB(PB+(Y)*FLineSize+X*3)

elseResult:=PRGB(PB);

end;

Если у вас на форме есть компонент TImage, то можно сделать так:

varBMP:TMBitmap;

B:TBitmap;

BMP.LoadFromFile( );

B:=TBitmap.Create;

B.Handle:=BMP.Handle;

Image1.Picture.Bitmap:=B;

и загруженный битмэп появится на экране.

Можно ли запустить OpenGL под Windows'95, и как поставлять его с программой?

Nomadicсоветует:

Надо сразу отметить, что для работы Microsoft OpenGL 1.1 требуется только наличие в системе двух динамических библиотек. Они различны для Windows 95 и для Windows NT. Они всегда инсталлируется вместе с системой, если эта система – Windows 95 OSR2 или более поздняя, или если это Windows NT. Однако, если Вы столкнулись с машиной, где OpenGL отсутствует (Windows 95 OSR1 и более ранние), то достаточно их взять из диcтpибyтива OSR2 (GLU32.DLL и OPENGL32.DLL) и записать в GetSystemDirectory – и запycкайте OpenGL-приложения на здоpовье.

Более эффективную реализацию OpenGL для Win32 от фирмы SGI я бы советовал стянуть с www.sgi.comили www.opengl.org(SGI OpenGL for Windows). Кроме того, оттуда же советую скачать дополнительную библиотеку функций-утилит, позволяющую упростить работу в OpenGL (GLUT). Возможно, что Вам понравится какой-нибудь API более высокого уровня, типа SCiTech MGL ( www.scitechsoft.com).

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

Интервал:

Закладка:

Сделать

Похожие книги на «Советы по Delphi. Версия 1.4.3 от 1.1.2001»

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


Отзывы о книге «Советы по Delphi. Версия 1.4.3 от 1.1.2001»

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

x