![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
снимок TPanel
TPel © (2007-08-23 13:31:00)в bmp , это компонент TPanelText = class(TPanel)
как ?
TPel (2007-08-24 09:47:00) [1]отбой неподписанный Handle был от формы
TPel (2007-08-24 09:45:00) [2]кокретно код выдает bmp 185х41 того же цвета,но без надписи
сама форма 544х375, панель 185х41
а надписи на панели нет PANEL.Caption:='TEST GRAPH';
хотя при снятии все формы она снимается
FormImage := GetFormImage;
TPel (2007-08-23 22:40:00) [3]увидел , с форма нормально, а панель не снимает
принудительно передаю обьект
function TForm1.GetFormImageEx(P:TPanel): TBitmap;
var
Ofs: Integer;
begin
Result := TBitmap.Create;
try
Result.Width := P.ClientWidth;
Result.Height := P.ClientHeight;
Result.Canvas.Brush := P.Brush;
Result.Canvas.FillRect(P.ClientRect);
Result.Canvas.Lock;
try
if GetWindowLong(Handle, GWL_STYLE) and WS_BORDER <> 0 then
Ofs := -1 // Don't draw form border
else
Ofs := 0; // There is no border
PaintTo(Result.Canvas.Handle, Ofs, Ofs);
finally
Result.Canvas.Unlock;
Result.SaveToFile('c:\11.bmp');
end;
except
Result.Free;
raise;
end;
end;
DrPass (2007-08-23 22:23:00) [4]
> TPel (23.08.07 22:14) [3]
...а внутрь GetFormImage заглядывал?
TPel (2007-08-23 22:14:00) [5]в коде засовывается по указателю, а как выдрать из памяти
аналог Save ? в исходнике происходит печать без буферов
var
FormImage: TBitmap;
Info: PBitmapInfo;
InfoSize: DWORD;
Image: Pointer;
ImageSize: DWORD;
Bits: HBITMAP;
DIBWidth, DIBHeight: Longint;
PrintWidth, PrintHeight: Longint;
begin
FormImage := GetFormImage;
Bits := FormImage.Handle;
GetDIBSizes(Bits, InfoSize, ImageSize);
Info := AllocMem(InfoSize);
Image := AllocMem(ImageSize);
GetDIB(Bits, 0, Info^, Image^);
with Info^.bmiHeader do
begin
DIBWidth := biWidth;
DIBHeight := biHeight;
end;
....
FormImage.Free;
end;
DrPass (2007-08-23 13:57:00) [6]Посмотри реализацию метода Print у формы. Принцип тот же самый
wp2 (2007-08-23 13:53:00) [7]ты хочешь рисунок панели сохранить в файл?