Embedding images in code
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
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
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
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).
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
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
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
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
Important:All Codes above are tested on VFP9SP2 & windows 10 pro & IE11 emulation