Mini Text File Manager

HMG Samples and Enhancements

Moderator: Rathinagiri

User avatar
esgici
Posts: 4543
Joined: Wed Jul 30, 2008 9:17 pm
DBs Used: DBF
Location: iskenderun / Turkiye
Contact:

Re: Mini Text File Manager

Post by esgici »

lalacas and Dr. Soto;

thanks to your interest and nice words :)
mustafa wrote: how about if the Grid grdDIRList
in OnDblClick we put TFM_Look ()
and so when you click on the Grid name
opens a File PROC TFM_Look() Editbox
edbTFMLook and thus is directly the content
file
Hola amigo Mustafa

Thanks to your interest :)

May be no doubt :arrow:

This is the primary goodness of open source:

everyone can make any modification, enhancement on the source code depending on her / his taste;

and share opinions with everyone 8-)

I just wanted to stay same with Jayadev's design.

Viva HMG :D
Viva INTERNATIONAL HMG :D
User avatar
danielmaximiliano
Posts: 2612
Joined: Fri Apr 09, 2010 4:53 pm
Location: Argentina
Contact:

Re: Mini Text File Manager

Post by danielmaximiliano »

Gracias por compartir Esgici ...
*´¨)
¸.·´¸.·*´¨) ¸.·*¨)
(¸.·´. (¸.·` *
.·`. Harbour/HMG : It's magic !
(¸.·``··*

Saludos / Regards
DaNiElMaXiMiLiAnO

Whatsapp. := +54901169026142
Telegram Name := DaNiElMaXiMiLiAnO
Javier Tovar
Posts: 1275
Joined: Tue Sep 03, 2013 4:22 am
Location: Tecámac, México

Re: Mini Text File Manager

Post by Javier Tovar »

Rathinagiri wrote:Wow.That is a nice work Esgici.
+1
User avatar
esgici
Posts: 4543
Joined: Wed Jul 30, 2008 9:17 pm
DBs Used: DBF
Location: iskenderun / Turkiye
Contact:

Re: Mini Text File Manager

Post by esgici »

Gracias Daniel y Javier :)

Viva HMG :D
Viva INTERNATIONAL HMG :D
User avatar
Steed
Posts: 427
Joined: Sat Dec 12, 2009 3:40 pm

Re: Mini Text File Manager

Post by Steed »

Thanks
User avatar
esgici
Posts: 4543
Joined: Wed Jul 30, 2008 9:17 pm
DBs Used: DBF
Location: iskenderun / Turkiye
Contact:

Re: Mini Text File Manager

Post by esgici »

Thanks Steed;

Happy HMG'ing :D
Viva INTERNATIONAL HMG :D
User avatar
esgici
Posts: 4543
Joined: Wed Jul 30, 2008 9:17 pm
DBs Used: DBF
Location: iskenderun / Turkiye
Contact:

Re: Mini File Manager

Post by esgici »

Hi all

Project name changed ;)

Now
  • - we have a "Main Menu" ( tons of options not ready for now :( )
    - we can working with directories, drives and all type of files :arrow:
    - In addition to "look", we can "open" any type file ( those Windows can automatically open of course ;) )
    - printing is OK 8-)
    - GetFolder() problem is continuing :(
    - and we still have too many incompleteness :(
MFMscreenShoot20150405.PNG
MFMscreenShoot20150405.PNG (142.91 KiB) Viewed 5313 times
MFMsrc20150405.zip
(20.34 KiB) Downloaded 303 times
MFMexe20150405.zip
(1.41 MiB) Downloaded 262 times
Our friend Jayadev is very busy these days; I hope he will join us soon.

I couldn't succeed showing "file" image in the Grid :cry: Any idea ?

As always, I'm waiting your critics and suggestions; please don't forgive my mistakes :roll:

Viva HMG :D
Viva INTERNATIONAL HMG :D
User avatar
bpd2000
Posts: 1207
Joined: Sat Sep 10, 2011 4:07 am
Location: India

Re: Mini Text File Manager

Post by bpd2000 »

Nice improvement
Thank you
BPD
Convert Dream into Reality through HMG
User avatar
serge_girard
Posts: 3165
Joined: Sun Nov 25, 2012 2:44 pm
DBs Used: 1 MySQL - MariaDB
2 DBF
Location: Belgium
Contact:

Re: Mini Text File Manager

Post by serge_girard »

Great job Esgici!

Serge
There's nothing you can do that can't be done...
User avatar
srvet_claudio
Posts: 2193
Joined: Thu Feb 25, 2010 8:43 pm
Location: Uruguay
Contact:

Re: Mini File Manager

Post by srvet_claudio »

esgici wrote:Hi all

Project name changed ;)

Now
  • - we have a "Main Menu" ( tons of options not ready for now :( )
    - we can working with directories, drives and all type of files :arrow:
    - In addition to "look", we can "open" any type file ( those Windows can automatically open of course ;) )
    - printing is OK 8-)
    - GetFolder() problem is continuing :(
    - and we still have too many incompleteness :(
MFMscreenShoot20150405.PNG
MFMsrc20150405.zip
MFMexe20150405.zip
Our friend Jayadev is very busy these days; I hope he will join us soon.

I couldn't succeed showing "file" image in the Grid :cry: Any idea ?

As always, I'm waiting your critics and suggestions; please don't forgive my mistakes :roll:

Viva HMG :D
This is MFM_Main.prg file, see ADD comment in the file, I hope it's useful.
I not changed the content of the others files and maybe these functions are not compatible.
PS: delete MFM_FOpen() function of the original MFM_Opers.prg file.

Code: Select all

#include <hmg.ch>

PROC Main()

    SET DATE GERM
	SET CENT ON


PUBLIC aFiles := {}   // ADD
PUBLIC cPath := GetCurrentFolder()  // ADD


   l1stCycle := .T.	
    cFileName := ''
	n1stNVENo := 1     // First non-volume entry no 
	
    DEFINE WINDOW frmMiniFMan ;
        ROW 0 ;
        COL 0 ;
        WIDTH 550 ;
        HEIGHT 470 ;
        TITLE 'Mini File Manager' ; 
        ON INIT MFM_FillGrid() ;
ON RELEASE frmMiniFMan.grdDIRList.ImageList := 0;   // avoid release System Icon ImageList  // ADD
        ICON "MFMIcon" ;
        MAIN
       
        ON KEY ESCAPE ACTION ThisWindow.Release
	    
		DEFINE MAIN MENU
			DEFINE POPUP '&File'
                ITEM 'Select Folder' NAME mitSFold ACTION MFM_SelFold()     
                ITEM 'Select File'   NAME mitSFile ACTION MFM_SelFile()
                ITEM 'Open File'     NAME mitFopen ACTION MFM_FOpen()				
                ITEM 'Read File'     NAME mitFRead ACTION MFM_FRead()				
                ITEM 'Copy File'     NAME mitFCopy ACTION MFM_FCopy()				
                ITEM 'Rename File'   NAME mitFRena ACTION MFM_FRena()				
                ITEM 'Delete File'   NAME mitFDele ACTION MFM_FDele()				
                ITEM 'Print File'    NAME mitFDele ACTION MFM_Print()				
				SEPARATOR
				ITEM "E&xit"  ACTION ThisWindow.Release
			END POPUP  // File     
			
			DEFINE POPUP '&Tools'
			    ITEM '&Preferences'    NAME mitPrefs ACTION MFM_Prefs()
			END POPUP  // Tools    
			
			DEFINE POPUP '&Help'
			    ITEM '&Help '    NAME mitPrefs ACTION MFM_Help()			  
			    ITEM '&About'    NAME mitPrefs ACTION MFM_About()			  
			END POPUP  // Help   
			
		END MENU // frmMiniFMan.Main.Menu
		
        DEFINE TOOLBAR tbrTFMain BUTTONSIZE 24, 24 IMAGESIZE 22,22 FONT 'Tahoma' SIZE 9  FLAT
        
            BUTTON btnLook ;
            	CAPTION 'Look' ;
            	PICTURE 'MFMlook' ;
            	ACTION MFM_FRead()
            
            BUTTON btnOpen ;
            	CAPTION 'Open' ;
            	PICTURE 'MFMOpen' ;
            	ACTION MFM_FOpen()
				
            BUTTON btnCopy ;
            	CAPTION 'Copy' ;
            	PICTURE 'MFMcopy' ;
            	ACTION MFM_FCopy()
				
            BUTTON btnRename ;
            	CAPTION 'Rename' ;
            	PICTURE 'MFMRena' ;
            	ACTION MFM_FRena()         
            
            BUTTON btnDelete ;
            	CAPTION 'Delete' ;
            	PICTURE 'MFMdele' ;
            	ACTION MFM_FDele()     
				
            BUTTON btnPrint ;
            	CAPTION 'Print' ;
            	PICTURE 'MFMprnt' ;
            	ACTION MFM_Print()  
                        
            BUTTON btnChngFold ;
            	CAPTION 'Folder' ;
            	PICTURE 'MFMCFol' ;
            	ACTION MFM_SelFold()     
        
            BUTTON btnExit ;
            	CAPTION 'Exit' ;
            	PICTURE 'MFMexit' ;
            	ACTION ThisWindow.Release
				
	 	END TOOLBAR // MFM_Main()
        
        DEFINE GRID grdDIRList
                ROW    50
                COL    15
                WIDTH  900
                HEIGHT 330
                ITEMS { { 0, '', '', '', '', '', ''} }
                VALUE 1
                WIDTHS { 20, 170, 100, 100, 90, 70 , 250}
                HEADERS { '', 'File Name', 'Size', 'Date-Time', 'Type', 'Attrib', 'Full Name' }
                FONTNAME "Lucida Concole"
                FONTSIZE 9
                TOOLTIP NIL
                ONCHANGE ChangeFNam() 
                ONGOTFOCUS NIL
                ONLOSTFOCUS NIL
                FONTBOLD .F.
                FONTITALIC .F.
                FONTUNDERLINE .F.
                FONTSTRIKEOUT .F.
                ONDBLCLICK MFM_FOpen()
                ONHEADCLICK NIL
                ONQUERYDATA NIL 
                MULTISELECT .F.
                ALLOWEDIT .F.
                VIRTUAL .F.
                DYNAMICBACKCOLOR NIL
                DYNAMICFORECOLOR NIL
                COLUMNWHEN NIL
                COLUMNVALID NIL
                COLUMNCONTROLS NIL 
                SHOWHEADERS .T.
                CELLNAVIGATION .F.
                NOLINES .F.
                HELPID NIL
                IMAGE { 'MFMFold', 'MFMFile' } 
                JUSTIFY { 0,0,1,0,0,0 }
                ITEMCOUNT NIL
                BACKCOLOR NIL
                FONTCOLOR NIL
                HEADERIMAGES NIL
                ROWSOURCE NIL
                COLUMNFIELDS NIL
                ALLOWAPPEND .F.
                ALLOWDELETE .F.
                BUFFERED .F.
                DYNAMICDISPLAY .F.
                ONSAVE NIL
                LOCKCOLUMNS 0
            END GRID // grdDIRList

frmMiniFMan.grdDIRList.ImageList := BT_ImageListGetSystemIcon()   // ADD
            
            DEFINE STATUSBAR PARENT frmMiniFMan FONT "Tahoma"
                STATUSITEM "File of Folder Name"  WIDTH 50   
                STATUSITEM "Page Count"           WIDTH 40   
            END STATUSBAR

    END WINDOW // frmMiniFMan
    
    // CENTER Window frmMiniFMan
    MAXIMIZE Window frmMiniFMan
    
    ACTIVATE Window frmMiniFMan
   
RETU // TextFMan.Main()      

*-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._


PROC MFM_FillGrid()   // ADD

   frmMiniFMan.grdDIRList.DeleteAllItems()

   aFiles := BT_DirectoryInfo ( CSIDL_DRIVES, BT_DIRECTORYINFO_LISTALL )
   FOR i := 1 TO HMG_LEN (aFiles)
      a1GRow := { ;
                  aFiles [i] [BT_DIRECTORYINFO_INTERNALDATA_IMAGEINDEX],;
                  aFiles [i] [BT_DIRECTORYINFO_NAME],;
                  aFiles [i] [BT_DIRECTORYINFO_SIZE],; 
                  aFiles [i] [BT_DIRECTORYINFO_DATE],;
                  aFiles [i] [BT_DIRECTORYINFO_TYPE],;
                  aFiles [i] [BT_DIRECTORYINFO_INTERNALDATA_TYPE],;
                  aFiles [i] [BT_DIRECTORYINFO_FULLNAME];
                }
      frmMiniFMan.grdDIRList.AddItem( a1GRow )
   NEXT

   aFiles := BT_DirectoryInfo ( cPath, BT_DIRECTORYINFO_LISTALL )

IF ValType (aFiles) == "A"
   nIndexSort := BT_DIRECTORYINFO_TYPE
   ASORT (aFiles, NIL, NIL, { |x, y| IF (HMG_StrCmp ( ;
                      (HB_USUBSTR(ALLTRIM(x[BT_DIRECTORYINFO_INTERNALDATA_TYPE]),1,1) + x[nIndexSort] + x[BT_DIRECTORYINFO_NAME]) ,; 
                      (HB_USUBSTR(ALLTRIM(y[BT_DIRECTORYINFO_INTERNALDATA_TYPE]),1,1) + y[nIndexSort] + y[BT_DIRECTORYINFO_NAME]) ,;
                      .F. ) < 0, .T., .F.) })

   FOR i := 1 TO HMG_LEN (aFiles)
      a1GRow := { ;
                  aFiles [i] [BT_DIRECTORYINFO_INTERNALDATA_IMAGEINDEX],;
                  aFiles [i] [BT_DIRECTORYINFO_NAME],;
                  aFiles [i] [BT_DIRECTORYINFO_SIZE],; 
                  aFiles [i] [BT_DIRECTORYINFO_DATE],;
                  aFiles [i] [BT_DIRECTORYINFO_TYPE],;
                  aFiles [i] [BT_DIRECTORYINFO_INTERNALDATA_TYPE],;
                  aFiles [i] [BT_DIRECTORYINFO_FULLNAME];
                }
      frmMiniFMan.grdDIRList.AddItem( a1GRow )
   NEXT
ENDIF
RETU // MFM_FillGrid()


*-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._


PROC MFM_FOpen()   // ADD
   cFileName := frmMiniFMan.grdDIRList.Cell( frmMiniFMan.grdDIRList.Value, 7 )
   IF "D" $ frmMiniFMan.grdDIRList.Cell( frmMiniFMan.grdDIRList.Value, 6 )
      
     // DirChange( cFileName )
     cPath := cFileName
	  MFM_FillGrid()
   ELSE	  
      SHELLEXECUTE( 0, "open", cFileName,"", "",1)
   ENDIF   
RETU // MFM_FOpen()



*-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._


PROC ChangeFNam() 
    cFileName := TRIM( This.Cell( This.Value, 7 ) )   // ADD
	IF l1stCycle
       l1stCycle := .F.	
	ELSE   
	   frmMiniFMan.StatusBar.Item( 1 ) := cFileName
	ENDIF
RETU // ChangeFNam()	

*-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._ 
Best regards.
Dr. Claudio Soto
(from Uruguay)
http://srvet.blogspot.com
Post Reply