Look very good
Wich path do you think is possible for made simular tool in harbour in
multiplatform?

2009/2/23 Vailton Renato <vail...@gmail.com>:
> About GUI Wrapper, look at mymake and see if he can inspire you or
> even help in some part on screenshots, options, etc.
>
> This tool was developed in Delphi and supports Harbor & xHarbour with
> BCC. Has translated into Portuguese, English, Spanish and Italian...
> The download link is http://sqllib.com.br/v4/index.php?artigo=MyMake
>
> 2009/2/22 Massimo Belgrano <mbelgr...@deltain.it>:
>> Here is my first template for a UI version console
>> Select one on more prg with enter and compile and run with f5
>> Particular useful running in harbour\test
>> It Generate also project file for xmate
>> now i want :
>> -support also hrb
>> -Manage also  -GUI,-MT
>> -Give Capability to edit source selected with parametrised editor
>> -support more than 15 character in file name
>> - try linux
>> -Not exit but remain in memory after running the sample
>> - Give capability compile a source from clibpoard useful for compile
>> sample found in web
>>
>>
>>
>> Can my little work be part of harbour (example)?
>> This use on old path based on achoice emulating norton commanter look and 
>> feel
>> Have any other multiplatform suggestion for make a Multiple FIle
>> Select on a file system?
>>
>>
>>
>> /*
>>  * $Id: hbm.prg
>>  */
>>
>> /*
>>  * xHarbour Project source code:
>>  * xHarbour Template for hbmk 2
>>  *
>>  * Copyright 2000 Massimo Belgrano
>>  * www - http://www.xharbour.org
>> */
>> #include 'DIRECTRY.CH'
>> #include "INKEY.CH"
>>
>> function main
>>   LOCAL qualedir ,QUALEPROG:=1
>>  LOCAL FILECHOICE:={}
>>  set func 2 to CHR(K_CTRL_W)
>>  SET func 5 TO CHR(K_LEFT)
>>  CLS
>>  QUALEDIR="\"+CURDIR()
>>  DO WHILE .T.
>>      @ 0,54 CLEAR TO 23,79
>>      @ 0,54  TO 23,79
>>      FOR A=1 TO LEN(FILECHOICE)
>>        @ 0+A,55 SAY RIGHT(FILECHOICE[A],20)
>>      NEXT A
>>      QUALEPROG=SELECT_FILE(filechoice,@QUALEDIR,"*.PRG",1,1,22,50)
>>      @ 4,5 say qualedir
>>      IF EMPTY(QUALEPROG)
>>         IF LASTKEY()=K_RIGHT
>>            SELECT_ELEMENT(FILECHOICE,1,55,22,78)
>>         ELSE
>>            EXIT
>>         ENDIF
>>       ENDIF
>>      AADD(FILECHOICE,CURDRIVE()+":"+QUALEDIR+"\"+QUALEPROG)
>>   ENDDO
>>   if lastkey()<>27
>>     IF LEN(FILECHOICE)>0
>>         cls
>>        CREA_XMATE(filechoice)
>>         X_SHELL="HBMK2 "
>>         FOR A=1 TO LEN(FILECHOICE)
>>             X_SHELL=X_SHELL+FILECHOICE[A]   +" "
>>        NEXT A
>>        X_SHELL=X_SHELL+"-RUN"
>>        RUN(X_SHELL)
>>     ENDIF
>>    ENDIF
>> return
>>
>> FUNCTION SELECT_ELEMENT(FILECHOICE,X_ALTO,X_SINISTRA,X_BASSO,X_DESTRA)
>>   LOCAL X_POS
>>   if len(filechoice)=0
>>      return
>>   endif
>>   do while .t.
>>      @ x_BASSO+2,1 SAY "Press enter to remove element to list"
>>      @ X_ALTO-1, X_SINISTRA -1  CLEAR to  X_BASSO +1, X_DESTRA +1
>>      @ X_ALTO-1, X_SINISTRA -1  to  X_BASSO +1, X_DESTRA +1
>>      X_POS=ACHOICE(X_ALTO,X_SINISTRA,X_BASSO,X_DESTRA,FILECHOICE,.T.)
>>      IF X_POS>1
>>         ADEL(FILECHOICE,X_POS)
>>      else
>>         exit
>>      ENDIF
>>    enddo
>>   RETURN
>>
>> FUNCTION 
>> SELECT_FILE(filechoice,X_DIRSPEC,X_WILCARD,X_ALTO,X_SINISTRA,X_BASSO,X_DESTRA)
>>   LOCAL ADIRECTORY := {}, NITEM := 0, X_RET_VAL := .T.
>>   LOCAL NUM_ARGOMENTI := 0, CFILESTRING := ""
>>   LOCAL WIN_SELEZ
>>   LOCAL X_ELEM_SEL:=0
>>   SAVE SCREEN TO WIN_SELEZ
>>   X_DIRSPEC=IIF(VALTYPE(X_DIRSPEC)="C",X_DIRSPEC,"\"+CURDIR())
>>   X_ALTO=IIF(VALTYPE(X_ALTO)="N",X_ALTO,5)
>>   X_SINISTRA=IIF(VALTYPE(X_SINISTRA)="N",X_SINISTRA,5)
>>   X_BASSO=IIF(VALTYPE(X_BASSO)="N",X_BASSO,22)
>>   X_DESTRA=IIF(VALTYPE(X_DESTRA)="N",X_DESTRA,40)
>>   DO WHILE .T.
>>       @ X_BASSO+2,1 say "Press Enter add program to compile
>> "+iif(len(filechoice)>0,"F5 compile and run  Left Modify  ","") +"Esc
>> to Exit"
>>      @ X_ALTO-1, X_SINISTRA -1  CLEAR to  X_BASSO +1, X_DESTRA +1
>>       @ X_ALTO-1, X_SINISTRA -1  to  X_BASSO +1, X_DESTRA +1
>>      X_DIRECTORY=X_DIRSPEC+"\*.*"
>>      // carica una file list con le informazioni della directory
>>      ADIRECTORY := DIRECTORY( x_directory, "D" )
>>      NUM_ARGOMENTI := IF( VALTYPE( aDirectory ) != "A", 0, LEN( aDirectory ) 
>> )
>>      aFileList := {}                  // Cancella la vecchia lista
>>      ASORT( aDirectory,,, { | x, y | X[F_NAME] < Y[F_NAME] } )
>> // ORDINO LA DIRECTORY
>>      // X[F_NAME],"B"+X[F_NAME]) <
>> IIF(Y[F_ATTR]="D","A"+Y[F_NAME],"B"+Y[F_NAME]) } )
>>      // COMPONGO LA STRINGA CHE VERRA VISUALIZZATA NELLA ACHOICE
>>      FOR NITEM := 1 TO NUM_ARGOMENTI
>>         IF ADIRECTORY[NITEM,F_ATTR ]=="D"
>>            AADD( AFILELIST, PADR( ADIRECTORY[ NITEM, F_NAME ], 15 ) + ;
>>                   "   <dir>"+ "  " + ;
>>                   DTOC( aDirectory[ nItem, F_DATE ] ) + "  " + ;
>>                   SUBSTR( aDirectory[ nItem, F_TIME ], 1, 5) + "  " + ;
>>                   SUBSTR( aDirectory[ nItem, F_ATTR ], 1, 4 ) + "  " )
>>            ENDIF
>>      NEXT
>>      X_DIRECTORY=X_DIRSPEC+"\"+X_WILCARD
>>     ADIRECTORY := DIRECTORY( x_directory, "D" )
>>     NUM_ARGOMENTI := IF( VALTYPE( aDirectory ) != "A", 0, LEN( aDirectory ) )
>>      ASORT( aDirectory,,, { | x, y | X[F_NAME] < Y[F_NAME] } )
>>      // COMPONGO LA STRINGA CHE VERRA VISUALIZZATA NELLA ACHOICE
>>      FOR NITEM := 1 TO NUM_ARGOMENTI
>>         IF ADIRECTORY[NITEM,F_ATTR ]<>"D"
>>            AADD( AFILELIST, PADR( ADIRECTORY[ NITEM, F_NAME ], 15 ) + ;
>>                   STR( aDirectory[ nItem, F_SIZE ], 8 )+ "  " + ;
>>                   DTOC( aDirectory[ nItem, F_DATE ] ) + "  " + ;
>>                   SUBSTR( aDirectory[ nItem, F_TIME ], 1, 5) + "  " + ;
>>                   SUBSTR( aDirectory[ nItem, F_ATTR ], 1, 4 ) + "  " )
>>         ENDIF
>>      NEXT
>>        
>> X_ELEM_SEL=ACHOICE(X_ALTO,X_SINISTRA,X_BASSO,X_DESTRA,AFILELIST,.T.,,X_ELEM_SEL)
>>      IF X_ELEM_SEL=0
>>         X_RET_VAL=""
>>         EXIT
>>      ENDIF
>>      X_FILE_SEL=AFILELIST[X_ELEM_SEL]
>>      IF SUBSTR(X_FILE_SEL,16,8)<>"   <dir>"
>>         X_RET_VAL=SUBSTR(X_FILE_SEL,1,15)
>>         EXIT
>>         ELSE
>>         IF SUBSTR(X_FILE_SEL,1,1)="."   && SALGO DI UNA DIRECTORY
>>            X_DIRSPEC=SUBSTR(X_DIRSPEC,1,RAT("\",X_DIRSPEC)-1)
>>            ELSE
>>            X_DIRSPEC=X_DIRSPEC+"\"+ALLTRIM(SUBSTR(X_FILE_SEL,1,15))
>>         ENDIF
>>      ENDIF
>>   ENDDO
>>   RESTORE SCREEN FROM WIN_SELEZ
>>   RETURN(X_RET_VAL)
>>
>> FUNCTION CREA_XMATE(filechoice)
>>   local a_xmate:={},A
>>   LOCAL X_LOG,X_MATE
>>   AADD(A_XMATE,"[Version]")
>>   AADD(A_XMATE,"Type=xMate")
>>   AADD(A_XMATE,"Number=1.15")
>>   AADD(A_XMATE,"")
>>   AADD(A_XMATE,"[Info]")
>>   AADD(A_XMATE,"Type=Executable")
>>   AADD(A_XMATE,"Architecture=harbour")
>>   AADD(A_XMATE,"Include=")
>>   AADD(A_XMATE,"Define=")
>>   AADD(A_XMATE,"")
>>   AADD(A_XMATE,"[xMate]")
>>   AADD(A_XMATE,"Create Map/List File=No")
>>   AADD(A_XMATE,"")
>>   AADD(A_XMATE,"[Project]")
>>   AADD(A_XMATE,"Run=")
>>   AADD(A_XMATE,"Params=")
>>   AADD(A_XMATE,"Final Path=%HOME%")
>>   AADD(A_XMATE,"Maintain LNK=Yes")
>>   AADD(A_XMATE,"Default Type=1")
>>   AADD(A_XMATE,"Error log=")
>>   AADD(A_XMATE,"")
>>   AADD(A_XMATE,"[Data Path]")
>>   AADD(A_XMATE,"Dbf=")
>>   AADD(A_XMATE,"")
>>   AADD(A_XMATE,"[Editor]")
>>   FOR A=1 TO LEN(FILECHOICE)
>>      AADD(A_XMATE,ALLTRIM(FILECHOICE[A])+"="+STR(A)+",N,N")
>>   NEXT
>>   AADD(A_XMATE,"")
>>   AADD(A_XMATE,"")
>>   AADD(A_XMATE,"[Files]")
>>   FOR A=1 TO LEN(FILECHOICE)
>>      AADD(A_XMATE,ALLTRIM(FILECHOICE[A])+"="+STR(A)+",.F.,0,0,")
>>   NEXT
>>   xprjmate=aLltrim(filechoice[1])
>>   xprjmate=substr(XPRJMATE,1,len(xPRJmate)-4) +".xhp"
>>   if .not. file(XPRJMATE)
>>      X_LOG=FCREATE(XPRJMATE)
>>      FOR a=1 to len(A_XMATE)
>>         FWRITE(X_LOG,A_XMATE[a]+CHR(13)+CHR(10))
>>      NEXT
>>
>>      FCLOSE(X_LOG)
>>   ENDIF
>> *  returm
>>
>>  */
>>
>>
>>
>> 2009/2/16 Viktor Szakáts <harbour...@syenar.hu>:
>>>> I have still one suggestion
>>>> Having a simple interactive mode
>>>> launching hbmk without parameter see a list of prg,hbp,c,rc
>>>> select with space one or more and press button compile
>>>> Simple and easy but will be a bridge between people command line
>>>> driven and gui driven
>>>
>>> Nope sorry, I've meant this is a pure command line tool.
>>> In fact all our supplied tools are command line only, and
>>> this shouldn't be an exception.
>>> If you want CUI/GUI, a wrapper program is the best solution. This
>>> could simply create a hbmk command line after presenting
>>> all the options on the screen for the user and either launch it
>>> or save it as .hbm (similar to hbmake). Can be independently
>>> developed from hbmk, and if it's good and portable (which now
>>> means CUI), we can also include it as part of the Harbour package.
>>>
>> _______________________________________________
>> Harbour mailing list
>> Harbour@harbour-project.org
>> http://lists.harbour-project.org/mailman/listinfo/harbour
>>
>
>
>
> --
> Vailton Renato
> SQL LIB, MyMake & xDev Developer
> _______________________________________________
> Harbour mailing list
> Harbour@harbour-project.org
> http://lists.harbour-project.org/mailman/listinfo/harbour
>



-- 
Massimo Belgrano
_______________________________________________
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour

Reply via email to