Rathinagiri wrote:Guys, what are all the points/bugs there to be solved before releasing a HMG Unicode Stable version?
I have prepared my "Improvements and corrections" for this versions and I did not publish earlier for fear that the list can be misunderstood, that is, that the list is just look like criticism or just to show bugs since the last (3.1.4) I got no answer or did not provide any discussion of some of the items as I expected and in fact this list aims to promote improvements and all to present ideas and solutions in certain items. But now I'm understanding that this list helped mcuh to surround some defects. In new versions is increasingly difficult to introduce new items and this is a sign that the version releases are getting better ...
Rathi, let me note something, with all due respect. When a new version of HMG is released, the version always comes the word "Test" between parenthesis. This used to it being in the version.txt file and the title of the threads here on the forum. I think "(Test)" should be removed. It gives the wrong impression that the released version is not the final and of course every new product is tested and new releases will happen, so I think it should be removed from this nomenclature, in my opinion. What do you think? Is there any reason for the version of HMG have the nomenclature "(Test)"?.
I put this as one more item on my list below:
1. C:\hmg.3.1.5\SAMPLES\ProgramExecution\MULTIPRG, it is not possible to compile due following:
a. Please replace BuildLib.bat with this contains:
@Echo off
SET temp1=%~dp0
SET temp2=%temp1%
SET pos=0
:loop
SET /a pos+=1
echo %temp2%|FINDSTR /b /c:"SAMPLES" >NUL
IF ERRORLEVEL 1 (
SET temp2=%temp2:~1%
IF DEFINED temp2 GOTO loop
SET pos=0
)
SETLOCAL EnableDelayedExpansion
set "temp3=%temp1%"
set /a pos=pos-2
set temp1=!temp3:~0,%pos%!
set PATH=%temp1%\harbour\bin;%temp1%\mingw\bin;%PATH%
if "%1"=="" for %%x in (*.hbp) do (hbmk2 %%x -i%temp1%\include)
2. C:\hmg.3.1.5\SAMPLES\MainDemo\MAIN.AUTOADJUST, This samples is crashing when make many resizing. Please replace actual sample with (
this one ). Because, not all components in actual samples are reziseble, then is crashing. This was indicated from HMG 3.1.3 version.
3. C:\hmg.3.1.5\hfcl\Samples\GridPrintPreFormat, Item
"b. Error after Print option" need to
rebuild libhbvpdf.a at C:\hmg.3.1.5\SOURCE\hbvpdf. Update
libhbvpdf.a.
4. C:\hmg.3.1.5\Samples\USER.COMPONENTS, it does not compiles. I have some suggestions to let this example workable and make independent sample and not as is now with includes files being part of HMG main project. My suggestions are:
- a. There are two includes files: i_UsrInit.ch and i_UsrSOOP.ch at c:\hmg.3.1.5\INCLUDE folder which will be not necessary to have it as internal HMG file. These files could be deleted.
b. In place of these two files should be created only one with name UserInit.ch at c:\hmg.3.1.5\SAMPLES\USER.COMPONENTS folder (at current folder) and with the following content:
Code: Select all
#define BASEDEF_MYBUTTON
#xcommand @ <row>,<col> MYBUTTON <name> ;
OF <parent> ;
CAPTION <caption> ;
ACTION <action> ;
=>;
_DefineMyButton(<"name">,<row>,<col>,<caption>,<{action}>,<"parent">)
#undef BASEDEF_MYBUTTON
#xcommand DECLARE CUSTOM COMPONENTS <Window> ;
=>;
_dummy() ;;
#define SOOP_MYBUTTON ;;
#xtranslate <Window> . \<Control\> . Disable => Domethod ( <"Window">, \<"Control"\> , "Disable" ) ;;
#xtranslate <Window> . \<Control\> . Enable => Domethod ( <"Window">, \<"Control"\> , "Enable" ) ;;
#xtranslate <Window> . \<Control\> . Handle => GetProperty ( <"Window">, \<"Control"\> , "Handle" ) ;;
#xtranslate <Window> . \<Control\> . Handle := \<v\> => SetProperty ( <"Window">, \<"Control"\> , "Handle" , \<v\> ) ;;
#undef SOOP_MYBUTTON ;;
c. Edit c:\hmg.3.1.5\SAMPLES\USER.COMPONENTS\demo.prg to add #Include "UserInit.ch"
e. Delete Readme.txt which are some unecessary instructions, because now is include file at current folder.
f. Edit Minigui.ch which wrongly contains following lines:
#include "i_UsrInit.ch"
#include "i_UsrSOOP.ch"
These lines must be deleted, because is not part of any internal ressource of HMG, instead it's a simple example and with include file at current sample folder it is enough.
5. Changing IDE language. This Item probably did not has been readen at time by Dr. Soto. Which it is being changed on the fly but only in main IDE window and other"Project Browser" and "Object Inspector" windows are not changed the language.
6. Update ide.bat files in most of HMG samples, overwriting ide.bat files with C:\hmg.3.1.5\sample\ide.bat file.
7. IDE error message, I think for the next version of the IDE, could eliminate this condition and have to accept the names and path as the OS accepts and eliminate this kind of error message from the IDE:
8. Flaws by the IDE in INI, HBP and RC files.
Messages from Daniel Maximiliano and Rathi in this topic are explaining about it.
9. From HMG Wishlist MessageBox with TimeOut, this is an indication that I wish to have in HMG so that we can get better results in the "MessageBox" (MsgInfo, MsgStop, etc..) And be able to better interact with the user. Several other languages have more flexibility and I think its does through MessageBoxIndirect as well as Visual FoxPro featuring "msgboxtimer".
10. Here in this message are some suggestions for IDE, which probably may be treated or improved. I would like to re-state what I think the very important question of the content of the title, so that in case of multiple sessions open and minimized, can easily be identified only by the name of the project when are all minimized at TaskBar of Windows. My suggestions it could be shown the
project name (without ".hbp") + "at" +
project path +
IDE version (IMHO, without UNICODE/ANSI descriptions, because the color of ico file already tell us the current mode in use), as shows folowing picture:
In StatusBar (first item), could it be removed the string "Compiler" (let just HMG version) and also space problem in the IDE title, which is displayed with cutted info because the IDE title is still too long string as being shown in the picture below:
This is what I indicate, being like this:
- Screen2a.PNG (14.93 KiB) Viewed 4848 times
11. Following patches are indicated for this version:
-
Several files are being substituted
-
Images compatibility for toolbar (backcolor transparent)
12. C:\hmg.3.1.4\SAMPLES\PROPOSED.FEATURES\GRID.SORT, errors at compiling sample. Functions
LISTVIEW_GETCOLUMNORDERARRAY and
LISTVIEW_SETCOLUMNORDERARRAY are already defined. But function
LISTVIEW_GETCOLUMNORDERARRAY is returning Nil value into array, then "Get Columns Order" option is crashing. So needs to replace Demo.prg file by this or probably another with better ressources:
Code: Select all
/*
* HMG Grid Demo
* (c) 2005 Roberto Lopez
*
* ListView SORT ORDER COLUMN
* Author: BADIK <badik@mail.ru>
*/
#include "hmg.ch"
Memvar fColor
Function Main()
Local aRows [20] [3]
Private fColor := { || if ( This.CellRowIndex/2 == int(This.CellRowIndex/2) , { 0,0,255 } , { 0,255,0 } ) }
DEFINE WINDOW Form_1 ;
AT 0,0 ;
WIDTH 640 ;
HEIGHT 400 ;
TITLE 'Mixed Data Type Grid Test' ;
MAIN
DEFINE MAIN MENU
DEFINE POPUP 'File'
MENUITEM 'Set New Columns Order' ACTION SetOrder()
MENUITEM 'Get Columns Order' ACTION GetOrder()
MENUITEM 'Refresh Grid' ACTION Form_1.Grid_1.Refresh
SEPARATOR
MENUITEM 'Exit' ACTION Form_1.Release
END POPUP
END MENU
aRows [1] := { 113.12,date(),1,1 , .t. }
aRows [2] := { 123.12,date(),2,2 , .f. }
aRows [3] := { 133.12,date(),3,3, .t. }
aRows [4] := { 143.12,date(),1,4, .f. }
aRows [5] := { 153.12,date(),2,5, .t. }
aRows [6] := { 163.12,date(),3,6, .f. }
aRows [7] := { 173.12,date(),1,7, .t. }
aRows [8] := { 183.12,date(),2,8, .f. }
aRows [9] := { 193.12,date(),3,9, .t. }
aRows [10] := { 113.12,date(),1,10, .f. }
aRows [11] := { 123.12,date(),2,11, .t. }
aRows [12] := { 133.12,date(),3,12, .f. }
aRows [13] := { 143.12,date(),1,13, .t. }
aRows [14] := { 153.12,date(),2,14, .f. }
aRows [15] := { 163.12,date(),3,15, .t. }
aRows [16] := { 173.12,date(),1,16, .f. }
aRows [17] := { 183.12,date(),2,17, .t. }
aRows [18] := { 193.12,date(),3,18, .f. }
aRows [19] := { 113.12,date(),1,19, .t. }
aRows [20] := { 123.12,date(),2,20, .f. }
@ 10,10 GRID Grid_1 ;
WIDTH 620 ;
HEIGHT 330 ;
HEADERS {'Column 1','Column 2','Column 3','Column 4','Column 5'} ;
WIDTHS {140,140,140,140,140} ;
ITEMS aRows ;
EDIT ;
COLUMNCONTROLS { ;
{'TEXTBOX' , 'NUMERIC' , '$ 999,999.99'} , ;
{'DATEPICKER' , 'DROPDOWN'} , ;
{'COMBOBOX' , {'One' , 'Two' , 'Three'}} , ;
{ 'SPINNER' , 1 , 20 } , ;
{ 'CHECKBOX' , 'Yes' , 'No' } ;
} ;
COLUMNWHEN { ;
{ || This.CellValue > 120 } , ;
{ || This.CellValue = Date() } , ;
Nil , ;
Nil , ;
Nil ;
} ;
DYNAMICFORECOLOR { fColor , fColor, fColor, fColor, fColor }
END WINDOW
CENTER WINDOW Form_1
ACTIVATE WINDOW Form_1
Return Nil
Function SetOrder()
Local aColumns := { 5, 4, 3, 2, 1 }
_SetColumnOrderArray( "Grid_1", "Form_1", aColumns )
Form_1.Grid_1.Refresh
Return Nil
Function GetOrder()
Local a := _GetColumnOrderArray( "Grid_1", "Form_1" )
// msgdebug(a)
aEval( a, {|x,i| MsgInfo ( "Column " + ltrim( str ( x ) ), ltrim( str ( i ) ) )} )
Return Nil
Function _GetColumnOrderArray( ControlName , ParentForm )
Local i, nColumn, aSort
i := GetControlIndex( ControlName , ParentForm )
nColumn := len(_HMG_SYSDATA [ 33 ] [i])
aSort := array(nColumn)
My_ListView_GetColumnOrderArray( _HMG_SYSDATA [ 3 ] [i], nColumn, @aSort )
Return aSort
Function _SetColumnOrderArray( ControlName , ParentForm, aSort )
Local i, nColumn
i := GetControlIndex( ControlName , ParentForm )
nColumn := len(_HMG_SYSDATA [ 33 ] [i])
ListView_SetColumnOrderArray( _HMG_SYSDATA [ 3 ] [i], nColumn, aSort )
Return Nil
#pragma BEGINDUMP
#define _WIN32_IE 0x0500
#include <windows.h>
#include <commctrl.h>
#include "hbapi.h"
#include "hbvm.h"
HB_FUNC ( MY_LISTVIEW_GETCOLUMNORDERARRAY )
{
int nColumn = hb_parni(2);
LPINT pnOrder = (LPINT) malloc(nColumn*sizeof(int));
int i;
ListView_GetColumnOrderArray( (HWND) hb_parnl(1), nColumn, pnOrder );
for (i=0; i<nColumn; i++)
{
hb_storvni(pnOrder[i]+1, 3, i+1);
}
}
#pragma ENDDUMP
13. Improvements in the example C:\hmg.3.1.5\SAMPLES\SampleApplications\CONTACTOS made by Javier Tovar as contributor. See
this topic/message to upgrade actual example for future releases.
Notes: All itens sinalized with this
have been already corrected.
Others tests will be done for the rest of samples and this message could be added and re-edited in this same message. But please gentlemen contributors, consider these suggestions in order to improve and not with the idea of criticism. And all this indications, could be improved and put in avaliation, in order to see what is better for everyone, so please is accepted your advices.