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

Вниз

Как сохранить картинку   Найти похожие ветки 

 
OlegM ©   (2003-06-16 07:50) [0]

Привет всем!
На форме есть Image и на Image есть Panel несколько штук.
Мне надо сохранить как изображение но вместе с Panel, подскажите кто понял о чем я.


 
Forester ©   (2003-06-16 08:13) [1]

На TPanel TImage понятно, обратно смутно, если честно.


 
OlegM ©   (2003-06-16 08:35) [2]

Ну вот киньте на форму image а на него panel и как бы сделать screenshot этого всего(без формы) и в файл.


 
alexvan ©   (2003-06-16 08:57) [3]

unit ScrnCap;

interface
uses WinTypes, WinProcs, Forms, Classes, Graphics, Controls;
{ Копирует прямоугольную область экрана }
function CaptureScreenRect(ARect : TRect) : TBitmap;
{ Копирование всего экрана }
function CaptureScreen : TBitmap;
{ Копирование клиентской области формы или элемента }
function CaptureClientImage(Control : TControl) : TBitmap;
{ Копирование всей формы элемента }
function CaptureControlImage(Control : TControl) : TBitmap;

{===============================================================}
implementation
function GetSystemPalette : HPalette;
var
PaletteSize : integer;
LogSize : integer;
LogPalette : PLogPalette;
DC : HDC;
Focus : HWND;
begin
result:=0;
Focus:=GetFocus;
DC:=GetDC(Focus);
try
PaletteSize:=GetDeviceCaps(DC, SIZEPALETTE);
LogSize:=SizeOf(TLogPalette)+(PaletteSize-1)*SizeOf(TPaletteEntry);
GetMem(LogPalette, LogSize);
try
with LogPalette^ do
begin
palVersion:=$0300;
palNumEntries:=PaletteSize;
GetSystemPaletteEntries(DC, 0, PaletteSize, palPalEntry);
end;
result:=CreatePalette(LogPalette^);
finally
FreeMem(LogPalette, LogSize);
end;
finally
ReleaseDC(Focus, DC);
end;
end;
function CaptureScreenRect(ARect : TRect) : TBitmap;
var
ScreenDC : HDC;
begin
Result:=TBitmap.Create;
with result, ARect do begin
Width:=Right-Left;
Height:=Bottom-Top;
ScreenDC:=GetDC(0);
try
BitBlt(Canvas.Handle, 0,0,Width,Height,ScreenDC, Left, Top, SRCCOPY );
finally
ReleaseDC(0, ScreenDC);
end;
Palette:=GetSystemPalette;
end;
end;

function CaptureScreen : TBitmap;
begin
with Screen do
Result:=CaptureScreenRect(Rect(0,0,Width,Height));
end;

function CaptureClientImage(Control : TControl) : TBitmap;
begin
with Control, Control.ClientOrigin do
result:=CaptureScreenRect(Bounds(X,Y,ClientWidth,ClientHeight));
end;

function CaptureControlImage(Control : TControl) : TBitmap;
begin
with Control do
if Parent=Nil then
result:=CaptureScreenRect(Bounds(Left,Top,Width,Height))
else
with Parent.ClientToScreen(Point(Left, Top)) do
result:=CaptureScreenRect(Bounds(X,Y,Width,Height));
end;
end.




end.


 
Anatoly Podgoretsky ©   (2003-06-16 09:37) [4]

Я понял, что ты хочешь панели положить на образ, зато не понял зачем.



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

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

Наверх




Память: 0.47 MB
Время: 0.02 c
14-7717
Шурик
2003-06-17 17:26
2003.07.03
Indy and Attachments


14-7619
ferrik
2003-06-18 21:06
2003.07.03
Hard Disk Drive


1-7548
makruha
2003-06-21 15:05
2003.07.03
Как вызвать метод объекта по указателю?


1-7406
LinOS
2003-06-23 06:33
2003.07.03
В ListBox хочу выделять Item правой кнопкой мыши.


3-7345
alexander_ua
2003-06-09 17:23
2003.07.03
Paradox и Win2000