Newsgroup: it.comp.lang.vo-clipper
Titolo: visualizzazione immagine

per visualizzare una immagine .jpeg nell'applicativo ereditato veniva utilizzato un ocx.
Nell'intento di snellire l'applicativo sto cercando di utilizzare le fab paint, ma l'immagine mi appare o troppo larga o troppo stretta rispetto al riquadro disponibile. Comunque brutta da vedere.
Si può ovviare in qualche maniera oppure sono costretta a ritornare al OCX, certamente bello ma inutile se debbo limitarmi a visualizzare una immagine tipo fototessera.
Grazie delle risposte e sempre grazie per l'aiuto che mi avete dato.
Aurora Baccio

Buon giorno Aurora,

Senz'altro si può fare.
 
Devo solo cercare il codice che ho usato.
 
Wolfgang
 
 
 
-- 
 

Buon giorno Aurora,
 
la funzione che si può usare è la DIBStretch:
 
DIBStretch( _ptrBitmap, _hWnd, _nWidth, _nHeight, 1 / float( _nZoom ) )
 
e ptrBitmap si crea così:
 
InitializeCAPaint()
_ptrBitmap	:= DIBCreateFromFile( psz( _cFileName ) )
 
Importante liberare la bitmap dopo l'uso con
 
DIBDelete( _ptrBitmap )
 
Comunque la FabPaint non serve (versioni più aggiornate di Visual
Objects usano la FabPaint rinominato al posto della CAPaint.)
 
Se questa informazione non è sufficiente, mi faccia sapere.
 
Wolfgang

-- 
 

 Objects usano la FabPaint rinominato al posto della CAPaint.)
Buon pomeriggio, Wolfgang
io utilizzo Vo28sp4b build 2838
potrebbe spiegarmi quel che ha scritto, per favore.
cioe' posto miafoto.jpeg, come la visualizzo senza le fab paint o un ocx?
in questo caso risolverei tutto all'interno di vo


la posto anche qui
 
Buongiorno Aurora,
 
sotto la GUI Classes di VO trovi le CAPaint.
Vedrai che le funzioni che ti ha elencato Wolfgang (DIBStretch, 
DIBCreateFromFile etc.) le trovi li.
 
ciao
Stefano


 ocx?  in questo caso risolverei tutto all'interno di vo
 
dove deve essere visualizzato questo jpeg? In una finestra popup oppure
in un controllo dentro una finestra?
Sono due classi differenti che uso per questo.
 
Saluti
 
Wolfgang
 
 
 
-- 
 


buon pomeriggio,
in un controllo (custom control) dentro la finestra datadialog
saluti e grazie
aurora


buon pomeriggio Stefano,
dopo quanto scritto dall'ottimo signor Riedmann avevo già trovato la classe CAPAINT. Purtroppo non ho alcuna documentazione e quindi non so usarla.
Quel che mi serve è un esempio, solo questo.
Grazie
Aurora

Buonasera Aurora,
 
prova a guardare l'esempio che trovi in C:\cavo28\Samples\CAPaint
 
ciao
Stefano


 in un controllo (custom control) dentro la finestra datadialog
 
invece di un customcontrol uso una classe ereditata da SingleLineEdit.
 
Le parti più importanti sono:
 
 
method Init( oOwner, nID, oPoint, oDimension, kStyle ) class
BitmapControl
    Super:Init( oOwner, nID, oPoint, oDimension, kStyle )
    self:SetStyle( WS_DISABLED, TRUE )
    InvalidateRect( self:Handle(), NULL, TRUE )
 
    RETURN self
 
method Expose( oE ) class BitmapControl
  local ptrBitmap			as ptr 
 
  Super:Expose( oE )
  ptrBitmap	:= DIBCreateFromFile( String2Psz( _cGrafikName ) )
  if ptrBitmap != null_ptr
    DIBStretch( ptrBitmap, self:Handle(), 1, 1, 1.0 )
    DIBDelete( ptrBitmap )
    ptrBitmap			:= null_ptr                   
  else
    debOut( "failed to create DIB from file " + _cGrafikName ) 
  endif
 
  RETURN NIL
 
Il metodo Expose viene chiamato automaticamente quando il controllo
deve essere ridisegnato.
 
Il mio controllo è molto più complesso in quanto permette la
visualizzazione di un'immagine contenuta in un campo del database
sfruttando il databinding delle classi GUI di VO.
 
Saluti
 
Wolfgang
 
 
-- 
 

 
grazie del suggerimento,
come ho spiegato a me serve che in una datadialog dentro un controllo venga visualizzata una immagine.Per essere più precisi tipo patente guida.
L'esempio suggerito non riguarda esattamente questo.
comunque grazie
aurora



signor Riedman grazie dell'aiuto
sto provando il suo suggerimento, le faccio conoscere i risultati.
aurora baccio