Bitmap-Datei unter GUI anzeigen

Grafische Primitive, XbaseParts und Darstellungsfragen allgemein.

Moderator: Moderatoren

Antworten
Benutzeravatar
andreas
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1902
Registriert: Mi, 28. Sep 2005 10:53
Wohnort: Osnabrück
Hat sich bedankt: 4 Mal
Kontaktdaten:

Bitmap-Datei unter GUI anzeigen

Beitrag von andreas »

Hallo Leute,

ich habe folgendes Problem. In den Memo-Feldern werden die Bitmapdateien gespeichert. Jetzt möchte ich diese in einem Fenster anzeigen lassen, was aber irgendwie nicht funktioniert.
Hier die Ausschnitte aus meinem Programm:

Code: Alles auswählen

DEFAULT oParent  TO AppDesktop(), ;
           aPos     TO {27,69}, ;
           aSize    TO {944,680}, ;
           lVisible TO .F.

   DEFAULT aPP TO {}
   AAdd ( aPP, { XBP_PP_COMPOUNDNAME, "8.Arial" } )
   ::XbpDialog:init( oParent, oOwner, aPos, aSize, aPP, lVisible )

::einBMPUnterschrift := XbpStatic():new( ::drawingArea, , {704,512}, {200,60} )
   ::einBMPUnterschrift:caption := 11
   ::einBMPUnterschrift:clipSiblings := .T.
   ::einBMPUnterschrift:type := XBPSTATIC_TYPE_BITMAP

...

Code: Alles auswählen

IF len(alltrim((DBPALMHIST)->untersch))>0
			cDatei := alltrim(cTempPfad)+"BMP"+strzero(1,5)+".bmp"

			nHandle := FCreate( (cDatei) )

			IF nHandle != -1

				FWrite( nHandle, FromBase64((DBPALMHIST)->untersch) )
				FClose( nHandle )

				::cUnterschriftDatei := cDatei
				**Hier die Unterschrift anzeigen

				oPS := ::einBMPUnterschrift:drawingarea
				::oUnterschrift := XbpBitmap():new():create( oPS ) //
				IF ::oUnterschrift:loadFile( cDatei )
					::einBMPUnterschrift:show()
					*::einBMPUnterschrift:caption := ::oUnterschrift
					::einNameUnterschr:show()
					::einNameUnterschr:setdata( alltrim((DBPALMHIST)->zeichner) )
					::oUnterschrift:draw( oPS, { 0,0, 200,60 } )  
				ENDIF

			else

			ENDIF

			ENDIF

Was mache ich falsch, dass die Datei nicht angezeigt wird. Hat schon jemand Erfarung damit.
Gruß,

Andreas
VIP der XUG Osnabrück
Benutzeravatar
andreas
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1902
Registriert: Mi, 28. Sep 2005 10:53
Wohnort: Osnabrück
Hat sich bedankt: 4 Mal
Kontaktdaten:

Beitrag von andreas »

Danke,

habe aber schon die Lösung selber gefunden:

Code: Alles auswählen

METHOD Unterschrift()
	local cDatei := ""
	local oPS, lOk := .f.

        IF len(alltrim((DBPALMHIST)->untersch))>0
		cDatei := alltrim(cTempPfad)+"BMP"+strzero(1,5)+".bmp"

		nHandle := FCreate( (cDatei) )

		IF nHandle != -1

			FWrite( nHandle, FromBase64((DBPALMHIST)->untersch) )
			FClose( nHandle )

			::cUnterschriftDatei := cDatei
			**Hier die Unterschrift anzeigen

			::einBMPUnterschrift:Setcaption( 0 )
			oPS := ::einBMPUnterschrift:lockPS()   
			::oUnterschrift := XbpBitmap():new():create( oPS ) 
			IF ::oUnterschrift:loadFile( cDatei )
				::einNameUnterschr:setdata( alltrim((DBPALMHIST)->zeichner) )
				if ::oUnterschrift:draw( oPS, { 0,0, 200, 60 }, { 0,0, 158, 44 } ) 
					lOk := .t.
				else
					msgbox("Die Unterschrift konnte nicht angezeigt werden!")
				endif
			ENDIF
			::einBMPUnterschrift:unlockPS( oPS )
			IF lOk
				::einBMPUnterschrift:Setcaption( ::oUnterschrift )
				::einBMPUnterschrift:show()
				::einNameUnterschr:show()
			ENDIF
		ENDIF

	ENDIF
RETURN self
Gruß,

Andreas
VIP der XUG Osnabrück
Antworten