Friday, December 28, 2012

ssTransparent + ssClose


As I am in the mood these days to create transparent irregularly shaped forms, I decided to work on another module on my end to give it a better appearance.  So last night I sat infront of my laptop ignoring my lovely wife designing yet another transparent form for that module playing with Daryl Bautista's Photoshop's styles script (many thanks!) and tweaking those a bit.

Then another thought hit me because I fail again to duck.  How about combining both ssTransparent and ssClose classes so I can have a cool close button in no time at all?  After much moving and styling of layers for the image to be used as the background and playing with ssClose settings, here is the result:

Friday, December 21, 2012

ssThrobber

Note as of December 28, 2012:

It was reported to me that ssThrobber do not work on others.  And when I checked here, it is only working on my machine but not on the rest of my users.  So here is a fix to make it work on your end.  You should register ssThrobber:

Step 1:

Click start button, run. Browse and look for where ssThrobber.exe is in you computer (d:\ssdemos). However, do not click OK yet and type a parameter /automation. Then click ok button and test again.

In the run box should be something like: 

d:\ssdemos\ssthrobber.exe /automation


Step 2:

Copy paste these into a notepad. Then save it as ssthrobber.reg

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\ssthrobber.animate]
@="ssthrobber.animate"

[HKEY_CLASSES_ROOT\ssthrobber.animate\CLSID]
@="{051DF0CF-6D3F-4CE2-A04D-F11318866286}"

[HKEY_CLASSES_ROOT\ssthrobber.animate\NotInsertable]


After it was saved, double-click it.  That should fix the problem.


===============

Remember the throbber idea I shared last time in Weblogs?  Well it was reported before that during heavy processing, the animation stops.  Lucky for us Bernard Bout has showed another way on how to utilize that throbber by making it an exe and calling that from within our app.  Being that is now running on a different thread, then it is no longer affected by heavy processing on our app.

Following his instructions and codes, here is how to use that separate exe on our end:

local loThrobber
loThrobber = CREATEOBJECT('ssthrobber.animate')
loThrobber.Show

* Do your SQL SELECT here or any processes that will take long

loThrobber.Hide
loThrobber = Null

Very simple to use.  Just make sure that you copy that ssThrobber.exe where your app is.


This will be included likewise in the next upload together with  ssClasses library.

Also, if anyone who has a good throbber in their end would be willing to share theirs, please email me those so later I can put some more options such as changing the throbber to appear, etc.


Thursday, December 20, 2012

ssClose

ssClose 1 to 3 are just a small image that serves as the exit or close button of your form.  Please see previous posts regarding those.

ChangeLog as of December 20, 2012:
  • I accidentally removed form pinning capability via user interaction on ssSwitch.  Fixed.
  • Changed previous skin because it now looks "bland" to my taste.  Created skin # 2.
  • Added nSkin parameter in the end with default value of 1.  Right now it only has two values, i.e., 1 or 2.
Here are the current skins:

ssFader class

Here is a new class that will give you fading capability on your forms.  This has been mentioned to me the other night by Daryll Bautista saying maybe I would like to create a fader class.  And I told him that is a great  idea which I have not thought of myself.

So in the next release of ssClasses library which is planned this week, expect ssFader.  This is a control class with spinner.  And like some of my other classes employing ssSkinner class like ssTitlebar, this one also retains the user settings as well.  Meaning, when you go back to the form where this is dragged, then you will be coming back from your previous fader setting.

ssPolyClock Enhancements

Just to set the records straight, co-author of ssPolyClock is my cousin, Glen Villar, who also has his own blog (Reporters' Assistant) is the one who originally programmed this analog clock to run based on polypoint manipulations.  He volunteered this class last time to be included in my library so I incorporated that into ssclasses and added the move-anywhere functionality, skin switching and other more features plus of course the early skins; to make the appearance look better.  But the engine to make the clock work is his.  So let us give the guy the proper credit.

Another pinoy is making and will be making more impact on ssClasses library.  He is Daryll Bautista (known inside foxite as yllrad atsituab), a fellow foxiter and working as Tech Support, Developer and Designer in our country.  A very young man, currently only 22 years of age who lives in Tacloban City in the Philippines.

I noticed inside the forum that he is good in GUI so I talked to him behind foxite if he is interested in lending his designing skills to us to give ssClasses library better appearances on the next release(s); and lucky for us he has agreed.

Saturday, December 15, 2012

ssTransparent Class

Lately I am into creating irregular transparent forms (again) that I decided to create a class  instead of me repeating creating properties and methods and placing codes in each form I wanted to be transparent.  And said class is working good on my end.  Aside from making the form transparent, it will also make it movable.

Here are the steps to use this class:
  • Design an image in photoshop to be used as background.  The background color should be RGB(0,0,64) because that is what I use on my end.  Save it as bitmap.
  • Create a new form or open an existing form then set its Picture property to that  bitmap image
  • Drag ssTransparent class and drop it into that form
  • Change form's ShowWindow property into 2
And that is it, just run your form and see that portions of your form will become transparent based on the image you used as form background that are of color RGB(0,0,64).   In addition to that, your form will also be movable.

Friday, December 14, 2012

How to hide codes in your class?


ssClasses has gone from an open source library to per subscription with hidden codes and back to open source library.  And it cannot be helped that some are wondering how I was able to hide the codes before, and so a question raised inside Foxite.

And so I believe it is better for me to explain here the process involved in hiding the codes.

How was I able to do that?

Since I am using ssClasses library on my end in actual production of my ERP app, the codes are always visible on my end.  For my subscribers then, I keep a separate folder named ss_sample - subscribers; where a small project is made just like what you see now in ssDemos.zip with all the forms to show how to use each class and a copy of the library is there. And by intention, I have hidden the codes to them because I do not want them to touch it and then come back to me complaining 'Jun I have a problem, your class is giving me error!' where it will be hard for me to trace what has happened especially if it is because they touched my codes and forgot to tell me so.  To avoid that problem, they cannot touch my codes by making it invisible to them.  Any thing they need or wanted before, they suggest to me and I do any enhancement on my end, then email them back with new updates.  That also works good for every one because the updates are not limited to that single user, new features will also be made available to others.

So how did I hide the codes?

Thursday, December 13, 2012

ssClasses Library now in VFPx


ssClasses is now made public as open source at VFPx.  The initial release though does not involve ssButton and ssTitlebar yet being that those two are dependent on ss_support.app for the image requirements; the process  I decided to discontinue.  However, expect that those 2 will be added there in the near future.

As for ssClasses library, I welcome interested parties to participate in enhancing that library.  You can either email me suggestions or if you would like to work with me on that directly, send me an email as well.  In the tradition of CodePlex and of course VFPx, the library is now without any restriction from me.  And since the codes are there now, I know we can all make it better still!  My email allotted for this is ss.classes.jun@gmail.com


Here is the link of the project in VFPx:  https://vfpx.codeplex.com/wikipage?title=ssClasses&version=6

You can check the download link from there.

For my existing subscribers, I would like to say a very heartfelt Thank You to you guys!  Your contributions has helped me as well as others whom some of those funds from your contributions has already went to and the rest will still go in the future.

And I can't help but be amused that the first time I started working on the initial classes and decided to share those inside Foxite forum was in December; and now it is December again.  So, once more, Advance Merry Christmas every one!

Special thanks goes to Doug Hennig, Rick Schummer, Craig Boyd, Jim Nelson and Matt Slay for giving me the proper directions and assisting me in making this project available for VFPx.  

Special thanks also goes to Ony Too for his dropdown calendar class.  This small class has a very strong influence over ssClasses library.  As well as to my cousin Glen Villar for volunteering his Polypoint clock.  I just made that into the class adding some more features along the way but the engine running the clock is his.

Tuesday, December 11, 2012

ssExcelPivot class Enhancements

Changelog as of December 20, 2012:


Added two validations in ssExcelPivot, one to check if you have used a RecordSource or not, another to check if there is a record on that RecordSource; before allowing the class to proceed, again per request of MK Sharma.  However, the suggested usage for the class is something like this:

SELECT ....FROM.. INTO CURSOR whatever NOFILTER
IF _Tally > 0
   This._RecordSource = 'whatever'
   * And a lot more settings
   DODEFAULT()
Else
   Messagebox('Sorry, no data to process!,0+64,'Opppssss!')
Endif 

============


I am currently relieving our Fleet Manager  while he is on holiday so I am stuck here in our head office and is not going around in the meantime.  And because of this, I was able to focus a bit on my BizCore ERP app and can think of some more things to do for ssClasses especially on ssExcelPivot class to make our reporting lives easier.  And as I touch things when I needed those, I touch these now because I needed them.  Here are some new properties to give users more power and flexibility in generating their pivot reports:

_papersize = this is an integer value to select paper size, default is 1 or letter size.  When you use an invalid integer value, the class will default your pivot report back to letter size
This._papersize = 9  && A4 Size

_orientation = 1 portrait (default), 2 = landscape
This._orientation = 2

_withfooter = to show or not (default) a footer of Page 1 of x that is centered.  It auto-adjusts the bottom margin when this is set to .T.
this._withfooter = .T.

Tuesday, December 4, 2012

ssTextBox

Changelog as of December 20, 2012:


  • Fixed marker that is left behind when class is in focus and is disabled
  • Added _NoBackSpace property per request of MK.  When this is set to .T., you won't be able to go back to previous control using Backspace.
  • Added getting value directly from the class (forgot to add this last time)
===========


A subscriber surprised me yesterday afternoon by saying thanks in my email about my textbox class.  Where I said to myself, what textbox class?  So I checked and indeed there is an ssTextBox inside my library.  Then I remembered he requested last time for a textbox with curvature where I started working on it.  But then since other subscribers are repeatedly asking me to immediately release the latest updates of the library, after I have the basic need which is curvature, I left it and worked enhancing on the existing ones, sent the latest to them and then immediately focused back on my works in our company.   So ssTextBox remained to have only one feature, i.e., a textbox with curvature; no more no less.

While my said subscriber is happy with the curved textbox he has requested, he is now wondering how to resize that like what can be done to my other ssClasses class; which of course in this case is not there yet.  Realizing I have that unfinished class and suddenly feeling guilty knowing it is being used in production with only that feature, I told him I forgot about it and that I will work on giving it more features.  So last night, I decided to see what I can do further with it and I can say that now it is really worthy to be part of ssClasses:


Saturday, December 1, 2012

yv8g67.exe Malware Manual Removal


I saw the same activity on another unit but this time the infection is named bazirud.exe and is being loaded by toulobi.  In which case, I believe this is the same virus strain and so I cleaned it up with the same procedures I mentioned here.

Is your unit continuously uploading something like emails to internet when you are not doing anything like that on your own?  If so, then you may have been hit by this malware called yv8g67.exe.    I have posted this before on my defunct www.junblogs.com and while I forwarded some entries I created there before to here, for whatever reason I forgot to include this one.  Anyway, I will make this much simpler now.
What it does (minor things):
  • Creates several exe with random filenames inside System32 folder and marks it hidden, Read-Only and System. Sizes varies between 41kb and 44kb.
  • Further tracing shows it creates a backup/duplicate exe of all those inside System32 folder in the Local User’s temp folder, names are totally different than that inside System32
  • It also creates registry entries to HKLM\Software\Microsoft\Shared Tools\MSConfig\startupreg; to ensure that those virus parts will be auto-loaded next log on.
  • With the actions happening in the background with this virus, this results to unnecessary overpopulating of HKCU\Software\Microsoft\Windows\ShellNoRoam\MUICache entries in Registry
What it does (major things):