2012-05-24 19 views
6

Ho un oggetto TForm la cui altezza è maggiore della risoluzione verticale richiesta del mio schermo.Screenshot del modulo le cui dimensioni sono superiori alle dimensioni dello schermo

Per qualche motivo, Windows non consente all'area visibile (client?) Del modulo di superare la risoluzione dello schermo, pertanto le barre di scorrimento verticali compaiono sul mio modulo.

Come posso ottenere un'immagine TBitmap o uno screenshot dell'intero modulo (nessuna barra di scorrimento, tutti i componenti del modulo visibili) in modo che tutto il contenuto del modulo sia visibile?

+0

Hai provato il metodo ['GetFormImage'] (http://docwiki.embarcadero.com/Libraries/en/Vcl.Forms.TCustomForm.GetFormImage)? ; – RRUZ

+0

Sì, 'GetFormImage' è quello che stiamo attualmente utilizzando. – ardnew

+0

Ad esempio, creare un oggetto 'TForm', posizionare un sacco di contenuto verticale per far apparire automaticamente le barre di scorrimento verticali (abilitate). L'altezza totale del contenuto dovrebbe superare la risoluzione dello schermo verticale. Chiama "GetFormImage" e vedrai che il contenuto più basso viene scartato. – ardnew

risposta

8

In un primo momento è necessario assicurarsi che il modulo non abbia barre di scorrimento. Per questo è possibile scrivere un gestore di eventi per FormConstrainedResize e regolare MaxWidth e MaxHeight in base alle proprie esigenze. Se la dimensione del modulo è limitata durante la progettazione, impostare la larghezza e l'altezza richieste nell'evento FormCreate sui valori desiderati.

Ora è possibile utilizzare GetFormImage per ottenere lo screenshot.

+0

Eccellente, grazie. – ardnew