|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Копирование области экрана в окно программы и в файл - одновременно
Пытаюсь одновременно занести информацию в окно своей программы и сохранить в файл.
Одной командой 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, чтобы они не замещали друг друга, а потом сохранить в один файл или сразу сохранить сумму этих изображений без вывода их в окно программы? Последний раз редактировалось vigard373, 25.01.2010 в 12:23. |