Форум: "Основная";
Текущий архив: 2008.11.02;
Скачать: [xml.tar.bz2];
ВнизКопирование экрана Найти похожие ветки
← →
Asker (2007-12-10 19:55) [0]Подскажите почему код описанный тут:
http://www.delphimaster.ru/cgi-bin/faq.pl?look=1&id=16-988625471
дает на одних компах черный прямоугольник, а на других нормально работает??
← →
Palladin © (2007-12-10 20:10) [1]объяснять не хочу, потому что по ссылке все слишком жестоко деформатировано...
type
TDesktopCanvas = class(TCanvas)
private
DC : hDC;
function GetWidth:Integer;
function GetHeight:Integer;
public
constructor Create;
destructor Destroy; override;
published
property Width: Integer read GetWidth;
property Height: Integer read GetHeight;
end;
function TDesktopCanvas.GetWidth:Integer;
begin
Result:=GetDeviceCaps(Handle,HORZRES);
end;
function TDesktopCanvas.GetHeight:Integer;
begin
Result:=GetDeviceCaps(Handle,VERTRES);
end;
constructor TDesktopCanvas.Create;
begin
inherited Create;
DC := GetDC(GetDesktopWindow);
Handle := DC;
end;
destructor TDesktopCanvas.Destroy;
begin
ReleaseDC(Handle, DC);
inherited Destroy;
end;
Procedure SaveScreen(Const p_strFileName:String);
Var
d:TDesktop
b:TBitmap;
Begin
b:=TBitmap.Create;
d:=TDesktopCanvas.Create(Nil);
b.Width:=d.Width;
b.Height:=d.Height;
d.CopyRect(Rect(0,0,d.Width,d.Height),b.Canvas,Rect(0,0,d.Width,d.Height));
d.Free;
b.SaveToFile(p_strFileName);
b.Free;
End;
← →
имя (2008-01-31 14:36) [2]Удалено модератором
← →
Style © (2008-02-01 16:54) [3]А по ссылке не работает возможно потому, что палитры в том режиме,в котором работает ОС , просто нет. 32 бита на цвет.
а функция
function CaptureScreenRect(ARect : TRect) : TBitmap;
копирует экран нормально,
только вот потом
Palette:=GetSystemPalette;
палитра сбрасывается в 0, и получается черный квадрат.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2008.11.02;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.007 c