Embedding images in code

Published on by Yousfi Benameur


Can use any image in a project by many ways .below  6 vfp methods and 2 extra method available on the web.
i present at the document end a base64 converter very usefull for whose working on web.

1-standard way :as a resource loaded in a project (add physically to the project)
2-as a code in a prg or form for ex. with text/endtext but image must be small(text/endtext dont support more 8192 octets
 otherwise you have an error generated and warning: VFP9 crashes.)

_cliptext=filetostr(getpict())   &&any small picture
and paste the clipboard between text/entext in code.

local m.myvar
text to m.myvar noshow   &&(paste clipboard instead _cliptext below)
<<_cliptext>>
endtext
*then use the pictureVal to restore the blob to visual image with
thisform.image1.pictureVal=m.myvar
this is available in vfp9 whose uses gdiplus class to render images.
the method is reversible (picture to blob & blob to picture).

the image even in code can be regenerated as physical image with

strtofile(yblob,original image file)

this method is limited to small images only (can try the code1 below).it can embed 8092 octets (vfp9 capacities).but litterally can embed big strings.for solution,can concatenate many strings <=8192 octets to build one big image (until 16.7 mOctets theorically).
On the contrary,the web actually can embed a big image in one big string (without any physical location but as a blob).
VFP have set this limitation (see vfp capacities).

3-can store images in blob field of a cursor or a table and use code to restore them physically and visually.
a blob field is a memo field whose stores binary data of any kind, such as ASCII text, an executable (.exe) file,
or a stream of bytes, and with indeterminate length.

for each image use :
 m.yblob=filetostr(getpict())
and copy it to the blob field of the table or cursor record.
to restore as visual image on a form for ex. use: thisform.pictureVal=m.yblob
the cursor or table can be very heavy if you store too big images.
the images can also regenerated as physical with strtofile() function.
try the code2 below

4-the usual way is to get a path pointing to the image location. images must exist in some location....

5-the old method with general fields.its deprecated and any image loaded in G is lost (cannot be regenerated ).the method is not reversible.

6-the extra web method is to load a blob encoded 64 string as image .it can be very long and its not very
 limited(as web permit).
 7.case one text to stire one image as blob.its same as blob fields.
 8.can download images from web with API and make them as reources.

 

Click on code to select [then copy] -click outside to deselect


*1* creating a richtext toolbar with blob images
publi yform
yform=newObject("yrichtext")
yform.show
read events
retu
*
DEFINE CLASS yrichtext AS form
    Top = 4
    Left = 42
	Height = 393
	Width = 919
    showWindow=2
	Caption = "PictureVal value of some icons"
	Name = "Form1"

	ADD OBJECT edit1 AS editbox WITH ;
		Height = 253, ;
		Left = 12, ;
		ReadOnly = .T., ;
		Top = 94, ;
		Width = 805, ;
		Name = "Edit1"

	ADD OBJECT image1 AS image WITH ;
		Height = 37, ;
		Left = 840, ;
		Top = 132, ;
		Width = 49, ;
		Name = "Image1"

	ADD OBJECT label1 AS label WITH ;
		AutoSize = .T., ;
		Caption = "click to Test", ;
		Height = 17, ;
		Left = 840, ;
		Top = 180, ;
		Width = 66, ;
		Name = "Label1"

	ADD OBJECT label2 AS label WITH ;
		AutoSize = .T., ;
		FontSize = 12, ;
		Caption = "Blob Code", ;
		Height = 21, ;
		Left = 24, ;
		Top = 67, ;
		Width = 77, ;
		ForeColor = RGB(255,0,0), ;
		Name = "Label2"

	PROCEDURE my
		LPARAMETERS nButton, nShift, nXCoord, nYCoord
		*--- aevent create an array laEvents
		   Aevents( myArray, 0)
		 *--- reference the calling object
		    loObject = myArray[1]
		 local i
		i=int(val(strextract(loObject.name,"img","")))

		thisform.edit1.value=loObject.pictureVal
	ENDPROC

	PROCEDURE Init
		&&20 strings blobs for pictureVal

		local src1,src2,src3,src4,src5,src6,src7,src8,src9,src10,src11,src12,src13,src14,src15,src17,src18,src19,src20  &&etc...
		text to m.src1 noshow
		R0lGODlhFgAWAIQbAD04KTRLYzFRjlldZl9vj1dusY14WYODhpWIbbSVFY6O7IOXw5qbms+wUbCztca0ccS4kdDQjdTLtMrL1O3YitHa7OPcsd/f4PfvrvDv8Pv5xv///////////////////yH5BAEKAB8ALAAAAAAWABYAAAV84CeOZGmeaKqubMteyzK547QoBcFWTm/jgsHq4rhMLoxFIehQQSAWR+Z4IAyaJ0kEgtFoLIzLwRE4oCQWrxoTOTAIhMCZ0tVgMBQKZHAYyFEWEV14eQ8IflhnEHmFDQkAiSkQCI2PDC4QBg+OAJc0ewadNCOgo6anqKkoIQA7
		endtext


		text to m.x1 noshow
		iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAABGdBTUEAALGPC/xhBQAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9oEBxcZFmGboiwAAAAIdEVYdENvbW1lbnQA9syWvwAAAuFJREFUOMvtlUtsjFEUx//
		endtext
		text to m.x2 noshow
		n3nn0YdpBh1abRpt4LFqtqkc3jRKkNEIsiIRIBBEhJJpKlIVo4m1RRMKKjQiRMJRUqUdKPT71qpIpiRKPaqdF55tv5vvusZjQTjOlseUkd3Xu/3dPzusC/22wtu2wRn+jG5So/OCDh8ycMJDflehMlkJkVK7KUYN+ufzA/RttH76zaVocDptRxzQtNi3mRWu
		endtext
		text to m.x3 noshow
		Pc+6cKtlXZ/sddP2uu9uXlmYXZ6Qm8v4Tz8lhF1H+zDQXt7S8oLMXtbF4e8QaFHjj3kbP2MzkktHpiTjp9VH6iHiA+whtAsX5brpwueMGdONdf/2A4M7ukDs1JW662+XkqTkeUoqjKtOjm2h53YFL15pSJ04Zc94wdtibr26fXlC2mzRvBccEbz2kiRFD414
		endtext
		text to m.x4 noshow
		tKMlEZbVGT33+qCoHgha81SWYsew0r1uzfNylmtpx80pngQQ91LwVk2JGvGnfvZG6YcYRAT16GFtW5kKKfo1EQLtfh5Q2etT0BIWF+aitq4fDbk+ImYo1OxvGF03waFJQvBCkvDffRyEtxQiFFYgAZTHS0zwAGD7fG5TNnYNTp8/FzvGwJOfmgG7GOx0SAKKgQgDMgKBI0NJGMEImpGDk5+WACEwEd0ywblhGUZ4Hw5OdUekRBLT7DTgdEgxACsIznx8zpmWh7k4rkpJcuHDxCul6MDsmmBXDlWCH2+XozSgBnzsNCEE4euYV4pwCpsWYPW0UHDYBKSWu1NYjENDReqtKjwn2+zvtTc1vMSTB/mvev/WEYSlASsLimcOhOBJxw+N3aP/SjefNL5GePZmpu4kG7OPr1+tOfPyUu3BecWYKcwQcDFmwFKAUo90fhKDInBCAmvqnyMgqUEagQwCoHBDc1rjv9pIlD8IbVkz6qYViIBQGTJPx4k0XpIgEZoRN1Da0cij4VfR0ta3WvBXH/rjdCufv6R2zPgPH/e4pxSBCpeatqPrjNiso203/5s/zA171Mv8+w1LOAAAAAElFTkSuQmCC
		endtext
		m.src2=m.x1+m.x2+m.x3+m.x4

		text to m.src3 noshow
		R0lGODlhFgAWAOMKADljwliE33mOrpGjuYKl8aezxqPD+7/I19DV3NHa7P///////////////////////yH5BAEKAA8ALAAAAAAWABYAAARR8MlJq7046807TkaYeJJBnES4EeUJvIGapWYAC0CsocQ7SDlWJkAkCA6ToMYWIARGQF3mRQVIEjkkSVLIbSfEwhdRIH4fh/DZMICe3/C4nBQBADs=
		endtext

		text to m.src4 noshow
		R0lGODlhFgAWAMIHAB1ChDljwl9vj1iE34Kl8aPD+7/I1////yH5BAEKAAcALAAAAAAWABYAAANKeLrc/jDKSesyphi7SiEgsVXZEATDICqBVJjpqWZt9NaEDNbQK1wCQsxlYnxMAImhyDoFAElJasRRvAZVRqqQXUy7Cgx4TC6bswkAOw==
		endtext

		text to m.src5 noshow
		iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAABGdBTUEAALGPC/xhBQAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAAd0SU1FB9oECQMCKPI8CIIAAAAIdEVYdENvbW1lbnQA9syWvwAAAuhJREFUOMtjYBgFxAB501ZWBvVaL2nHnlmk6mXCJbF69zU+Hz/9fB5O1lx+bg45qhl8/fYr5it3XrP/YWTUvvvk3VeqGXz70TvbJy8+Wv39+2/Hz19/mGwjZzuTYjALuoBv9jImaXHeyD3H7kU8fPj2ICML8z92dlbtMzdeiG3fco7J08foH1kurkm3E9iw54YvKwuTuom+LPt/BgbWf3//sf37/1/c02cCG1lB8f//f95DZx74MTMzshhoSm6szrQ/a6Ir/Z2RkfEjBxuLYFpDiDi6Af///2ckaHBp7+7wmavP5n76+P2ClrLIYl8H9W36auJCbCxM4szMTJac7Kza////R3H1w2cfWAgafPbqs5g7D95++/P1B4+ECK8tAwMDw/1H7159+/7r7ZcvPz4fOHbzEwMDwx8GBgaGnNatfHZx8zqrJ+4VJBh5CQEGOySEua/v3n7hXmqI8WUGBgYGL3vVG7fuPK3i5GD9/fja7ZsMDAzMG/Ze52mZeSj4yu1XEq/ff7W5dvfVAS1lsXc4Db7z8C3r8p7Qjf///2dnZGxlqJuyr3rPqQd/Hhyu7oSpYWScylDQsd3kzvnH738wMDzj5GBN1VIWW4c3KDon7VOvm7S3paB9u5qsU5/x5KUnlY+eexQbkLNsErK61+++VnAJcfkyMTIwffj0QwZbJDKjcETs1Y8evyd48toz8y/ffzv//vPP4veffxpX77z6l5JewHPu8MqTDAwMDLzyrjb/mZm0JcT5Lj+89+Ybm6zz95oMh7s4XbygN3Sluq4Mj5K8iKMgP4f0////fv77//8nLy+7MCcXmyYDAwODS9jM9tcvPypd35pne3ljdjvj26+H2dhYpuENikgfvQeXNmSl3tqepxXsqhXPyc666s+fv1fMdKR3TK72zpix8nTc7bdfhfkEeVbC9KhbK/9iYWHiErbu6MWbY/7//8/4//9/pgOnH6jGVazvFDRtq2VgiBIZrUTIBgCk+ivHvuEKwAAAAABJRU5ErkJggg==
		endtext


		 src6="R0lGODlhFgAWAID/AMDAwAAAACH5BAEAAAAALAAAAAAWABYAQAInhI+pa+H9mJy0LhdgtrxzDG5WGFVk6aXqyk6Y9kXvKKNuLbb6zgMFADs="
		 src7="R0lGODlhFgAWAKEDAAAAAF9vj5WIbf///yH5BAEAAAMALAAAAAAWABYAAAIjnI+py+0Po5x0gXvruEKHrF2BB1YiCWgbMFIYpsbyTNd2UwAAOw=="
		 src8="R0lGODlhFgAWAKECAAAAAF9vj////////yH5BAEAAAIALAAAAAAWABYAAAIrlI+py+0Po5zUgAsEzvEeL4Ea15EiJJ5PSqJmuwKBEKgxVuXWtun+DwxCCgA7"
		 src9="R0lGODlhFgAWAID/AMDAwAAAACH5BAEAAAAALAAAAAAWABYAQAIghI+py+0Po5y02ouz3jL4D4JMGELkGYxo+qzl4nKyXAAAOw=="
		 src10="R0lGODlhFgAWAID/AMDAwAAAACH5BAEAAAAALAAAAAAWABYAQAIfhI+py+0Po5y02ouz3jL4D4JOGI7kaZ5Bqn4sycVbAQA7"
		 src11="R0lGODlhFgAWAID/AMDAwAAAACH5BAEAAAAALAAAAAAWABYAQAIghI+py+0Po5y02ouz3jL4D4JQGDLkGYxouqzl43JyVgAAOw=="
		 src12="R0lGODlhFgAWAMIGAAAAADljwliE35GjuaezxtHa7P///////yH5BAEAAAcALAAAAAAWABYAAAM2eLrc/jDKSespwjoRFvggCBUBoTFBeq6QIAysQnRHaEOzyaZ07Lu9lUBnC0UGQU1K52s6n5oEADs="
		 src13="R0lGODlhFgAWAMIGAAAAAB1ChF9vj1iE33mOrqezxv///////yH5BAEAAAcALAAAAAAWABYAAAMyeLrc/jDKSesppNhGRlBAKIZRERBbqm6YtnbfMY7lud64UwiuKnigGQliQuWOyKQykgAAOw=="

		 text to m.src14 noshow
		 R0lGODlhFgAWAIQXAC1NqjFRjkBgmT9nqUJnsk9xrFJ7u2R9qmKBt1iGzHmOrm6Sz4OXw3Odz4Cl2ZSnw6KxyqO306K63bG70bTB0rDI3bvI4P///////////////////////////////////yH5BAEKAB8ALAAAAAAWABYAAAVP4CeOZGmeaKqubEs2CekkErvEI1zZuOgYFlakECEZFi0GgTGKEBATFmJAVXweVOoKEQgABB9IQDCmrLpjETrQQlhHjINrTq/b7/i8fp8PAQA7
		 endtext
		
		
		 src15="R0lGODlhFgAWAMIHAAAAADljwliE35GjuaezxtDV3NHa7P///yH5BAEAAAcALAAAAAAWABYAAAM2eLrc/jDKCQG9F2i7u8agQgyK1z2EIBil+TWqEMxhMczsYVJ3e4ahk+sFnAgtxSQDqWw6n5cEADs="
		 src16="R0lGODlhFgAWAOMIAAAAADljwl9vj1iE35GjuaezxtDV3NHa7P///////////////////////////////yH5BAEAAAgALAAAAAAWABYAAAQ7EMlJq704650B/x8gemMpgugwHJNZXodKsO5oqUOgo5KhBwWESyMQsCRDHu9VOyk5TM9zSpFSr9gsJwIAOw=="
		 src17="R0lGODlhFgAWAOMKAB1ChDRLY19vj3mOrpGjuaezxrCztb/I19Ha7Pv8/f///////////////////////yH5BAEKAA8ALAAAAAAWABYAAARY8MlJq7046827/2BYIQVhHg9pEgVGIklyDEUBy/RlE4FQF4dCj2AQXAiJQDCWQCAEBwIioEMQBgSAFhDAGghGi9XgHAhMNoSZgJkJei33UESv2+/4vD4TAQA7"

		 text to m.src18 noshow
		 R0lGODlhFgAWAIQSAB1ChBFNsRJTySJYwjljwkxwl19vj1dusYODhl6MnHmOrpqbmpGjuaezxrCztcDCxL/I18rL1P///////////////////////////////////////////////////////yH5BAEAAB8ALAAAAAAWABYAAAVu4CeOZGmeaKqubDs6TNnEbGNApNG0kbGMi5trwcA9GArXh+FAfBAw5UexUDAQESkRsfhJPwaH4YsEGAAJGisRGAQY7UCC9ZAXBB+74LGCRxIEHwAHdWooDgGJcwpxDisQBQRjIgkDCVlfmZqbmiEAOw==
		 endtext
		
		 text to m.src19 noshow
		 R0lGODlhFgAWAIQcAB1ChBFNsTRLYyJYwjljwl9vj1iE31iGzF6MnHWX9HOdz5GjuYCl2YKl8ZOt4qezxqK63aK/9KPD+7DI3b/I17LM/MrL1MLY9NHa7OPs++bx/Pv8/f///////////////yH5BAEAAB8ALAAAAAAWABYAAAWG4CeOZGmeaKqubOum1SQ/kPVOW749BeVSus2CgrCxHptLBbOQxCSNCCaF1GUqwQbBd0JGJAyGJJiobE+LnCaDcXAaEoxhQACgNw0FQx9kP+wmaRgYFBQNeAoGihCAJQsCkJAKOhgXEw8BLQYciooHf5o7EA+kC40qBKkAAAGrpy+wsbKzIiEAOw==
		 endtext
		
		 text to m.src20 noshow
		 R0lGODlhFgAWAIQUAD04KTRLY2tXQF9vj414WZWIbXmOrpqbmpGjudClFaezxsa0cb/I1+3YitHa7PrkIPHvbuPs+/fvrvv8/f///////////////////////////////////////////////yH5BAEAAB8ALAAAAAAWABYAAAWN4CeOZGmeaKqubGsusPvBSyFJjVDs6nJLB0khR4AkBCmfsCGBQAoCwjF5gwquVykSFbwZE+AwIBV0GhFog2EwIDchjwRiQo9E2Fx4XD5R+B0DDAEnBXBhBhN2DgwDAQFjJYVhCQYRfgoIDGiQJAWTCQMRiwwMfgicnVcAAAMOaK+bLAOrtLUyt7i5uiUhADs=
		 endtext
		
		 ******************
		 &&and others BMP's
		 *ARC
		m.src21="Qk32AAAAAAAAAHYAAAAoAAAAEAAAABAAAAABAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//"+"8A/wAAAP8A/wD//wAA////AIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIgIiIiIiIiIiAiIiIiIiIiICIiIiIiIiICIiIiIiIiIgIiIiIiIiIgIiIiIiIiIgIiIiIiIiIgIiIiIiIiIAIiIiIiIiACIiIiIgAAAiIiIiIiIiIiIiIiIiIiIiIiIiIiI"

		*BACK
		m.src22="Qk32AAAAAAAAAHYAAAAoAAAAEAAAABAAAAABAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//"+"8A/wAAAP8A/wD//wAA////AIiIiIiIiIiIiIiIiIAAAACIiIiIgHd3cIiIiIiAd3dwiIgAAAB3d3CIiAv78Hd3cIiID7+wd3dwiIgL+/AAAACAAAAAv78IiIB3d3D7+wiIgHd3cL+/CIiAd3dw+/sIiIB3d3AAAAiIgHd3cIiIiIiAAAAAiIiIiIiIiIiIiIiI"

		*BLD
		m.src23="Qk32AAAAAAAAAHYAAAAoAAAAEAAAABAAAAABAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//"+"8A/wAAAP8A/wD//wAA////AIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIAAAAAIiIiIiAAIgACIiIiIAAiAAIiIiIgACIAAiIiIiAAAAAiIiIiIAAiAAIiIiIgACIAAiIiIiAAIgACIiIiAAAAACIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiI"

		*BUTTON
		m.src24="Qk32AAAAAAAAAHYAAAAoAAAAEAAAABAAAAABAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/"+"wAAAP8A/wD//wAA////AIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiAAAAAAAAIiI93d3d3dwiIj4iIiIiHCIiPiIiIiIcIiI+IiIiIhwiIj4iIiIiHCIiPiIiIiIcIiI///////wiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiI"

		*CAMERA
		m.src25="Qk32AAAAAAAAAHYAAAAoAAAAEAAAABAAAAABAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A"+"/wD//wAA////AIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiHAHiIiIhwAAAAAAAHiAdwB3dwB3CIB3B3d3cHcIgHcHh3dwdwiAdwf4d3B3CID/AHd3AP8IgP/wAAAP/wiAAAAAAAAACIgAhw/weACIiIiIcAeIiIiIiIiIiIiIiIiIiIiIiIiI"

		*CNT
		m.src26="Qk32AAAAAAAAAHYAAAAoAAAAEAAAABAAAAABAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD"+"//wAA////AIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIgAAAAAAIiIiIiIiIiIiIgAAAAAAAAAiIiIiIiIiIiIiAAAAAAAiIiIiIiIiIiIiAAAAAAAAACIiIiIiIiIiIiIAAAAAACIiIiIiIiIiIiIAAAAAAAAAIiIiIiIiIiIiIiIiIiIiIiI"

		*COPY
		m.src27="Qk32AAAAAAAAAHYAAAAoAAAAEAAAABAAAAABAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD//wAA"+"////AIiIiIiIiIiIiIiIiIiIiIiIiIhERERESIiIiE////9IiIiITwAAD0gAAABP////SA///08AAA9IDwAAT////0gP//9PAPRESA8AAE//9PSID///T//0SIgPAPBERESIiA//8PCIiIiID//wCIiIiIgAAACIiIiIiIiIiIiIiIiI"

		*CTR
		m.src28="Qk32AAAAAAAAAHYAAAAoAAAAEAAAABAAAAABAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD//"+"wAA////AIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIgAAAAAAIiIiIiIiIiIiIgAAAAAAAAAiIiIiIiIiIiIiAAAAAAAiIiIiIiIiIiIiAAAAAAAAACIiIiIiIiIiIiIAAAAAACIiIiIiIiIiIiIAAAAAAAAAIiIiIiIiIiIiIiIiIiIiIiI"

		*CUT
		m.src29="Qk32AAAAAAAAAHYAAAAoAAAAEAAAABAAAAABAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD//"+"wAA////AIiIiIiIiIiIiIhEiIiIiIiIhIhIhEiIiIiEiEhIhIiIiISISEiEiIiIiERISISIiIiIiEhESIiIiIiIQEiIiIiIiIiAiIiIiIiIiAAIiIiIiIiICAiIiIiIiIAIAIiIiIiIgIiAiIiIiIiAiICIiIiIiICIgIiIiIiIiIiIiIiI"

		*DBLUNDR
		m.src30="Qk32AAAAAAAAAHYAAAAoAAAAEAAAABAAAAABAAQAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD//"+"wAA////AIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIAAAAAAiIiIiIiIiIiIiIiAAAAAAIiIiIiIiIiIiIiIiAAACIiIiIiIAIgAiIiIiIgAiIAIiIiIiACIgAiIiIiIAIiACIiIiIgAiACIiIiIiAAACIiIiIiIiIiIiIiIiIiIiIiIiI"

		*DELETE
		m.src31="Qk32AAAAAAAAAHYAAAAoAAAAEAAAABAAAAABAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD//"+"wAA////AIiIiIiIiIiIiIiIiIiIiIiIgIiIiIiICIgACIiIiIiIiAAAiIiIgIiIgACIiIgIiIiIAAiIgAiIiIiAAIgAiIiIiIgAAAiIiIiIiIAAiIiIiIiIAAAIiIiIiIAAiACIiIiAAAiIgAiIiAAAiIiIAIiIAAiIiIiICIiIiIiIiIiI"

		*DISCNET
		m.src32="Qk32AAAAAAAAAHYAAAAoAAAAEAAAABAAAAABAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD//"+"wAA////AIiIiIiIiIiIiICAgICAgICIiIiIiIiIiIiAiAgICAiAiIiIiIiIiIiIgIgICAgIgIiIiIiIiIiIiICIiIgICIARiBGIiIiIiIERGICAgICAiBGIiIiIiIiBERiIiIiIiBGIEYiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiI"

		*DRAWING
		m.src33="Qk32AAAAAAAAAHYAAAAoAAAAEAAAABAAAAABAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD//wAA"+"////AIiIiIiIiIiIiIiIiIiIiIiIiIiIAACIiIiIiIBmZgiIiIiIBmZmYIgAAAAGZmZgiIBERAZmZmCIiAREBmZmYAiIgERAZmYLCIiIBAAAAL8IiIiAgPv7+wiIiIiAv7+/CIiIiID7+/sIiIiIgL+/vwiIiIiAAAAACIiIiIiIiIiI"

		*ELLIPSE
		m.src34="Qk32AAAAAAAAAHYAAAAoAAAAEAAAABAAAAABAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD//"+"wAA////AIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIgAAACIiIiIAIiIiACIiICIiIiIiAiICIiIiIiIgIgIiIiIiIiAiAiIiIiIiICIgIiIiIiICIiIAIiIiACIiIiIAAAAiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiI"

		*FIND
		m.src35="Qk32AAAAAAAAAHYAAAAoAAAAEAAAABAAAAABAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD//"+"wAA////AIiIiIiIiIiIiIiIiIiIiIgAAAiIiAAACA8ACIiIDwAIDwAIiIgPAAgAAAAIAAAACADwAAAPAAAIAPAAgA8AAAgA8ACADwAACIAAAAAAAACIiA8ACA8ACIiIAAAIAAAIiIiAAIiAAIiIiIDwiIDwiIiIgACIgACIiIiIiIiIiIiI"

		*FREEFORM
		m.src36="Qk32AAAAAAAAAHYAAAAoAAAAEAAAABAAAAABAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD//"+"wAA////AIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIAAAAAAAIiIgIiIiIiICIiAiIiIiIiAiICIiIiIiICIgIiIiIiIgIiAiIiIiAAIiICIiIiAiIiIiAiIiICIiIiIgIiIgIiIiIiICIiICIiIiIiAAAAAiIiIiIiIiIiIiIiIiIiIiIiI"

		*FRONT
		m.src37="Qk32AAAAAAAAAHYAAAAoAAAAEAAAABAAAAABAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD//"+"wAA////AIiIiIiIiIiIiIiIiIAAAACIiIiIgHd3cIiIiIiAd3dwiIgAAAAAB3CIiAv7+/sHcIiID7+/vwdwiIgL+/v7AACAAA+/v78IiIB3C/v7+wiIgHcPv7+/CIiAdwv7+/sIiIB3AAAAAAiIgHd3cIiIiIiAAAAAiIiIiIiIiIiIiIiI"

		*GROUP
		m.src38="Qk32AAAAAAAAAHYAAAAoAAAAEAAAABAAAAABAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD//"+"wAA////AIiIiIiIiIiIAAiIiIiIgAAACIRERERAAAAIhIiIiIAAiIiEiIiIiEiIiISIiIiISIRERIiIiIhIhIiEiIiIiEiEiISIiIiISISIhIiIiIhIhIiEREREREiEiIiIhIiIiISIiIiEiIiIAAiIiISIgAAABERERIiAAAAIiIiIiIAA"

		*HELP
		m.src39="Qk32AAAAAAAAAHYAAAAoAAAAEAAAABAAAAABAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD//"+"wAA////AIiIiIiIiIiIiIiIgAiIiIiIiIgLMIiIiIiIiAswiIiIiIiIgAiIiIiIiIgLMIiIiIiIiAswiIiIiIiICzCIiIiIiIgLswiIiIiIAIC7MIiIiICzCAuzCIiIgLMIgLMIiIiAuzALswiIiIgLu7swiIiIiIAAAAiIiIiIiIiIiIiI"

		*HELP2
		m.src40="Qk32AAAAAAAAAHYAAAAoAAAAEAAAABAAAAABAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD//"+"wAA////AIiIiIiIiIiIiIiACIiIiIiIiIAIiIiIiIiIAIiIREiICIgAiIhESIgAgAiIiIiIiAAACIiIRHiIAAAAAIhEeIgAAAAIiIRIiAAAAIiIiER4AAAIh0SIdEcAAIiER4iERAAIiIRHiIREAIiIiESIdEcIiIiIhEREeIiIiIiIiIiI"

		*ITL
		m.src41="Qk32AAAAAAAAAHYAAAAoAAAAEAAAABAAAAABAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD//"+"wAA////AIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIAAAAiIiIiIiIAHiIiIiIiIhwCIiIiIiIiIAHiIiIiIiIhwCIiIiIiIiIAHiIiIiIiIhwCIiIiIiIiIAHiIiIiIiIAAAIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiI"

		*JST
		m.src42="Qk32AAAAAAAAAHYAAAAoAAAAEAAAABAAAAABAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD//+"+"wAA////AIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiAAAAAAAAACIiIiIiIiIiIgAAAAAAAAAiIiIiIiIiIiIAAAAAAAAAIiIiIiIiIiIiAAAAAAAAACIiIiIiIiIiIgAAAAAAAAAiIiIiIiIiIiIAAAAAAAAAIiIiIiIiIiIiIiIiIiIiIiI"

		*LFT
		m.src43="Qk32AAAAAAAAAHYAAAAoAAAAEAAAABAAAAABAAQAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD//"+"wAA////AIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIAAAAAAAACIiIiIiIiIiIiAAAAAAIiIiIiIiIiIiIiIgAAAAAAAAIiIiIiIiIiIiIAAAAAAiIiIiIiIiIiIiIiAAAAAAAAAiIiIiIiIiIiIgAAAAACIiIiIiIiIiIiIiIiIiIiIiIiI"

		*LINE
		m.src44="Qk32AAAAAAAAAHYAAAAoAAAAEAAAABAAAAABAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD//"+"wAA////AIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiAiIiIiIiIiAiIiIiIiIiAiIiIiIiIiAiIiIiIiIiAiIiIiIiIiAiIiIiIiIiAiIiIiIiIiAiIiIiIiIiAiIiIiIiIiAiIiIiIiIiAiIiIiIiIiIiIiIiIiIiIiIiIiIiIiI"

		*LINESTYL
		m.src45="Qk32AAAAAAAAAHYAAAAoAAAAEAAAABAAAAABAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD//"+"wAA////AIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIAAAAAAAACIgAAAAAAAAIiAAAAAAAAAiIiIiIiIiIiIiIiIiIiIiIiAAAAAAAAAiIiIiIiIiIiIiIiIiIiIiIiAAIgACIAAiIiIiIiIiIiIiIiIiIiIiIiAgICAgICAiIiIiIiIiIiI"

		*MAPNET
		m.src46="Qk32AAAAAAAAAHYAAAAoAAAAEAAAABAAAAABAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD//"+"wAA////AIiIiIiIiIiIiIAAAAAAAACIgId3d3d3cIiAiIiIiIhwiICHd3d3d3CIgIiIiIiIcAiAh3d3dyJwgICAd3d3qnCIAAiIiIiIgACIAAAAAAAAiAgIiIiIiIiAgICIiIiIiAiIiAiIiIiIiICIiIiIiIiIiIiIiIiIiIiAiIiIiIiI"

		*MCR
		m.src47="Qk32AAAAAAAAAHYAAAAoAAAAEAAAABAAAAABAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD//"+"wAA////AIiIiIiIiIiIAAAIiIgAAAgL+wiIiAv7CA+/CIiID78IAAAIgIgAAAiICIgICIgIiIgIgI6AiAiIiAAI6OgACIiIiICOgIiIiIiIiAgIiIiIiIiIgIiIiIiIiIAAAIiIiIiIgPvwiIiIiIiAv7CIiIiIiIAAAIiIiIiIiIiIiIiI"

		*NEW
		m.src48="Qk32AAAAAAAAAHYAAAAoAAAAEAAAABAAAAABAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD//"+"wAA////AIiIiIiIiIiIiIiIiIiIiIiIAAAAAAAIiIgP/////wiIiA//////CIiID/////8IiIgP/////wiIiA//////CIiID/////8IiIgP/////wiIiA//////CIiID///8AAIiIgP///w8IiIiA////AIiIiIAAAAAIiIiIiIiIiIiIiI"

		*OPEN
		m.src49="Qk32AAAAAAAAAHYAAAAoAAAAEAAAABAAAAABAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD//"+"wAA////AIiIiIiIiIiIiIiIiIiIiIgAAAAAAAiIiAAzMzMzMIiICwMzMzMzCIgPsDMzMzMwiAv7AzMzMzMID7+wAAAAAAAL+/v7+wiIiA+/v7+/CIiIC/sAAAAIiIiAAIiIiIgACIiIiIiIiIAIiIiIiAiICAiIiIiIgACIiIiIiIiIiIiI"

		*PASTE
		m.src50="Qk32AAAAAAAAAHYAAAAoAAAAEAAAABAAAAABAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD//"+"wAA////AIiIiIiIiIiIiIiIRERERESAAABP////9Ac3N09ERET0A3NzT/////QHNzdPRE9ERANzc0///09IBzc3T///RIgDc3NERERAiAc3Nzc3NzCIA3AAAAAHcIgHcIiIiAcwiANzCwCwc3CIgAAAuwAACIiIiIAACIiIiIiIiIiIiIiI"

		*PRINT
		m.src51="Qk32AAAAAAAAAHYAAAAoAAAAEAAAABAAAAABAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD//"+"wAA////AIiIiIiIiIiPiAAAAAAACIiAiIiIiICAiAAAAAAAAAgICIiIi7uIAAgIiIiHd4gICAAAAAAAAAiACIiIiIiAgICAAAAAAAgIAIgP////8ICAiIDwAADwAAiIgP////8IiIiIDwAADwiIiIgP////8IiIiIAAAAAAiIiIiIiIiIiI"

		*PROP
		m.src52="Qk32AAAAAAAAAHYAAAAoAAAAEAAAABAAAAABAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD//"+"wAA////AIiIiIiIiIiIAAAAAAAAiIgP//////CIiA8A8AAA8IiID//////wiIgPAPAAAPCIiA//////8IiID////w/wiIgPAP/wgPCIiA8IDwgIAAhED/CAgICIgEQAAAgICIiIRIiIgICIiIhEiIiICIiIgESIiIiAAAAIRIiIiIiIiIiI"

		*RECTANGL
		m.src53="Qk32AAAAAAAAAHYAAAAoAAAAEAAAABAAAAABAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD//"+"wAA////AIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIgAAAAAAAAIiAiIiIiIiAiICIiIiIiICIgIiIiIiIgIiAiIiIiIiAiICIiIiIiICIgIiIiIiIgIiAiIiIiIiAiIAAAAAAAACIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiI"

		*REDO
		m.src54="Qk32AAAAAAAAAHYAAAAoAAAAEAAAABAAAAABAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD//"+"wAA////AIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIhHiIiIiIiIh0iIiERESIiEiIiIhERIiISIiIiIREiIhIiIiISESIiHSIiESIhIiIh0REiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiI"

		*RT
		m.src55="Qk32AAAAAAAAAHYAAAAoAAAAEAAAABAAAAABAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD//"+"wAA////AIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIAAAAAACIiIiIiIiIiIgAAAAAAAAAiIiIiIiIiIiIiIgAAAAAAIiIiIiIiIiIiAAAAAAAAACIiIiIiIiIiIiIiAAAAAAAiIiIiIiIiIiIAAAAAAAAAIiIiIiIiIiIiIiIiIiIiIiI"

		*SAVE
		m.src56="Qk32AAAAAAAAAHYAAAAoAAAAEAAAABAAAAABAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD//"+"wAA////AIiIiIiIiIiIiAAAAAAAAAiAMwAAAIgDCIAzAAAAiAMIgDMAAACIAwiAMwAAAAADCIAzMzMzMzMIgDMAAAAAMwiAMIiIiIgDCIAwiIiIiAMIgDCIiIiIAwiAMIiIiIgDCIAwiIiIiAAIgDCIiIiICAiAAAAAAAAACIiIiIiIiIiI"

		*SMALLCAP
		m.src57="Qk32AAAAAAAAAHYAAAAoAAAAEAAAABAAAAABAAQAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD//"+"wAA////AIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIgACAAAAIiACHCIgHCICAiAgIiAgIgICIiAAACAAIgIiIgICICICAiAiAgIAACIgACIcHiIiIiIiIiAiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiI"

		*SORTASC
		m.src58="Qk32AAAAAAAAAHYAAAAoAAAAEAAAABAAAAABAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD//"+"wAA////AIiIiIiIiIiIgAAACIiISIiACIgIiIdHiIgAiIiIhESIiIAIiIh0RHiIiACIiERESICIgAiIiEiIgAAACIiISIiIiIiIiIhIiIAAgACIiEiIhwiIB4iISIiIAAAIiIhIiIhwgHiIiEiIiIAAiIiISIiIhweIiIhIiIiICIiIiEiI"

		*SORTDES
		m.src59="Qk32AAAAAAAAAHYAAAAoAAAAEAAAABAAAAABAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD//"+"wAA////AIiIiIiIiIiIgACAAIiISIiHCIgHiIdHiIgAAAiIhESIiHCAeIh0RHiIgACIiERESIiHB4iIiEiIiIgIiIiISIiIiIiIiIhIiIAAAAiIiEiIgAiICIiISIiIAIiIiIhIiIiACIiIiEiIiIgAiIiISIiAiIAIiIhIiIAAAAiIiEiI"

		*SPELLING
		m.src60="Qk32AAAAAAAAAHYAAAAoAAAAEAAAABAAAAABAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD//"+"wAA////AIiIiIiIiIiIiIiE+IiIiIiIiERPiIiIiIiERE+IiIiIiERPRPiIiIiERPiET4iIiIhPiIhPiIiIiIiIiIT4iIiIiIiIiE+IiIiIiIiIhPiIgICACIgAT4iAgICAgIiE+IAAgAiAiIhIgICAgICIiIiICIAIiACIiIiIiIiIiIiI"

		*STRIKTHR
		m.src61="Qk32AAAAAAAAAHYAAAAoAAAAEAAAABAAAAABAAQAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD//"+"wAA////AIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIgACAAAAIiAAICIgICICAiIAAAAAAAAAACICAiAAIgIiIgACICICAiIiICIgIgICICIgIgAAIiAAIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiI"

		*SUM
		m.src62="Qk32AAAAAAAAAHYAAAAoAAAAEAAAABAAAAABAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD//"+"wAA////AIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIAAAAAAiIiIiACIiICIiIiIgAiIiIiIiIiIAIiIiIiIiIiACIiIiIiIiACIiIiIiIiACIiIiIiIiACIiICIiIiAAAAAAIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiI"

		*TAB-CNTR
		m.src63="Qk32AAAAAAAAAHYAAAAoAAAAEAAAABAAAAABAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD//"+"wAA////AIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIgIiIiIiIiIiAiIiIiIiIiICIiIiIiIiIgIiIiIiIiIiAiIiIiIiIiICIiIiIiIiAAACIiIiIiIgACIiIiIiIiICIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiI"

		*TAB-DEC
		m.src64="Qk32AAAAAAAAAHYAAAAoAAAAEAAAABAAAAABAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD//"+"wAA////AIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIgIgIiIiIiIiAiIiIiIiIiICIiIiIiIiIgIiIiIiIiIiAiIiIiIiIiICIiIiIiIiAAACIiIiIiIgACIiIiIiIiICIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiI"

		*TAB-LEFT
		m.src65="Qk32AAAAAAAAAHYAAAAoAAAAEAAAABAAAAABAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD//"+"wAA////AIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIAACIiIiIiIgIiIiIiIiIiAiIiIiIiIiICIiIiIiIiIgIiIiIiIiIiAiIiIiIiIgAAAiIiIiIiIAAiIiIiIiIiAiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiI"

		*TAB-RHT
		m.src66="Qk32AAAAAAAAAHYAAAAoAAAAEAAAABAAAAABAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD//"+"wAA////AIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiAAAiIiIiIiIiICIiIiIiIiIgIiIiIiIiIiAiIiIiIiIiICIiIiIiIiIgIiIiIiIiIAAAIiIiIiIiAAIiIiIiIiIgIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiI"

		*UNDO
		m.src67="Qk32AAAAAAAAAHYAAAAoAAAAEAAAABAAAAABAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD//"+"wAA////AIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIdIiIhEREiIiEeIiEREiIiIhIiIREiIiIiEiIhEhIiIiISIiEiIRIiIR4iIiIiIRER4iIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiI"

		*UNDRLN
		m.src68="Qk32AAAAAAAAAHYAAAAoAAAAEAAAABAAAAABAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD//"+"wAA////AIiIiIiIiIiIiIiIiIiIiIiIgAAAAACIiIiIiIiIiIiIiIiAAACIiIiIiAB4cAiIiIiIAIiACIiIiIgAiIAIiIiIiACIgAiIiIiIAIiACIiIiIgAiIAIiIiIiACIgAiIiIiAAAgAAIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiI"

		*UNGROUP
		m.src69="Qk32AAAAAAAAAHYAAAAoAAAAEAAAABAAAAABAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD//"+"wAA////AIiIiIiIiIiIiIgACIiIgACIiAAERERAAIiIAAiIiIAAiIiEiIiIiEgACISIiIiISAAERIiIiIhIAAiEiIiIiEiEiISIiIiISISIAAiIiIAAhIgABEREQACEiAAIhIiAAISIiIiEiIiIAAiIiAAIiIgABEREAAiIiAAIiIgACIiI"

		*UP1LVL
		m.src70="Qk32AAAAAAAAAHYAAAAoAAAAEAAAABAAAAABAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD//"+"wAA////AIiIiIiIiIiIiIiIiIiIiIgAAAAAAAAACA+/v7+/v78IC/v7+/v7+wgPv7AAAA+/CAv78Pv7+/sID7+wv7+/vwgL8AAA+/v7CA+/AA+/v78IC/vw+/v7+wgPv7+/v7+/CAAAAAAAAACIgL+/sIiIiIiIAAAIiIiIiIiIiIiIiIiI"

		*VW-DTLS
		m.src71="Qk32AAAAAAAAAHYAAAAoAAAAEAAAABAAAAABAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD//"+"wAA////AIiIiIiIiIiISIAACAAIAAiIiIiIiIiIiEiAAAgACAAIiIiIiIiIiIhIgAAIAAgACIiIiIiIiIiISIAACAAIAAiIiIiIiIiIiEiAAAgACAAIiIiIiIiIiIhERERERERERIiIiIiIiIiIiIAACAAIAAiIiIiIiIiIiIiIiIiIiIiI"

		*VW-LIST
		m.src72="Qk32AAAAAAAAAHYAAAAoAAAAEAAAABAAAAABAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD//"+"wAA////AIiIiIiIiIiIREiIiERIiIhPSAAIT0gACESIiIhEiIiIiIiIiIiIiIiIiIiIiIiIiERIiIhESIiIT0gACE9IAAhEiIiIRIiIiIiIiIiIiIiIiIiIiIiIiIhESIiIREiIiE9IAAhPSAAIRIiIiESIiIiIiIiIiIiIiIiIiIiIiIiI"

		*VW-LRGIC
		m.src73="Qk32AAAAAAAAAHYAAAAoAAAAEAAAABAAAAABAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD//"+"wAA////AIiIiIiIiIiIiIiIiIAAAAiIiIiIiIiIiIiIiIiIRESIiIiIiIhP9IiIiIiIiE/0iIiIiIiIT0SIgAAACIhESIiIiIiIiIiIiIhERIiIiIiIiE/0iIiIiIiIT/SIiIiIiIhPRIiIiIiIiERIiIiIiIiIiIiIiIiIiIiIiIiIiIiI"

		*VW-SMLIC
		m.src74="Qk32AAAAAAAAAHYAAAAoAAAAEAAAABAAAAABAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD//"+"wAA////AIiIiIiIiIiIiIREiIiIiIiIhPSAAIiIiIiESIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIhESIiIiIiIiE9IAAiIiIiIRIiIiIiIiIiIiIiIiIiIiIiIiIiERIiIiIiIiIT0gACIiIiIhEiIiIiIiIiIiIiIiIiIiIiIiIiIiIiI"

		*WORDUNDR
		m.src75="Qk32AAAAAAAAAHYAAAAoAAAAEAAAABAAAAABAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD//"+"wAA////AIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIgACAAIAAiIiIiIiIiIiIiIiACIgAiIiIiIAAgACIiIiIAACAAAiIiIgAgACACIiIiACAAIAIiIiACIgIiACIiIAIiIiIAIiIgAiIiIgAiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiI"

		**************************************************
		local xint
		m.xint=5

		with thisform
		for i=1 to 75
		.addobject("img"+trans(i),"image")
		with eval(".img"+trans(i))
		if i=1
		.left=10
		else
		.left=eval(".parent.img"+trans(i-1)+".left")+eval(".parent.img"+trans(i-1)+".width")+m.xint
		endi
		if i<36
		.top=20
		else
		if i=36
		.left=0
		endi
		.top=50
		endi
		.pictureval=strconv(eval("m.src"+trans(i)),14)
		.mousePointer=15
		.visible=.t.
		endwith
		bindevent(eval(".img"+trans(i)),"mousedown",thisform,"my")
		endfor
		endwith
	ENDPROC

	PROCEDURE Destroy
		clea events
	ENDPROC

	PROCEDURE edit1.RightClick
		Define Popup raccourci SHORTCUT Relative From Mrow(),Mcol()
		        Define Bar _Med_redo Of raccourci Prompt "\<Rétablir" ;
		            KEY CTRL+r, "Ctrl+R" ;
		            PICTRES _Med_redo ;
		            MESSAGE "Rétablit la dernière opération annulée"  SKIP
		        Define Bar _Med_undo Of raccourci Prompt "\<Annuler" ;
		            KEY CTRL+Z, "Ctrl+Z" ;
		            PICTRES _Med_undo ;
		            MESSAGE "Annule la dernière modification" SKIP
		        Define Bar _Med_slcta Of raccourci Prompt "Sélec\<tionner tout" ;
		            KEY CTRL+A, "Ctrl+A" ;
		            PICTRES _Med_slcta ;
		            MESSAGE "Sélectionne tout le texte ou tous les éléments de la fenêtre active"
		        Define Bar _Med_paste Of raccourci Prompt "C\<oller" ;
		            KEY CTRL+V, "Ctrl+V" ;
		            PICTRES _Med_paste ;
		            MESSAGE "Place le contenu du Presse-papiers au point d'insertion" SKIP
		       Define Bar  _Med_cut Of raccourci Prompt  "\<Couper" ;
		            KEY CTRL+x, "Ctrl+X" ;
		            PICTRES _Med_cut ;
		            MESSAGE "Enlève la sélection et la place dans le Presse-papiers" SKIP
		        Define Bar _Med_copy Of raccourci Prompt "Co\<pier" ;
		            KEY CTRL+C, "Ctrl+C" ;
		            PICTRES _Med_copy ;
		            MESSAGE "Copie la sélection et la place dans le Presse-papiers"
		        Activate Popup raccourci
		
	ENDPROC

	PROCEDURE image1.Click
		this.pictureVal=thisform.edit1.value
	ENDPROC

ENDDEFINE
*
*-- EndDefine: yrichtext




Embedding images in code

Click on code to select [then copy] -click outside to deselect


*2* working with blob fields to store images

Set Classlib To Locfile( Home(1)+"FFC\_DATANAV.VCX") AddI
Publi yform
yform=Newobject("yblob")
yform.Show
Release Classlib  Home(1)+"FFC\_DATANAV.VCX"
Read Events
Retu
*
Define Class yblob As Form
    Top = 0
    Left = 0
    Height = 290
    Width = 470
    ShowWindow = 2
    Caption = "Working with blobs & pictures"
    Name = "Form1"

    Add Object image1 As Image With ;
        Anchor = 0, ;
        Stretch = 2, ;
        Height = 180, ;
        Left = 5, ;
        Top = 2, ;
        Width = 192, ;
        Name = "Image1"

    Add Object edit1 As EditBox With ;
        Anchor = 15, ;
        Height = 276, ;
        Left = 216, ;
        ReadOnly = .T., ;
        Top = 6, ;
        Width = 252, ;
        ControlSource = "ycurs.img", ;
        Name = "Edit1"

    Add Object _navbtns1 As _navbtns   With ;
        Top = 252, ;
        Left = 36, ;
        tablealias = "ycurs", ;
        Name = "_navbtns1", ;
        Vcrtop.Name = "Vcrtop", ;
        Vcrprevious.Name = "Vcrprevious", ;
        Vcrnext.Name = "Vcrnext", ;
        vcrbottom.Name = "vcrbottom"

    Add Object label1 As Label With ;
        FontBold = .T., ;
        FontSize = 8, ;
        WordWrap = .T., ;
        BackStyle = 0, ;
        Caption = "", ;
        Height = 49, ;
        Left = 12, ;
        Top = 192, ;
        Width = 181, ;
        ForeColor = Rgb(255,0,0), ;
        Name = "Label1"

    Procedure Load
        Close Data All
        Local gnbre
        gnbre=Adir(gabase,Home(1)+"Samples\Tastrade\Bitmaps\*.bmp")
        Create Cursor ycurs (Name c(20),img  Blob)
        For i=1 To  gnbre
            Insert Into ycurs Values (Justfname(Home(1)+"Samples\Tastrade\Bitmaps\"+gabase(i,1)),Filetostr(Home(1)+"Samples\Tastrade\Bitmaps\"+gabase(i,1)))
        Endfor
        *brow
        Sele ycurs
        Locate
    Endproc

    Procedure Init
        With Thisform
            .image1.PictureVal=ycurs.img
            .label1.Caption=Name
        Endwith
    Endproc

    Procedure _navbtns1.Vcrtop.MouseDown
        Lparameters nButton, nShift, nXCoord, nYCoord
        try
with thisform
.image1.pictureVal=ycurs.img
.label1.caption=name
endwith
catch
endtry
    Endproc

    Procedure _navbtns1.Vcrprevious.MouseDown
        Lparameters nButton, nShift, nXCoord, nYCoord
        try
with thisform
.image1.pictureVal=ycurs.img
.label1.caption=name
endwith
catch
endtry
    Endproc

    Procedure _navbtns1.Vcrnext.MouseDown
        Lparameters nButton, nShift, nXCoord, nYCoord
        try
with thisform
.image1.pictureVal=ycurs.img
.label1.caption=name
endwith
catch
endtry
    Endproc

    Procedure _navbtns1.vcrbottom.MouseDown
        Lparameters nButton, nShift, nXCoord, nYCoord
        try
with thisform
.image1.pictureVal=ycurs.img
.label1.caption=name
endwith
catch
endtry
    Endproc

    PROCEDURE DESTROY
    CLEA EVENTS
    ENDPROC

Enddefine
*
*-- EndDefine: yblob


Embedding images in code

Click on code to select [then copy] -click outside to deselect


*3* web page background without physical image (supersteded with a blob)
*before run code correct please base64,  ---> ;base64, (cannot make the ; appears)

Local m.xpict,m.ximg
m.xpict=Getpict()
If Empty(m.xpict)
    Return .F.
Endi
m.ximg=Strconv(Filetostr(m.xpict),13)   &&some small picture background texture

Local m.ybk
TEXT to m.ybk textmerge noshow
background-image:url(data:image/<<lower(justext(m.xpict))>>base64,<<m.ximg>>);
opacity:1.00;   //0 to 1
background-repeat: repeat;
ENDTEXT

Local m.myvar
TEXT to m.myvar textmerge noshow
<pre style=" white-space: pre-wrap;
 white-space: -moz-pre-wrap;
 white-space: -pre-wrap;
 white-space: -o-pre-wrap;
 word-wrap: break-word;
font-family:Courier New;
font-size:10pt;
font-weight:bold;
color:lime;
box-shadow: 3px 3px 3px #333;
padding:15px;
width:90%;
    -moz-border-radius: 20px;
    -webkit-border-radius: 20px;
    -khtml-border-radius: 20px;
    border-radius: 20px;
<<m.ybk>>
">
 <code>
this code permits to draw a background image without physical image.its a blob string representing the image digitalized!
its use the strconv() vfp function...flag=13  to encode and the navigator decode as flag=14 (64 binary).
</code>
</pre>
ENDTEXT
Local m.lcdest
m.lcdest=Addbs(Sys(2023))+"ytemp.html"
Set Safe Off
Strtofile(m.myvar,m.lcdest)

Modi Comm (lcdest)

Local m.oo
m.oo=Newobject("hyperlink")
m.oo.NavigateTo(m.lcdest)
m.oo=null

 

the code is a vfp converter (base 64 encoder)  from image to web embed image

the code is a vfp converter (base 64 encoder) from image to web embed image

Click on code to select [then copy] -click outside to deselect


*4* a base64 vfp converter.convert images to be used on html code (as image or in css background)
*before run code correct please this provider richtext typo: base64,  with ;base64,   (in 2 locations)

Publi yform
yform=Newobject("ybase64")
yform.Show
Read Events
Retu
*
Define Class ybase64 As Form
    BorderStyle = 0
    Height = 494
    Width = 735
    ShowWindow = 2
    AutoCenter = .T.
    Caption = "base64 image encoder"
    MaxButton = .F.
    Name = "Form1"

    Add Object image1 As Image With ;
        Stretch = 2, ;
        BorderStyle = 1, ;
        Height = 181, ;
        Left = 13, ;
        Top = 7, ;
        Visible = .F., ;
        Width = 229, ;
        Name = "Image1"

    Add Object command1 As CommandButton With ;
        Top = 197, ;
        Left = 80, ;
        Height = 25, ;
        Width = 109, ;
        FontBold = .T., ;
        FontSize = 12, ;
        Caption = "Picture....", ;
        MousePointer = 15, ;
        SpecialEffect = 2, ;
        BackColor = Rgb(128,255,0), ;
        Name = "Command1"

    Add Object label1 As Label With ;
        AutoSize = .T., ;
        Caption = "Filename", ;
        Height = 17, ;
        Left = 300, ;
        Top = 24, ;
        Width = 54, ;
        Name = "Label1"

    Add Object text1 As TextBox With ;
        Height = 25, ;
        Left = 362, ;
        ReadOnly = .T., ;
        Top = 17, ;
        Width = 337, ;
        Name = "Text1"

    Add Object label2 As Label With ;
        AutoSize = .T., ;
        Caption = "Filesize", ;
        Height = 17, ;
        Left = 302, ;
        Top = 60, ;
        Width = 44, ;
        Name = "Label2"

    Add Object text2 As TextBox With ;
        Height = 25, ;
        Left = 358, ;
        ReadOnly = .T., ;
        Top = 53, ;
        Width = 158, ;
        Name = "Text2"


    Add Object label3 As Label With ;
        AutoSize = .T., ;
        Caption = "Width", ;
        Height = 17, ;
        Left = 306, ;
        Top = 102, ;
        Width = 33, ;
        Name = "Label3"

    Add Object text3 As TextBox With ;
        Height = 25, ;
        Left = 362, ;
        ReadOnly = .T., ;
        Top = 95, ;
        Width = 158, ;
        Name = "Text3"

    Add Object label4 As Label With ;
        AutoSize = .T., ;
        Caption = "Height", ;
        Height = 17, ;
        Left = 309, ;
        Top = 139, ;
        Width = 38, ;
        Name = "Label4"

    Add Object text4 As TextBox With ;
        Height = 25, ;
        Left = 362, ;
        ReadOnly = .T., ;
        Top = 132, ;
        Width = 158, ;
        Name = "Text4"

    Add Object edit1 As EditBox With ;
        FontSize = 8, ;
        Height = 109, ;
        Left = 12, ;
        ReadOnly = .T., ;
        Top = 240, ;
        Width = 684, ;
        Name = "Edit1"

    Add Object edit2 As EditBox With ;
        FontSize = 8, ;
        Height = 109, ;
        Left = 16, ;
        ReadOnly = .T., ;
        Top = 373, ;
        Width = 680, ;
        Name = "Edit2"

    Add Object label5 As Label With ;
        AutoSize = .T., ;
        FontBold = .T., ;
        FontSize = 10, ;
        Caption = "For use as  html <img> element", ;
        Height = 18, ;
        Left = 281, ;
        Top = 221, ;
        Width = 203, ;
        ForeColor = Rgb(255,0,0), ;
        Name = "Label5"

    Add Object label6 As Label With ;
        AutoSize = .T., ;
        FontBold = .T., ;
        FontSize = 10, ;
        Caption = "For use as css background  image", ;
        Height = 18, ;
        Left = 256, ;
        Top = 354, ;
        Width = 217, ;
        ForeColor = Rgb(255,0,0), ;
        Name = "Label6"

    Add Object command2 As CommandButton With ;
        Top = 144, ;
        Left = 564, ;
        Height = 61, ;
        Width = 121, ;
        FontSize = 14, ;
        Caption = "Process", ;
        MousePointer = 15, ;
        SpecialEffect = 2, ;
        ForeColor = Rgb(255,128,0), ;
        BackColor = Rgb(128,255,0), ;
        Name = "Command2"

    Add Object command3 As CommandButton With ;
        Top = 279, ;
        Left = 703, ;
        Height = 25, ;
        Width = 25, ;
        FontBold = .T., ;
        Caption = "...", ;
        MousePointer = 15, ;
        ForeColor = Rgb(255,0,0), ;
        BackColor = Rgb(128,255,0), ;
        Name = "Command3"

    Add Object command4 As CommandButton With ;
        Top = 411, ;
        Left = 704, ;
        Height = 25, ;
        Width = 25, ;
        FontBold = .T., ;
        Caption = "...", ;
        MousePointer = 15, ;
        ForeColor = Rgb(255,0,0), ;
        BackColor = Rgb(128,255,0), ;
        Name = "Command4"

    Procedure ycontext
        Define Popup raccourci SHORTCUT Relative From Mrow(),Mcol()
        Define Bar _Med_redo Of raccourci Prompt "\<Rétablir" ;
            KEY CTRL+r, "Ctrl+R" ;
            PICTRES _Med_redo ;
            MESSAGE "Rétablit la dernière opération annulée"  Skip
        Define Bar _Med_undo Of raccourci Prompt "\<Annuler" ;
            KEY CTRL+Z, "Ctrl+Z" ;
            PICTRES _Med_undo ;
            MESSAGE "Annule la dernière modification" Skip
        Define Bar _Med_slcta Of raccourci Prompt "Sélec\<tionner tout" ;
            KEY CTRL+A, "Ctrl+A" ;
            PICTRES _Med_slcta ;
            MESSAGE "Sélectionne tout le texte ou tous les éléments de la fenêtre active"
        Define Bar _Med_paste Of raccourci Prompt "C\<oller" ;
            KEY CTRL+V, "Ctrl+V" ;
            PICTRES _Med_paste ;
            MESSAGE "Place le contenu du Presse-papiers au point d'insertion" Skip
        Define Bar  _Med_cut Of raccourci Prompt  "\<Couper" ;
            KEY CTRL+x, "Ctrl+X" ;
            PICTRES _Med_cut ;
            MESSAGE "Enlève la sélection et la place dans le Presse-papiers" Skip
        Define Bar _Med_copy Of raccourci Prompt "Co\<pier" ;
            KEY CTRL+C, "Ctrl+C" ;
            PICTRES _Med_copy ;
            MESSAGE "Copie la sélection et la place dans le Presse-papiers"
        Activate Popup raccourci
    Endproc

    Procedure Destroy
        Clea Events
    Endproc

    Procedure command1.Click
        With Thisform
            .edit1.Value=""
            .edit2.Value=""
        Endwith

        Local  xpict
        m.xpict=Getpict()
        If Empty(m.xpict)
            Return .F.
        Endi
        Thisform.image1.Picture=m.xpict
        Thisform.image1.Visible=.T.

        Thisform.text1.Value=m.xpict
        Set Compa On
        Thisform.text2.Value=Trans(Fsize(m.xpict))+ " Octets"
        Local m.oo
        m.oo=Newobject("image")
        m.oo.Picture=m.xpict
        Thisform.text3.Value=Trans(m.oo.Width)+" px"
        Thisform.text4.Value=Trans(m.oo.Height)+" px"
        m.oo=Null
    Endproc

    Procedure edit1.RightClick
        Thisform.ycontext()
    Endproc

    Procedure edit2.RightClick
        Thisform.ycontext()
    Endproc

    Procedure command2.Click
        Local m.xpict, m.ximg
        m.xpict=Thisform.text1.Value
        m.ximg=Strconv(Filetostr(m.xpict),13)
        TEXT to thisform.edit1.value textmerge noshow
data:image/<<lower(justext(m.xpict))>>base64,<<m.ximg>>
        ENDTEXT
        TEXT to thisform.edit2.value textmerge noshow
background-image:url(data:image/<<lower(justext(m.xpict))>>base64,<<m.ximg>>);
        ENDTEXT
    Endproc

    Procedure command3.Click
        Local m.ybk
        TEXT to m.ybk textmerge noshow
		<center><img src="<<thisform.edit1.value>>)";</center>
        ENDTEXT
        Set Safe Off
        Local m.lcdest
        m.lcdest=Addbs(Sys(2023))+"ytemp.html"
        Strtofile(m.ybk,m.lcdest)
        Local m.oo
        m.oo=Newobject("hyperlink")
        m.oo.NavigateTo(m.lcdest)
    Endproc

    Procedure command4.Click
        Local m.ybk
        TEXT to m.ybk textmerge noshow
		<style>
		body{
		<<thisform.edit2.value>>
		opacity:1.00;   //0 to 1
		background-repeat: repeat;
		}
		</style>

        ENDTEXT
        _Cliptext=m.ybk

        Set Safe Off
        Local m.lcdest
        m.lcdest=Addbs(Sys(2023))+"ytemp.html"
        Strtofile(m.ybk,m.lcdest)

        Local m.oo
        m.oo=Newobject("hyperlink")
        m.oo.NavigateTo(m.lcdest)
    Endproc

Enddefine
*
*-- EndDefine: ybase64


select code and copy to export in html code web page as tag image or in css as image background(without image).

select code and copy to export in html code web page as tag image or in css as image background(without image).

Click on code to select [then copy] -click outside to deselect


*5* working with web images
*added on saturday 17 january 2016; 23:30:14
*internet must be connected.Nowadays speed downloads is fast and can download resources form web in particular images and work with on vfp codes.
*vfp form can work only with disc resources, its true for images.(A navigator can use directly web resources).
*this code tests internet connection,download web images needed in a working folder and use them to populate image controls of a form.

If !_vfp.StartMode=0
On Shutdown Quit
Endi
clea resources
clea all
local m.ycheck
m.ycheck=yinternet()
If m.ycheck=.F.
retu .f.
Endi

Publi yform
yform=Newobject("yWebImages")
yform.Show
Read Events
Retu
*
Define Class yWebImages As Form
    BorderStyle = 0
    Height = 521
    Width = 949
    ShowWindow = 2
    AutoCenter = .T.
    Caption = "Working with  web  images "
    Name = "Form1"

    Add Object image1 As Image With ;
        Stretch = 0, ;
        Height = 108, ;
        Left = 5, ;
        Top = 12, ;
        Width = 132, ;
        Name = "Image1"

    Add Object image2 As Image With ;
        Stretch = 0, ;
        Height = 108, ;
        Left = 139, ;
        Top = 12, ;
        Width = 132, ;
        Name = "Image2"

    Add Object image3 As Image With ;
        Stretch = 0, ;
        Height = 108, ;
        Left = 274, ;
        Top = 12, ;
        Width = 132, ;
        Name = "Image3"

    Add Object image4 As Image With ;
        Stretch = 0, ;
        Height = 108, ;
        Left = 409, ;
        Top = 13, ;
        Width = 132, ;
        Name = "Image4"

    Add Object image5 As Image With ;
        Stretch = 0, ;
        Height = 108, ;
        Left = 543, ;
        Top = 13, ;
        Width = 132, ;
        Name = "Image5"

    Add Object image6 As Image With ;
        Stretch = 0, ;
        Height = 108, ;
        Left = 678, ;
        Top = 13, ;
        Width = 132, ;
        Name = "Image6"


    Add Object image7 As Image With ;
        Stretch = 0, ;
        Height = 108, ;
        Left = 813, ;
        Top = 12, ;
        Width = 132, ;
        Name = "Image7"

    Add Object image8 As Image With ;
        Stretch = 0, ;
        Height = 108, ;
        Left = 9, ;
        Top = 134, ;
        Width = 132, ;
        Name = "Image8"

    Add Object image9 As Image With ;
        Stretch = 0, ;
        Height = 108, ;
        Left = 143, ;
        Top = 134, ;
        Width = 132, ;
        Name = "Image9"

    Add Object image10 As Image With ;
        Stretch = 0, ;
        Height = 108, ;
        Left = 278, ;
        Top = 134, ;
        Width = 132, ;
        Name = "Image10"

    Add Object image11 As Image With ;
        Stretch = 0, ;
        Height = 108, ;
        Left = 413, ;
        Top = 135, ;
        Width = 132, ;
        Name = "Image11"

    Add Object image12 As Image With ;
        Stretch = 0, ;
        Height = 108, ;
        Left = 547, ;
        Top = 135, ;
        Width = 132, ;
        Name = "Image12"

    Add Object image13 As Image With ;
        Stretch = 0, ;
        Height = 108, ;
        Left = 682, ;
        Top = 135, ;
        Width = 132, ;
        Name = "Image13"

    Add Object image14 As Image With ;
        Stretch = 0, ;
        Height = 108, ;
        Left = 817, ;
        Top = 134, ;
        Width = 132, ;
        Name = "Image14"


    Add Object image15 As Image With ;
        Stretch = 0, ;
        Height = 243, ;
        Left = 211, ;
        Top = 261, ;
        Width = 425, ;
        Name = "Image15"

    Procedure ygetimg
        Lparameters obj, url,ext
        If Pcount()<3
            Return .F.
        Endi
        Local m.oo,m.x
        m.oo=Strextract(obj,"thisform.","",1)
        m.x=Eval(obj)
        *image
        lcDownloadURL = url
        lcDownloadLoc = m.yrepI+m.oo+"."+ext
        lnResult = DeleteUrlCacheEntry(lcDownloadURL)
        lnResult = URLDownloadToFile(0, lcDownloadURL, lcDownloadLoc , 0,0)
        If lnResult = 0
            m.x.Picture=lcDownloadLoc
        Else
            *!*        Messagebox("Download fails")
        Endi
    Endproc

    Procedure my
        Lparameters nButton, nShift, nXCoord, nYCoord
        *--- aevent create an array laEvents
        Aevents( myArray, 0)
        *--- reference the calling object
        loObject = myArray[1]
        Messagebox(loObject.Name+" "+loObject.Picture+".....can do any command from here ! ",0+32+4096,'',1200)
    Endproc

    Procedure Destroy
        Try
            Dele File m.yrepI+"*.*"
        Catch
        Endtry
        Clea Events
    Endproc

    Procedure Init
        Publi m.yrep,m.yrepI
        m.yrep=Addbs(Justpath(Sys(16,1)))

        If !Directory(m.yrep+"images")
            Md (m.yrep+"images")
        Endi
        m.yrepI=Addbs(m.yrep+"images")
        Set Safe Off
        Dele File m.yrepI+"*.*"

        Thisform.SetAll("stretch",2,"image")
        Thisform.SetAll("mousepointer",15,"image")
        *images
        Thisform.ygetimg("thisform.image1","http://icdn.pro/images/en/l/o/log-in-creating-icone-8549-48.png","png")
        Thisform.ygetimg("thisform.image2","http://icdn.pro/images/en/f/i/file-visiting-icone-8251-48.png","png")
        Thisform.ygetimg("thisform.image3","http://findicons.com/files/icons/2840/vectorize_images_icon_pack/128/date.png","png")
        Thisform.ygetimg("thisform.image4","http://findicons.com/files/icons/2840/vectorize_images_icon_pack/128/map.png","png")
        Thisform.ygetimg("thisform.image5","http://findicons.com/files/icons/2840/vectorize_images_icon_pack/128/favourites.png","png")
        Thisform.ygetimg("thisform.image6","http://findicons.com/files/icons/2840/vectorize_images_icon_pack/128/book.png","png")
        Thisform.ygetimg("thisform.image7","http://findicons.com/files/icons/2840/vectorize_images_icon_pack/128/comments.png","png")
        Thisform.ygetimg("thisform.image8","http://icdn.pro/images/en/i/p/ipod-mount-icone-5709-96.png","png")
        Thisform.ygetimg("thisform.image9","http://icdn.pro/images/en/a/p/app-install-icone-9868-96.png","png")
        Thisform.ygetimg("thisform.image10","http://icdn.pro/images/en/h/o/home-icone-8316-96.png","png")
        Thisform.ygetimg("thisform.image11","http://icdn.pro/images/en/a/p/application-vndoasisopendocumenttext-icone-4318-96.png","png")
        Thisform.ygetimg("thisform.image12","http://icdn.pro/images/en/c/d/cd-quodlibet-icone-7631-96.png","png")
        Thisform.ygetimg("thisform.image13","http://icdn.pro/images/en/q/u/quick-link-icone-6881-96.png","png")
        Thisform.ygetimg("thisform.image14","http://icdn.pro/images/en/g/x/gxmame-icone-9335-96.png","png")

        Thisform.image15.Stretch=1
        Thisform.ygetimg("thisform.image15","https://cdn4.iconfinder.com/data/icons/BRILLIANT/animals/png/400/horse.png","png")

        For i=1 To 15
            Bindevent(Eval("thisform.image"+Trans(i)),"mousedown",Thisform,"my")
        Endfor
    Endproc

    Procedure Load
        Declare Integer URLDownloadToFile In urlmon.Dll Integer pCaller, String szURL, String szFileName, Integer dwReserved, Integer lpfnCB
        Declare Integer DeleteUrlCacheEntry In wininet String lpszUrlName
    Endproc

Enddefine
*
*-- EndDefine: yWebimages

Function yinternet()
Declare Integer InternetCheckConnection In wininet;
STRING lpszUrl, Integer dwFlags, Integer dwReserved

#Define FLAG_ICC_FORCE_CONNECTION 1
lcURL="http://www.microsoft.com"
lResult = (InternetCheckConnection(lcURL, FLAG_ICC_FORCE_CONNECTION, 0)=1)
If lResult=.T.
Return .T.
Else
Messagebox("There is no internet connexion ! this must be established mandatory to run the program.",0+16,"internet Connection")
Return .F.
Endi
Endfunc


Embedding images in code

Click on code to select [then copy] -click outside to deselect


*6*
*created on 11 february 2017
*yimage2base64_converter
*this code convert any image to web use as base64
*it builds also the complet code for CSS image into a web page demo.

Local m.xpict
m.xpict=Getpict()
If Empty(m.xpict)
	Return .F.
Endi
Local ox,lnWidth,lnHeight
ox=Newobject("image")
ox.Picture=m.xpict
lnWidth=ox.Width
lnHeight=ox.Height
ox=Null


Local m.xext
m.xext=Justext(m.xpict)

Local m.xim,m.xsource,m.xcss
xim=Strconv(Filetostr(m.xpict),13)
m.xsource=[< img src=']+[data:image/]+m.xext+[;base64,]+m.xim+[' >]
m.xcss=[background-image: url(data:image/]+m.xext+";base64,"+m.xim+")"

Local m.xinsert
TEXT to m.xinsert textmerge  noshow
<style>
body{background-color:bisque;}
.img{
<<m.xcss>> ;
repeat:no-repeat;
border: 2px solid;
border-color:red;
border-radius: 15px 50px 30px;
width:<<lnWidth>>px;
height:<<lnHeight>>px ;
box-shadow:5px 5px 5px #000;
   -moz- box-shadow:5px 5px 5px #000;//for mozilla
   -webkit - box-shadow:5px 5px 5px #000;//for chrome
   -o- box-shadow:5px 5px 5px #000;//for opera
   -ms- box-shadow:7px 7px 7px #000; //for IE11
}

h1{ color: white;
    text-shadow: 1px 1px 2px black, 0 0 25px blue, 0 0 5px darkblue;}
h2 { text-shadow: 2px 2px red;}

</style>
<center><h1 >Convert image to base64 & codes</h1>

<div class="img"></div>
<br>
<h2 >Base64 String</h2>
<textarea rows="10" cols="70" style="color:rgb(255,0,0);"> <<m.xim>> </textarea>
<br>
<h2 >img Source </h2>
<textarea  rows="10" cols="70" style="color:rgb(105,100,180);"> <<m.xsource>> </textarea>

<h2 >img CSS code</h2>
<textarea  rows="10" cols="70"> <<m.xcss>> </textarea>
</center>
ENDTEXT


Local apie
apie=Newobject("internetexplorer.application")
With apie
	.Navigate("about:blank")
	.Document.Open()
	.Document.Write(m.xinsert)
	.Document.Close()
	.Visible=.T.
Endwith



Embedding images in code

Click on code to select [then copy] -click outside to deselect

*7*
*this code  converts images to a string base encoded 64 to be embed on web independently of the real picture on disc.
*because web cannot acces on  local disc to load any image.
*this is also a method how to send pictures from vfp to web
*can read http://yousfi.over-blog.com/2016/01/embedding-images-in-code.html----- code*4*

Local m.x
TEXT to m.x pretext 7 noshow
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin vel risus eget lorem feugiat
fermentum nec a turpis. Phasellus purus sem, mollis ac posuere eget, ornare vel orci. Sed ac rutrum
nulla. Aenean ultrices eget lectus eu efficitur. In hac habitasse platea dictumst. Nulla in iaculis nisi.
Nullam et pulvinar tellus. Donec arcu dui, efficitur a odio non, porta congue dolor. Aenean viverra
auctor sagittis. Integer lobortis dignissim auctor. Proin et volutpat massa.
ENDTEXT

Local gnbre
gnbre=Adir(gabase,Home(1)+"samples\data\graphics\"+'*.gif')
If gnbre=0
	Return.F.
Endi

Create Cursor ycurs (num i,Description m,img c(100))  &&your table with image field
For i=1 To gnbre

	Insert Into  ycurs Values(i,Juststem(gabase(i,1))+'<br>'+m.x,Home(1)+"samples\data\graphics\"+gabase(i,1))  &&replace by real image location in your table/cursor
Endfor
Sele ycurs
*brow

Locate

Local m.xx,m.ext
m.xx="<table>"
Scan
	m.ext=Justext(img)
	If Lower(m.ext)=="jpg"
		m.ext="jpeg"
	Endi
	m.xx=m.xx+[<tr><td>]+Trans(num) +[</td><td style="padding:15px;">]+Description+[</td><td><img src="#")> </td></tr>]
Endscan
Use
m.xx=m.xx+"</table>"

Local m.myvar
TEXT to m.myvar textmerge noshow
<style>
table, th, td {
    border: 1px solid tomato;
}
</style>
<<m.xx>>
ENDTEXT
Set Safe Off
Local m.lcdest
m.lcdest=Addbs(Sys(2023))+"ytemp.html"
Strtofile(m.myvar,m.lcdest)

Local m.oo
m.oo=Newobject("hyperlink")
m.oo.NavigateTo(m.lcdest)
m.oo=Null



each photo have a string to handle it on the web (no disc location)

each photo have a string to handle it on the web (no disc location)

Click on code to select [then copy] -click outside to deselect


*8*  created on monday 09 of may 2017
*!*	this code builds a decorated editor with 2 gradients images and an editbox.
*!*	drag the bottom image with mousedown to expand the editor or resize the form to see the effects.
*!*	6 styles are embed as blob images to populate the image control pictureVal property.

Publi oform
oform=Newobject("asup")
oform.Show
Read Events
*
Define Class asup As Form
	Height = 584
	Width = 858
	ShowWindow = 2
	AutoCenter = .T.
	Caption = "An expandable and decorated  editor."
	MinHeight = 500
	MinWidth = 650
	BackColor = Rgb(212,210,208)
	ocap = .F.
	otop = 0
	xheight = 0
	xtop = 0
	Name = "Form1"

	Add Object image1 As Image With ;
		Anchor = 0, ;
		Picture = "", ;
		Stretch = 2, ;
		Height = 21, ;
		Left = 24, ;
		Top = 57, ;
		Width = 697, ;
		Name = "Image1"

	Add Object edit1 As EditBox With ;
		FontSize = 10, ;
		Anchor = 15, ;
		Height = 242, ;
		Left = 24, ;
		Margin = 15, ;
		ReadOnly = .T., ;
		SpecialEffect = 2, ;
		Top = 79, ;
		Width = 697, ;
		Name = "Edit1"

	Add Object label1 As Label With ;
		AutoSize = .T., ;
		FontBold = .T., ;
		FontSize = 11, ;
		Anchor = 0, ;
		Alignment = 2, ;
		BackStyle = 0, ;
		Caption = "Label1", ;
		Height = 20, ;
		Left = 300, ;
		Top = 57, ;
		Width = 49, ;
		ForeColor = Rgb(255,0,0), ;
		Name = "Label1"

	Add Object image2 As Image With ;
		Anchor = 0, ;
		Picture = "", ;
		Stretch = 2, ;
		Height = 21, ;
		Left = 24, ;
		Top = 322, ;
		Width = 697, ;
		Name = "Image2"

	Add Object combo1 As ComboBox With ;
		Height = 24, ;
		Left = 48, ;
		ToolTipText = "6 Styles ", ;
		Top = 29, ;
		Width = 100, ;
		Name = "Combo1"

	Add Object label2 As Label With ;
		AutoSize = .T., ;
		FontSize = 11, ;
		Anchor = 768, ;
		BackStyle = 0, ;
		Caption = "Move the bottom image by mousedown ,resize the form...", ;
		Height = 19, ;
		Left = 180, ;
		Top = 8, ;
		Width = 374, ;
		Name = "Label2"

	Procedure Load
*store 6 images for applied styles in a cursor (as Blob values)
	Create Cursor ycurs (img m)
	Local m.myvar

	TEXT to m.myvar noshow
		iVBORw0KGgoAAAANSUhEUgAAANcAAAAoCAYAAABtuW95AAAAtUlEQVR4nO3cwQ2EMAwAQeDcf7/JB5q4FRKaqYAPWsWOct7HcR/A380+r7e/AT5p9vV7+xvgk2YpFySUCyLOXBCZfSoXFGZfygWFWcoFCWcuiJgWQkS5IKJcEHFDAyL2XBCx54KIckHEtBAis0wLIaFcELHngohyQcTPBREDDYgoF0QskSHi+hNElAsis5QLEsoFEdNCiLj+BBHlgohHQSFizwUR00KIKBdElAsiHgWFiD0XRB7cfSlBivYdOgAAAABJRU5ErkJggg==
	ENDTEXT
	Insert Into ycurs Values (Strconv(m.myvar,14))


	TEXT to m.myvar noshow
		iVBORw0KGgoAAAANSUhEUgAAANcAAAAoCAYAAABtuW95AAACAklEQVR4nO3by3KjMBCF4SPQZN7/KebVsp1NKghMZ4EYZAbHuJIOF/9flQokX0qbU40EBHv9YwLw7WLquq3nAJxSbNp+6zkApxRTonIBHmJqL1vPATglwgU4iQ3hAlzE1LLmAjzE9P4mVS+SwtZzAU7CpL5RTM1fSWEIWPgthbj1zIBjsk6yVurfJVm55uokvUmhlsJLbvWGMwV2zkxSJ/VpCJWu7xkvrLk6SU0+r4ZKFn4NTZX7fIF9M8lymKwd+jes2NBIxXmVgxYJG55En4PUSeokW7+7Hpv0yFb8RVJb9Ot8GRmncwKHw7IiRLl9Upnu+eJW/NJvx0tJAoc9u+Qq1OfjY1VpDaf7XGnWr3LI6umoSgqEDs7GAP0LUydZr69UpLU2vokcNAWvInh4nJmG8PRFkMbzbZ8+2vnjT3UO2djGMJZjODfTUHVyaP4L0n7f9d35Kydr5pZDFpYCGKY+T6DsyFht8tH6hTErxo7piZ4tDNctlKGbhTDMvosbbGpXYSjGJU1h6Wfj58YrJ6vNw1aG9JPPr34//79759/BiqMtjN35js2DMu/jltg8TeUCftYTXRYCP2vnGxrAce18Kx44Li4LASeEC3BCuAAnD75yAmAtKhfghHABTtiKB5xQuQAnPKEBOKFyAU5YcwFOqFyAE8IFOGFDA3DCmgtw8gFL3gKiPqW1RwAAAABJRU5ErkJggg==
	ENDTEXT
	Insert Into ycurs Values (Strconv(m.myvar,14))


	TEXT to m.myvar noshow
		iVBORw0KGgoAAAANSUhEUgAAANcAAAAoCAYAAABtuW95AAACyElEQVR4nO3c7W6bMBgF4GMwoVO3qr2JXfvua9Kk/uiabEta/IH34zUBkjYlLS4QnUeybEhSWRVHr01Q1I/vIYCIRqd9ZqaeA9FF0j6rpp4D0UVi5SJKhOEiSkQ7hosoCe0V91xEKXBZSJSI3j4alLcA1NRTIboQAah+A3r900D9AspboLwDiq9Tz4xomewOMBugegBqB2iPCvCAewC2D0BeSshWt4C+mnq6RPMVAmD/SaDMBqht/3XtVH/P5QxQ3QO4BzIN6GtgdQMUN0BefN7Eieao9oBZA+aPBCv4zosHWyvtcOKGhpNE7jZymK9k2Vh8kz5bjT53olnxz4DbAfavLPt8BWDg07hn3Yr3FjCPAB7lOL8C9Bdpeewzffb8iWYh1IDdAm4rgXI72TsdGXjz73TleoN7Bqpn7MMGSDUrrhk4mjdfSVXylVzH/kn6oVVpiKM914dZWZNi3Z7Kihi2UqpdXsoSk8tKSq0Xoqd2HOpXPjDiV1IfqlyDWcDY49NKScDyKwnbPnwMHg0UPOANUJu2r20MksGolehc0z/+ZGI70AQvW0nlywvplY7h0zKmCxdi9WmCY2Tv34Spd7fuJRM+HPE5les9AoAqtlcoBahCgpbpNoiZjkHM2jGfQJmP4OVGwb630nfP1TaOPSatPh8x/p7rs9nY3qAUoPK2NYHsnctjIGMwVSbnGcwXhPbiD02rD469fNF6GKSzf1hiof9/7ZcernP42N6hF04FoBM+pfpB3L+3uSiyzhjy3uaCaf7Wfjz2hRTixVzLxR/qznGIrx+Mu+ea0KB77N8RkK6FhuVc2p1ad1ErAHCxEQ2w/GUh0UzN94YG0cJNfyue6EKxchElwj0XUSKsXESJcM9FlAgrF1Ei3HMRJSI/UENEo2PlIkqEey6iRFi5iBLhnosoEVYuokS45yJKhJWLKBHuuYgS+Q8OiE9FMCoHNwAAAABJRU5ErkJggg==
	ENDTEXT
	Insert Into ycurs Values (Strconv(m.myvar,14))

	TEXT to m.myvar noshow
		iVBORw0KGgoAAAANSUhEUgAAANcAAAAoCAYAAABtuW95AAACfUlEQVR4nO3dbW6jMBSF4YNtMluZ1cxqZu+jBmzPjwvEoURN2jh85H0kt5CkEUIcrjFGbf7+/pMF4OmCb/3a2wAcUgi/wtrbABxS8CfCBdQQwoluIVBD8G279jYAh0TlAirhmguoJIQsiYABz3XuFXwXpT5JJ28hC3QTgW/po9RF6aOXci6uuXKWPjp78xQsbN6tu7HAlmVdAtX1UhomO7WWm+DbhS5hTNK/JDWNVbJ2aK553YYDW5QlnXsLVB+tKEmS99Ks03fHaGGW+t6ac5ewBcKGNxCTtS5KMdqyJDWaKtQtj88tzEk6J+ncWbfRuyG1wzKBw16N3bx+CFFZmSQ7tt39eQlhqVv43Q2ShupWBC54614CW5LSpSrFdF2VRj8c3Au+yk3kLMVeipLOssR7b8ErK5xjwASVxTQLUrSBhzx70soPx+gThfCyR06ylKK1rnjZOwvZVfAcwcN9crbwpGShicleW6pE0nBSf01Panm0cA3jDloKXjNUuXHHOCc1XN+9hTI8cRaklD5XoNEGTtA7mFuYraUkLZyIptBNASzC2IgQblHOlzZ20cagTK+ly/JcIxv23vh92AM9iVx0O5c0stBNrQjlzTb8jQjnZ/k6JFmz9YU2heaLry73+44PzxDedl5hcVDcqwzezXVJKsKpcf3qi268N//cE+Thx3jwj8tf/tZ1MJbW7zWGxTWStl1tnulAlWsN5cGqx4K6F1eFmyr+CMIFVLKDAQ1gn7YzFA8czAtvIgPvpdL0JwA/n7gLYBGVC6iEay6gEkYLgUq4zwVUwgwNoBJGC4FKGC0EKmG0EKiEf8QAVELlAiphtBCo5I0f8wfq+g+ROAIIeG3R7gAAAABJRU5ErkJggg==
	ENDTEXT
	Insert Into ycurs Values (Strconv(m.myvar,14))


	TEXT to m.myvar noshow
		iVBORw0KGgoAAAANSUhEUgAAANcAAAAoCAYAAABtuW95AAACvElEQVR4nO3b7W7aMBiG4dvE0NKtm9qD2Pkf1CZN1T46tK6lxH73I05IgK6jYALhuSQrARMwkEevE4Iz+2SIyN75EMd9j0FkkBQukUx8NIVLJAcf4qTvMYgMkg/R9z0GkUHy0VS5RHJQ5RLJxJfxF45bwPU9FpGBMIzv+DJ+Ab7iuMFxi+O675GJnCTjAeMe4xtQ4qMVqetnapeMuMVxA0x7G6jI8TOMWQrUPbBo9RWbjrlKAnfAHTDG8R7HBxwfgYtDjVrkSJUYP1KoZkBo9XWz5EMseFkEZql9Bi5wXKewXePQmUYZNuMpTfdmwG+MOdC+HPfl/Gx5tjAA96mB4xJ4h+OqaaArPuRUBYzfrfYAlCuP+Vcx6nqlcr1mQTtsAI6LNJW8giZ0Cpwcl6oiPUJaGn/S7dU/ibw9Hz7YLuHapGQ9cOMUtimOKY7LFEIdw0leVXDqANUhmtM9VqqN9vraB/oR2YCH1NpGKWRTHJMmeCh48t8CxrxpMMd4bkK1Xomg+k03/36/47RwH55TW1UHbwJM0vo4TTHb6zJkRkwhmXdCtAzTpgpU228l2pYPdsyXPy1SW614tVErZONOAKvKN2r6+v6gpS1gPKflAkvf8/p9JUbJ5uoDh6pAb3UElWtXZWqPrzxuhKMAPI6iFUgPFJ1l1Ve0tlEw10WMQBWAQBWKcsPSNoQmbvE6p/vZn9mFu8ayGj5tuW0dtALHiOpLr0Pp0n11IJfrQLrtOs+17HMsd6B62/0xIqRWhSBS7fCxWa/6Nt22JijL+0Lred5i+d6HbgCV65DqHfDcOXY5RX0uMpyKFxE4u2mhyOFoWiiSiSqXSCY65hLJRNNCkUw0LRTJRJVLJBMfj/raQpHTpcolkomOuUQyUeUSyUThEsnkyP8sKXK6VLlEMtEJDZFMVLlEMtExl0gmfwFHeSgqEnVgNAAAAABJRU5ErkJggg==
	ENDTEXT
	Insert Into ycurs Values (Strconv(m.myvar,14))

	TEXT to m.myvar noshow
		iVBORw0KGgoAAAANSUhEUgAAAP8AAAAoCAYAAAAxMyxdAAABdElEQVR4nO3aQWpUQRSF4f+RmkjmyUjcgmAGsdu4AHsfgoiIBCSETIRnS1agZB3ZQNK2mQQcO+xhL0CEhlfXTWgV5P7fCs7s3DrvDREBwMvl3QJ4BzwFDpH0kGyBn8B4e/58DTBEBCfj+gtw1jWapFbOVhfzy2H26WYBXPdOI6mZCTguUevb3kkkNbUHnJao07PeSSQ1Ny+11oPeKSQ197hEnXqHkNRBiVp7Z5DUQak2v5SSzS8lVSJsfimjUm1+KSXXfikpm19KyuaXknLtl5LyO7+UlM0vJeWbX0rKtV9KyrNfSsqzX0rKs19KyuaXkvLNLyXlTz5SUja/lJRvfikp134pKZtfSqpE2PxSRq79UlKu/VJSNr+UlM0vJVWiTlvgsHcQSU1tSq31Hlj0TiKpqVWJOi2BV8DQO42kJnbAOEQE+y/efAQ+A6VzKEn/1w54//v7129DRADwaPb6CPgAzIEnHcNJ+vc2wAoY//y4+gXwFzI5mPgOZ1HoAAAAAElFTkSuQmCC
	ENDTEXT
	Insert Into ycurs Values (Strconv(m.myvar,14))

	Sele ycurs
*brow
	Locate
	Endproc

	Procedure Destroy
	Clea Events
	Endproc

	Procedure Resize
	With This.image1
		.Top=Thisform.xtop
		.Width=.Parent.edit1.Width
	Endwith

	With This.label1
		.Left=(.Parent.image1.Width-.Width)/2
	Endwith

	Try
		With Thisform.image2
			.Height=Thisform.xheight
			.Width=.Parent.edit1.Width
			.Top=Thisform.edit1.Top+Thisform.edit1.Height
		Endwith
	Catch
	Endtry
	Endproc

	Procedure Init
	Thisform.xheight=Thisform.image2.Height
	Thisform.xtop=Thisform.image1.Top
	Thisform.combo1.Click()
	Endproc


	Procedure edit1.Init
	TEXT to this.value noshow
		Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin vel risus eget lorem feugiat
		fermentum nec a turpis. Phasellus purus sem, mollis ac posuere eget, ornare vel orci. Sed ac rutrum
		nulla. Aenean ultrices eget lectus eu efficitur. In hac habitasse platea dictumst. Nulla in iaculis nisi.
		Nullam et pulvinar tellus. Donec arcu dui, efficitur a odio non, porta congue dolor. Aenean viverra
		auctor sagittis. Integer lobortis dignissim auctor. Proin et volutpat massa.
		Cras vitae felis venenatis, egestas sem quis, sodales neque. Donec venenatis hendrerit odio, non
		pellentesque metus scelerisque ac. Suspendisse aliquet rhoncus odio id viverra. Vestibulum feugiat
		lectus a nisl pulvinar, in tempor metus eleifend. Nunc id odio quam. Praesent egestas lorem ut
		sollicitudin consectetur. Vestibulum id bibendum est. Ut vel lacus sapien. Quisque eget molestie
		sem. Integer eget purus eu orci molestie aliquam quis in ante. Integer a magna eget lectus finibus
		porttitor. Donec fringilla sapien a quam aliquet, pellentesque blandit nisl placerat. Nam hendrerit
		velit vel ex aliquam, eget convallis ante mollis.
		Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin vel risus eget lorem feugiat
		fermentum nec a turpis. Phasellus purus sem, mollis ac posuere eget, ornare vel orci. Sed ac rutrum
		nulla. Aenean ultrices eget lectus eu efficitur. In hac habitasse platea dictumst. Nulla in iaculis nisi.
		Nullam et pulvinar tellus. Donec arcu dui, efficitur a odio non, porta congue dolor. Aenean viverra
		auctor sagittis. Integer lobortis dignissim auctor. Proin et volutpat massa.
		Cras vitae felis venenatis, egestas sem quis, sodales neque. Donec venenatis hendrerit odio, non
		pellentesque metus scelerisque ac. Suspendisse aliquet rhoncus odio id viverra. Vestibulum feugiat
		lectus a nisl pulvinar, in tempor metus eleifend. Nunc id odio quam. Praesent egestas lorem ut
		sollicitudin consectetur. Vestibulum id bibendum est. Ut vel lacus sapien. Quisque eget molestie
		sem. Integer eget purus eu orci molestie aliquam quis in ante. Integer a magna eget lectus finibus
		porttitor. Donec fringilla sapien a quam aliquet, pellentesque blandit nisl placerat. Nam hendrerit
		velit vel ex aliquam, eget convallis ante mollis.
	ENDTEXT

	With This.Parent.label1
		.Caption="My Title goes here."
		.Left=(.Parent.Width-.Width)/2
	Endwith
	Endproc

	Procedure image2.MouseMove
	Lparameters nButton, nShift, nXCoord, nYCoord
	Try
		If Thisform.ocap=.T.
			This.Top=nYCoord
			This.Parent.edit1.Height=This.Top-This.Parent.edit1.Top
		Endi
	Catch
	Endtry
	Endproc

	Procedure image2.MouseUp
	Lparameters nButton, nShift, nXCoord, nYCoord

	Try
		This.Top=nYCoord
		This.Parent.edit1.Height=This.Top-This.Parent.edit1.Top
	Catch
	Endtry
	Thisform.ocap=.F.
	This.MousePointer=0
	Endproc

	Procedure image2.MouseDown
	Lparameters nButton, nShift, nXCoord, nYCoord
	Thisform.otop=This.Top
	Thisform.ocap=.T.
	This.MousePointer=15
	Endproc

	Procedure combo1.Init
	With This
		.AddItem("style1")
		.AddItem("style2")
		.AddItem("style3")
		.AddItem("style4")
		.AddItem("style5")
		.AddItem("style6")
		.ListIndex=1
		.Value=1
		.Style=2
	Endwith
	Endproc

	Procedure combo1.Click
	Sele ycurs
	Go This.Value
	Thisform.image1.PictureVal=img
	Thisform.image2.PictureVal=Thisform.image1.PictureVal
	Endproc

Enddefine
*
*-- EndDefine: asup


Embedding images in code
Embedding images in code
Embedding images in code

Important:All Codes above are tested on VFP9SP2 & windows 10 pro & IE11 emulation

To be informed of the latest articles, subscribe:
Comment on this post