Разрешение экрана 1920 на 1080
форма 3661 на 1920
на форме IMAGE висит поверх выводятся данные
при сохранении сохраняется только видимая часть экрана а не вся форма
что самое интересное что вчера вся форма сохранялась до переустановки винды. (win7)
вот как сохраняю
Код:
wndcanvas := TCanvas.Create;
wndcanvas.Handle := GetWindowDC(Handle);
bmp := TBitmap.Create;
bmp.Width := 3651;
bmp.Height := 1920;
bmp.Canvas.CopyRect(bmp.Canvas.ClipRect, wndcanvas, wndcanvas.ClipRect);
bmp.PixelFormat := pf32bit;
bmp.SaveToFile(put+'1.bmp');
bmp.Free;
ReleaseDC(Handle, wndcanvas.Handle);
wndcanvas.Free;
вот 2 результат
Код:
FileName := ExtractFilePath(ParamStr(0)) + 'screen.bmp';
Rec.TopLeft := ScreenToClient(Self.BoundsRect.TopLeft);
Rec.BottomRight := ScreenToClient(Self.BoundsRect.BottomRight);
Bit := TBitmap.Create;
Bit.Width := Rec.Right - Rec.Left + 1;
Bit.Height := Rec.Bottom - Rec.Top + 1;
Bit.Canvas.CopyRect(Rect(0, 0, Bit.Width, Bit.Height), Self.Canvas, Rec);
bit.SaveToFile(put+'2.bmp');
FreeAndNil(Bit);
Админ: Пользуемся тегами для оформления кода!
во втором варианте сохраняет правильный размер форму но видимая часть только с экрана