Ciao a tutti,

Mi chiedo perché se uso questo codice per catturare il contenuto di un oggetto in un'immagine, con un ScrollBox (ContenitorePersone) non funziona, mentre un ScaledLayout funziona.

Dove può insidiarsi il problema?

var  AreaDiDestinazione: TRectF; ImmagineCreata : TBitmap;
begin
if DialogoSalvaImmagine.Execute then
begin
// Crea il rettangolo di disegno con le dimensioni dell'immagine
AreaDiDestinazione := RectF(0, 0, ContenitorePersone.ContentBounds.Width, ContenitorePersone.ContentBounds.Height);
// Inizializza il bitmap di destinazione con le dimensioni del controllo
ImmagineCreata := TBitmap.Create;
ImmagineCreata.Create(Trunc(AreaDiDestinazione.Width), Trunc(AreaDiDestinazione.Height));
//Comincia a disegnare...
ImmagineCreata.Canvas.BeginScene;
try
//Traccia il controllo e i suoi figli nel bitmap di destinazione
ContenitorePersone.PaintTo(ImmagineCreata.Canvas, AreaDiDestinazione);
finally
// ...finisce il disegno
ImmagineCreata.Canvas.EndScene;
end;
// Salva l'immagine nel formato PNG
ImmagineCreata.SaveToFile(DialogoSalvaImmagine.FileName);
//svuota la memoria
ImmagineCreata.Free;
end;
end;


ho provato pure a mettere al posto di

ContenitorePersone.PaintTo
questo

ContenitorePersone.Content.PaintTo
ma il risultato è uguale, la dimensione dell'immagine in uscita è corretta, ma il contenuto si riferisce esclusivamente solo alla dimensione della finestra visibile.