Page 1 of 3

Harbour MiniGUI 2.7.1

Posted: Tue Mar 31, 2009 2:09 am
by Roberto Lopez
Harbour MiniGUI 2.7.1 Changelog:

English:

- New: DRAGITEMS property for LISTBOX control.
This property allows to user to reorder items in a ListBox
by dragging it. Samples:\hmg\samples\listbox

- Fixed: This.cellValue bug. Thanks to Grigory Filatov.

Español:

- Nuevo: Propiedad DRAGITEMS para el control LISTBOX.
Esta propiedad permite al usuario reordenar los items en un ListBox
arrastrándolos. Ejemplos:\hmg\samples\listbox

- Solucionado: Bug en This.CellValue. Gracias a Grigory Filatov.

Re: Harbour MiniGUI 2.7.1

Posted: Tue Mar 31, 2009 2:17 am
by esgici
Wonderful !!! :D

Thanks a lot Roberto.

Best Regards

--

Esgici

Re: Harbour MiniGUI 2.7.1

Posted: Tue Mar 31, 2009 4:47 am
by sudip
Hello Roberto,

Thank you for dragging facility in listbox.

I don't know whether it is a problem of my mouse or not. Suppose I have 10 items. I can drag any item upto 9th position easily. But I found some problem to drag any item to 10th position.

May be this is my system's problem or may be I am wrong - program is supposed to do it.

With best regards and thank you again for offering this dragging facility to us. :D

Sudip

Re: Harbour MiniGUI 2.7.1

Posted: Tue Mar 31, 2009 9:39 am
by gfilatov
Roberto Lopez wrote:Harbour MiniGUI 2.7.1 Changelog:

...
- Fixed: This.cellValue bug. Thanks to Grigory Filatov.
Hi Roberto,

I'm sorry for a bugreport about This.cellValue bug again but you've missed an underline symbol in the function name at my correction of this problem.
...
If _IsControlDefined ( 'c' , "_hmg_grid_inplaceedit")

...
ElseIf _IsControlDefined ( 's' , "_hmg_grid_inplaceedit")
...

Please take a look for test sample below (problem in the validation for column 3):

Code: Select all

#include "minigui.ch"

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 Item'	ACTION SetItem()
				MENUITEM 'Get Item'	ACTION GetItem()
			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' } } ;
			DYNAMICFORECOLOR { fColor , fColor, fColor, fColor, fColor } ;
         COLUMNVALID {, {|| If( !Empty (This.CellValue),This.CellValue := Date(),.t.)}, {|| If( !Empty (This.CellValue),This.CellValue := 3,.t.)},,}

	END WINDOW

	CENTER WINDOW Form_1

	ACTIVATE WINDOW Form_1

Return

PROCEDURE SETITEM()

	Form_1.Grid_1.Item (2) := { 123.45 , date() , 2 , 10 , .T. }

RETURN

PROCEDURE GETITEM()
local a

	a := Form_1.Grid_1.Item (2) 

	msginfo ( str ( a [1] )				, '1' )
	msginfo ( dtoc ( a [2] )			, '2' )
	msginfo ( str( a [3] )				, '3' )
	msginfo ( str ( a [4] )				, '4' )
	msginfo ( if ( a [5] == .t. , '.t.' , '.f.' )	, '5' )

RETURN

Re: Harbour MiniGUI 2.7.1

Posted: Tue Mar 31, 2009 10:05 am
by esgici
sudip wrote:
... problem to drag any item to 10th position.
Confirmed.

First and last items are out of dragging and inserting.

Regards

--

Esgici

Re: Harbour MiniGUI 2.7.1

Posted: Tue Mar 31, 2009 12:40 pm
by Roberto Lopez
sudip wrote:Hello Roberto,

Thank you for dragging facility in listbox.

I don't know whether it is a problem of my mouse or not. Suppose I have 10 items. I can drag any item upto 9th position easily. But I found some problem to drag any item to 10th position.

May be this is my system's problem or may be I am wrong - program is supposed to do it.

With best regards and thank you again for offering this dragging facility to us. :D

Sudip
The problem is that the WIN32 function that draws the insert indicator (DrawInsert) is not able to draw that indicator for the last item. So I've intentionally impede such situation.

Dragging to the end of the list could be allowed, but you'll not have the indicator for it (you only need to eliminate the lines: 307, 308 and 309 in h_windows.prg).

I'm open to suggestions.

Regards,

Roberto.

Re: Harbour MiniGUI 2.7.1

Posted: Tue Mar 31, 2009 12:46 pm
by Roberto Lopez
gfilatov wrote: I'm sorry for a bugreport about This.cellValue bug again but you've missed an underline symbol in the function name at my correction of this problem.
...
If _IsControlDefined ( 'c' , "_hmg_grid_inplaceedit")

...
ElseIf _IsControlDefined ( 's' , "_hmg_grid_inplaceedit")
...
You are right again :)

I'm very busy and I've made both (2.7.0 and 2.7.1) releases as quick as possible, breaking my own rules about testing.

I'm sorry for that.

Thanks again for the report.

Regards,

Roberto.

Re: Harbour MiniGUI 2.7.1

Posted: Tue Mar 31, 2009 12:48 pm
by Roberto Lopez
Roberto Lopez wrote: Dragging to the end of the list could be allowed, but you'll not have the indicator for it (you only need to eliminate the lines: 307, 308 and 309 in h_windows.prg).
And lines 330 and 338 (the other 'if' about that).

Regards,

Roberto.

Re: Harbour MiniGUI 2.7.1

Posted: Tue Mar 31, 2009 1:36 pm
by sudip
Hello Roberto,

Thank for the explanation regarding dragging in listbox.

Some how the reason, I guessed it :-
From my previous message:
May be this is my system's problem or may be I am wrong - program is supposed to do it.
Roberto wrote:
The problem is that the WIN32 function that draws the insert indicator (DrawInsert) is not able to draw that indicator for the last item. So I've intentionally impede such situation.

Dragging to the end of the list could be allowed, but you'll not have the indicator for it (you only need to eliminate the lines: 307, 308 and 309 in h_windows.prg).
I know very little about win32 programming. So, I don't want to eliminate those lines for now.

Actually I want to learn to use MySql (with help from Rathi) as soon as possible. This is my first priority. :)

With best regards.

Sudip

Re: Harbour MiniGUI 2.7.1

Posted: Tue Mar 31, 2009 3:16 pm
by Roberto Lopez
esgici wrote:
sudip wrote:
... problem to drag any item to 10th position.
Confirmed.

First and last items are out of dragging and inserting.

Regards

--

Esgici
I've re-tested prior to post this:

You can drag an item to the first position without problems.

And (as I've said to Sudip) If you eliminate the indicated lines in 'h_windows.prg' you'll be able to drag above the last item.

Please, test again.

Regards,

Roberto.