Saturday, August 15, 2009

QA Dept: CodeBot / SysRpl's Components

site: www.codebot.com

Your reviewer had quite some difficulty since CodeBot's owner temporarily disabled their site. Your reviewer will be reviewing some sources upgraded to Delphi 2009.

CodeBot Component Package
The first component is TAutoCompletion, it is broken, as in, it sometimes works and sometimes does not work. Let me explain. The auto-complete places a TStringList into an EDIT, but remember that TEdit and EDIT (case-matching problem?) are two different things. For such glaring bug to be found in the first 5 minutes, that is very glaring error. Another is Unicode issue where it does not work with Delphi2009/Unicode. (I'll leave that to Sysrpl to fix).

Another is lack of documentation, or rather, what documentation? just some short snipplets on CodeBot's website.

The second component is of questionable quality - TBackground. why would I need a TBackground for? The color property does not work.



The next is TBrushButton, What product would you use TBrushButton for? Maybe for a simple paint program. It lacks depth of TMS's graphic components (or DevEx or LMD's)

The next is TButtonEdit, which has some flaws. If you assign, say, ButtonVisible = false, the refresh does not render it correctly. and obviously, no clear way to set button size (height, width), and edit-button hint or glyph. (It also don't work with theming)

The next is TCaptionBox which does not have Pin (i.e., drag & drop), Minimize glyph and maximize glyph. What kind of captionbox is that?

The next is ColorGrid button. DelphiHater would prefer to use Delphi Gem's Color Button instead. CodeBot's version is too simple.

The next is drop-down button with Calendar, called TDatePopupEdit. DelphiHater could not understand what kind of Calendar TDatePopupEdit does?



The image above shows half a calendar and no way to select the 2nd half (width wrong?).

The next group are TDbDrawList, TDbReportview, TDrawList, a TWinControl with data-aware helpers. Those components lack documentation and difficult to use. It would make a grid alternative, if not for the lack of development on them.

The next is TExpandableBox, a group-box with drop-down. DelphiHater wonders what kind of use this box would be used for, a component which causes the form to tear-down or scroll-down would be better idea instead.

Another unfortunate issue that plagues CodeBot's library is debug messages which pop-up every now and then. Such as in BtnCtrls.pas:

procedure TCustomImageButton.CMLostFocus(var Message: TCMLostFocus);
begin
ShowMessage('CMLostFocus');
end;

or

procedure CheckControl(Control: TWinControl; Valid: Boolean; const Msg: string);
begin
if Control.Enabled and Control.Visible and (not Valid) then
begin
MessageDlg(Msg, mtError, [mbOK], 0);
Control.SetFocus;
Abort;
end;
end;

(Suggestion to CodeBot: either get Raize CodeSite to debug these kind of errors and MadExpert or EurekaLog to debug those annonying / or access violations)

The next components TFolderView and TInspector suffers from random access violations,

Example 1:
1) Drag and drop TFolderView to your form
2) Delete it.
3) Delphi crashes.

Example 2:
1) Drag and drop TInspector to your form
2) Delete it.
3) Delphi crashes.

The rest of CodeBot's controls were somewhat unusable or unworkable in Windows Vista. Just trying to use them caused Delphi to crash or hang.

CodeBot Naming Usage
Mr CodeBot's usage of generic names and legal threats to CodeGear makes no sense.

For example, if you call your component TButtonEdit and CodeGear adds a component called TButtonedEdit to the VCL, you shouldn't blame CodeGear for this.

In fact, DelphiHater much prefers TButtonedEdit rather than Codebot's TButtonEdit because CodeBot's TButtonEdit does not work in Windows XP Theme'd mode, has no flat feature, no way to control button properties, and not least, CodeGear's implementation seems more complete than CodeBot's.

Also, as reference, The author of RMControls at http://www.mills-enterprise.ca added a prefix to his components, TRm(Components)

The original idea of Prefix for components came when Mr. Steven Healey setup a mini-site called http://delphiprefix.href.com/

After some funny comments from TeamB and other people on newsgroups, Mr CodeBot disabled his site and disallowed downloading.

CodeBot Lamentations
If you're hanging around the #Delphi chat, which some of Mr CodeBot's newsgroup posting point to, you can hear him lament...

The usual kind of lamentations - few or no jobs, all the jobs going to "unprofessional" or script kiddies who use JavaScript and PHP.


Conclusions
DelphiHater wonders what future there is for CodeBot components, given Mr CodeBot disabled his website and with little documentation or product guides.

No comments: