Пытаюсь одновременно занести информацию в окно своей программы и сохранить в файл.
Одной командой
CopyRect обойтись не удаётся и приходится использовать
B.Canvas.CopyRect
Но в итоге изображение помещается либо в
PaintBox1 либо сохраняется в файл
screentofile.bmp
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
DeskTop: TCanvas;
B : TBitmap;
begin
DeskTop := TCanvas.Create;
B := TBitmap.Create;
try
with DeskTop do
Handle := GetWindowDC(GetDesktopWindow);
with PaintBox1.Canvas do
begin
B.Width := 120;
B.Height := 120;
CopyRect(Rect(0, 0, 174, 201), DeskTop, Rect(120, 120, 294, 321));
B.SaveToFile('E:\screentofile.bmp');
end;
finally
DeskTop.Free;
B.Free;
end
end;
Конечно можно использовать эти разные команды подряд, тогда всё работает, но считаю это 'варварским' способом.
Наверняка есть более элегантный способ, но чего то не дотумкаю... и кстати изображение в PaintBox почему то сразу пропадает после замещения его другими окнами, как сделать его неизменным?
И ещё маленький вопросик: Как наложить(разместить) два и более разных изображений в рамках одного PaintBox или Image, чтобы они не замещали друг друга, а потом сохранить в один файл или сразу сохранить сумму этих изображений без вывода их в окно программы?