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

Вниз

Сохранение данных в файл   Найти похожие ветки 

 
Shluz ©   (2003-11-18 12:48) [0]

Есть следующий код (трансировал с СИ MSDK) здесь создается снимок участка экрана и отображается на канву формы..а вопрос, вообщем-то как проецировать эти данные не на канву , а файл(средствами API) ??
procedure TForm1.Button1Click(Sender: TObject);
var
hdcScreen,hdcCompatible: HDC;
hbmScreen:Hbitmap;
begin
hdcScreen := GetDC(0);
hdcCompatible := CreateCompatibleDC(hdcScreen);
hbmScreen := CreateCompatibleBitmap(hdcScreen,
GetDeviceCaps(hdcScreen, HORZRES),

GetDeviceCaps(hdcScreen, VERTRES));
if SelectObject(hdcCompatible, hbmScreen)<>0 then
showmessage("Compatible Bitmap Selection");

//howWindow(handle, SW_HIDE);
if not BitBlt(canvas.Handle,
10,10,
100, 200,
hdcScreen,
0,0,
SRCCOPY)
then

showmessage("Screen to Compat Blt Failed");
end;


 
Digitman ©   (2003-11-18 12:57) [1]

вместо бит-блиттинга используй ф-цию GetDIBits, котора скопирует в указанный буфер содержимое битмапа для последующей записи полученного содержимого буфера куда угодно, в т.ч. и в файл


 
Shluz ©   (2003-11-18 13:24) [2]

>Digitman
дело в том, что слабо еще разбираюсь в работе с файлами на таком уровне, если можно приведите пример


 
Digitman ©   (2003-11-18 13:33) [3]

var
fs: TStream;
buf: Pointer; // здесь у тебя - указатель на буфер, в который ты перед этим скопировал битмап
bufsize: Integer; // здесь - размер скопированных в буфер данных

...

fs := TFileStream.Create("myfile", fmCreate);
try
fs.WriteBuffer(buf^, bufsize);
finally
fs.Free;
end;


 
Shluz ©   (2003-11-18 13:55) [4]

ОГРОМНОЕ спасибо! Технологию понял :)



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

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

Наверх




Память: 0.47 MB
Время: 0.014 c
1-72797
user
2004-01-13 08:33
2004.01.23
Как программно разбить в excel клетку попалам по диагонали ???


14-72906
имя
2004-01-01 18:41
2004.01.23
Кому нужена бесплатнаябиблиотека для поддрежки новор. скинов ???


3-72668
senya
2003-12-26 19:12
2004.01.23
Есть ли какая-нить альтернатива DBChart ?


3-72672
rel_
2003-12-18 12:45
2004.01.23
Запрос по дате


14-72881
TButton
2004-01-05 00:56
2004.01.23
блин! в кладовке вообще поиск есть?