Pcmodula wrote: ↑Tue Jan 21, 2020 6:27 am
do you want reinvent the wheel?
this is the Sample i found when search for "GetVolumeInformation" in c:\MiniGUI\SAMPLES\Advanced\FileMan\
it is easy to use existing Code and modify it but i want to learn how it work.
1.) use a VIRTUAL GRID and change Array "on-fly" when change Directory (working)
2.) resize on PC an Table PC ( Landscape / Portrait )
3.) integrate own OSK
4.) Dark-Mode
- HBFM_002.jpg (295.8 KiB) Viewed 6378 times
---
i notice that MiniGUI Sample does not maximize, so the Work was (again) to write Code for ON SIZE / ON MAXIMIZE
i have try to use SPLITBOX but it is not what i use as CLASS under Xbase++ ... it is a ReBar
those things i have to learn and that why i try to "re-engine" my Xbase++ Code under harbour / HMG
Source for c:\MiniGUI\SAMPLES\Advanced\FileMan\ is a BIG help.
i have try to use TAB to switch left/right but i put my Code on wrong place (ONKEY of GRID)
i have to put it into MAIN Windows to override "other" (e.g. TabPage which TABSTOP .T.)
Code: Select all
ON KEY TAB ACTION IF( nGridFocus = 2,;
Domethod( "WinLeft", "Grid_1", "SetFocus" ),;
Domethod( "WinRight", "Grid_1", "SetFocus" ) )
---
until this point it was easy but now i have to change Code using Macro while i want to use "many" TAB each with GRID.
while i have left/right i can copy/move files (F5 / F6) but what about DragDrop from left to right
it is no "real" DragDrop while it is within App and i have it in my Xbase++ App.
not sure how to "translate" this Technique to harbour / HMG
Code: Select all
PROCEDURE ShowDragDrop( oObj, nNo )
// all Mouse Event are "capture" in This Loop until release
oObj:captureMouse( .T. )
nEvent := xbeM_Motion
DO WHILE lDragDrop = .T.
nEvent := APPEVENT( @mp1, @mp2, @oXbp, 100 )
DO CASE
CASE nEvent == xbe_None
iii ++
IF iii > 10
MSGBOX( "timeout" )
EXIT
ENDIF
CASE nEvent == xbeM_Motion
// can be a Animation
CASE nEvent == xbeM_RbDown
PostAppEvent( xbeM_Motion )
CASE nEvent == xbeP_Keyboard .AND. mp1 == xbeK_ESC
EXIT
CASE nEvent == xbeM_LbDblClick
EXIT
CASE nEvent == xbeM_LbDown
EXIT
// Action when LbUp
CASE nEvent == xbeM_LbUp
aDropPos := GetCursorPos()
nHwnd := WindowFromPoint( aDropPos )
cClsName := ChrR( 0, 1024 )
cText := ChrR( 0, 1024 )
@ user32:GetWindowTextA( nHwnd, @cText, LEN( cText ) )
@ user32:GetClassNameA( nHwnd, @cClsName, LEN( cClsName ) )
cClsName := STRTRAN( cClsName, CHR( 0 ), "" )
cText := STRTRAN( cText, CHR( 0 ), "" )
IF "SysListView32" $ cClsName .AND. "FolderView" $ cText
PostappEvent( xbeE_CopyToDeskTop,,, LastDialog( oObj ) :drawingArea )
ELSE
oObj:Prep4Drag( nNo )
ENDIF
EXIT
OTHERWISE
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDCASE
ENDDO
// release "capture" of Mouse Event
oObj:captureMouse( .F. )
who can point me to a Sample which "capture" Mouse Events