FImage

FImage selbst ist keine sichtbare Komponente. Es dient zum Laden von Bildern aus Datei und das Kopieren dieser in einen HDC.
FBImage verwendet GdiPlus.bi und kann Bitmap, JPG , PNG , GIF und TIFF laden (ab WindowXP)

PropertyDatentyp(Read/Write)Hinweise
ImgWidthInteger (R) Bild Weite in Pixel ( steht erst nach laden des Bildes zur Verfügung)
ImgHeightInteger (R) Bild Höhe in Pixel ( steht erst nach laden des Bildes zur Verfügung)
DCHDC (R) HDC in dem das Bild abgelegt wird.
bkColorUInteger (W) DC wird mit dieser Farbe gefüllt bevor das Bild hinein copiert wird. Wenn erforderlich - vor LoadImg oder LoadRes plazieren.
Sub/FunctionArgumenteHinweise
SUB LoadImg (s As String) Dateiname (ggf. mit Path) des Bildes
Sub LoadRes (resName As String) Resource Name ( kein ID)
Zeilen in Resource-Datei:  resName  RCDATA  PATH\BildName.typ
typ kann .jpg, .png, .gif, .bmp, .tiff sein
Sub ImgCopy (ByVal ZielDC As HDC, ByVal x As Integer, ByVal y As Integer) Kopiert das Bild in des ZielDC an Pos. x,y
Sub ImgCopyRect (ByVal ZielDC As HDC, tRC As RECT, qRC As RECT, ByVal rop As UInteger) Kopiert das Bild mit StretchBlt in das ZielDC in das Rect tRC aus dem Bild mit im qRC angegebenen RECT
Wenn rop=0 ist wird SRCCOPY verwendet. Es kann jede andere Raster-Operation verwendet werden ( siehe BitBlt)

FBImage sollte in der Form
Dim Shared As FImage ptr img1
img1 = NEW FImage

dimensioniert werden , da das HDC welches das Bild enthält im Destructor gelöscht wird. Dieser wird sicher beim Zerstören des Objeks mittels Delete aufgerufen.

Alternativ:

Dim Shared As FImage img1
dann muss nach form1.Show img1.Destructor aufgerufen werden
Beispiel :
    #Include "winFBgui.bi"


Dim Shared As FForm form1
Dim Shared As FPanel panel1
Dim Shared As FImage ptr img1

img1 = NEW FImage

Sub panel1_Paint(Byval dc as HDC)
img1->ImgCopy(dc, 0, 0)
End Sub

form1.Create("Testform",0,0,870,720)
Form1.Center

img1->bkColor = &HFFEEBB ' Setzt die gleiche Farbe wie Panel. Ist nur erforderlich wenn das Bild transparente bereiche hat.
img1->LoadImg("Garten1.jpg")
'' img1->ImgWidth und img1->ImgHeight steht erst nach laden des Bildes zur Verfügung !

panel1.Create(form1.Handle,10,10,img1->ImgWidth,img1->ImgHeight)
panel1.onPaint = @panel1_Paint
panel1.Color = &HFFEEBB
form1.Show

Delete img1

ExitProcess(0)
End