Home | Chi sono | Contattami
 

Progr. lineare

Delphi
 
Componenti
  Database
 
Miei articoli

Windows

Miei articoli 

 

Salvare in una Bitmap l'intero contenuto di una ScrollBox


Tempo fa avevo trovato in un forum del codice che consentiva di salvare in una Bitmap (file bmp) l'intero contenuto di un controllo di tipo TScrollBox. Non mi ricordo la fonte comunque ho sistemato un pò il codice (poche cose, ... proprio poche) ottenendo una funzione che consente l'esportazione in una bitmap di qualsiasi controllo di tipo TScrollingWinControl e derivati (quindi ad esempio tutte le Form e le ScrollBox)

function ScrollControl2Bmp( ScrollControl: TScrollingWinControl; BmpFileName: string ): Boolean; var Bmp: TBitmap; R: TRect; Dc: HDC; AC: TCanvas; BmpW: TRect; P: Integer; begin Result := False; Bmp := TBitmap.Create; Bmp.Width := ScrollControl.HorzScrollbar.Range + 8; Bmp.Height := ScrollControl.VertScrollbar.Range + 8; DC := GetWindowDc(ScrollControl.Handle); AC := TCanvas.Create; AC.handle := DC; ScrollControl.HorzScrollBar.Position := 0; ScrollControl.VertScrollBar.Position := 0; Application.ProcessMessages; R := ScrollControl.ClientRect; R.Top := 2; R.Left := 2; BmpW := R; repeat repeat Application.ProcessMessages; Bmp.Canvas.CopyRect(BmpW, ac, r); P := ScrollControl.HorzScrollBar.Position; ScrollControl.HorzScrollBar.Position := P + 20; if P <> ScrollControl.HorzScrollBar.Position then begin BmpW.Left := Bmpw.Left+20; BmpW.Right := Bmpw.Right+20; Application.ProcessMessages; end; until P = ScrollControl.HorzScrollBar.Position; P := ScrollControl.VertScrollBar.Position; ScrollControl.VertScrollBar.Position := P + 20; Application.ProcessMessages; if P <> ScrollControl.VertScrollBar.Position then begin BmpW.Top := Bmpw.Top+20; Bmpw.Bottom := BmpW.Bottom+20; Bmpw.Left := R.Left; Bmpw.Right := R.Right; Application.ProcessMessages; end; ScrollControl.HorzScrollBar.Position := 0; Application.ProcessMessages; until P = ScrollControl.VertScrollBar.Position; Bmp.SaveToFile(BmpFileName); Bmp.Free; Result := True; end;

Scroll2Bmp.7z

 

 

 
 
Your Ad Here