Page 2 of 4

Re: New Class: TFolderEx

PostPosted: Mon Aug 09, 2010 2:40 pm
by pcordonet
Hi Daniel,

I push ALT+ (any key were not in list of Short cut key) have this error:

Code: Select all  Expand view
Application
===========
   Path and name: C:\Documents and Settings\Pcordonet\Escritorio\testfx\testfx1.exe (32 bits)
   Size: 1,888,768 bytes
   Time from start: 0 hours 0 mins 1 secs
   Error occurred at: 08/09/10, 16:38:05
   Error description: Error BASE/1004  Message not found: TWINDOW:GETHOTPOS
   Args:
     [   1] = O   TWINDOW

Stack Calls
===========
   Called from:  => __ERRRT_SBASE(0)
   Called from: ../../../tobject.prg => TWINDOW:ERROR(0)
   Called from: ../../../tobject.prg => (b)HBOBJECT(0)
   Called from: ../../../tobject.prg => TWINDOW:MSGNOTFOUND(0)
   Called from: ../../../tobject.prg => TWINDOW:GETHOTPOS(0)
   Called from: .\source\classes\CONTROL.PRG => TFOLDEREX:SYSCOMMAND(1028)
   Called from: .\source\classes\CONTROL.PRG => TCONTROL:HANDLEEVENT(1469)
   Called from: .\source\classes\TFOLDEX.PRG => TFOLDEREX:HANDLEEVENT(379)
   Called from: .\source\classes\WINDOW.PRG => _FWH(3397)
   Called from:  => WINRUN(0)
   Called from: .\source\classes\WINDOW.PRG => TWINDOW:ACTIVATE(978)
   Called from: C:\prg\class\clases\fldex\test\testfx1.prg => MAIN(88)

System
======
   CPU type: Intel(R) Core(TM)2 CPU         T5500  @ 1.66GHz 1666 Mhz
   Hardware memory: 2048 megs

   Free System resources: 90 %
        GDI    resources: 90 %
        User   resources: 90 %

   Compiler version: Harbour 2.1.0beta2 (Rev. 15011)
   Windows version: 5.1, Build 2600 Service Pack 3

   Windows total applications running: 82
      1 TF_FloatingLangBar_WndTitle
      2 CiceroUIWndFrame
      3 M
      4 Default IME
      5 SysFader
      6 Menú Inicio
      7 TFolderex - Testing -
      8 testfx
      9 FiveTech Software tech support forums • Publicar una respuesta - Google Chrome
     10 Ir para
     11 Lista de Funções
     12 Localizar em Arquivo(s)
     13 Editor
     14 String Editor
     15 HintInfoWindow
     16 Page Setup
     17 Preview de Impressão
     18 Gerenciador de Ajuda
     19 1 - 53
     20 xDev Studio v0.70 -  [G:\Clients\GENERIC\FONTS\DEFTAU_L.PRG]
     21 Ir para Procedure/Function (Shift+Ctrl+G)
     22 Nueva pestaña
     23 GDI+ Window
     24 JetBrains Omea Reader 2.2
     25 Gestió Vendes - Aplitec Informàtica, S.L.
     26 FACTURA
     27 DATOS
     28 Sessió 9
     29 xBuild - I:\CLIENTS\COMERCIAL\FACTURA\factura.exe.xbp
     30 Buscar un contacto
     31 Menú contextual
     32 Bandeja de entrada en software@central.aplitec.com - Microsoft Outlook
     33 TNOTIFThisThreadSink 0x10E4 0x10E8
     34 [***SPAM*** Puntos/Req: 11.5/5.0] [CodeProject] Daily News - The GPL Wins Again - Mensaje (HTML)
     35 Progreso de envío o recepción de Outlook
     36 AutoUpdate de McAfee
     37 McAfeeFrameworkIcons
     38 McTray
     39 Estadísticas del análisis en tiempo real
     40 Estadísticas del análisis en tiempo real - PC-PERE
     41 Monitor de McAfee Agent
     42 Escritorio FortiTray
     43 Demonio FortiTray
     44 eyeBeam
     45 Documento4
     46 MARCOVI - Mensaje (HTML)
     47 Mensajes del análisis en tiempo real
     48 Microsoft Word
     49 Texto
     50 Documento3 - Microsoft Word
     51 MCI command handling window
     52 1 Aviso
     53 AXWIN Frame Window
     54 WindowsFormsParkingWindow
     55 .NET-BroadcastEventWindow.1.0.5000.0.4.0
     56 DDE Server Window
     57 WMS ST Notif Window 000010E4 000010E8
     58 WMS Idle
     59 Microsoft Outlook
     60 FC_SCH_HIDDEN_WINDOW
     61 PMHandler
     62 CAudioManagerMixer Instance 5FEE2CF18EF0468e828A0079BE94678B
     63 CSocketHiddenWindowClassRegisteration6B3D46E5E5E040cdAEB74DEAEA6C36B7
     64 CXsNativeWindowingThreadQueue145263F6B3034e469C18CBE06E556243
     65 Contacts
     66 Video
     67 CXsHookedIntoNativeWindowingQueue93EBD20A40F04960B2378F8D0327B466
     68 {08C34873-717D-419B-BCB4-D0CB1A57BC88}
     69 tcrea
     70 Connections Tray
     71 Property
     72 TouchPad object helper window
     73 HkWndName
     74 PersistWndName
     75 Agere Systems Soft Modem Monitor
     76 Touchpad driver tray icon window
     77 Touchpad driver backward compatibility window
     78 Touchpad driver helper window
     79 Medidor de energía
     80 MS_WebcheckMonitor
     81 BTTrayMainWindow
     82 Program Manager

Variables in use
================
   Procedure     Type   Value
   ==========================
   __ERRRT_SBASE
     Param   1:    O    Class: ERROR
   TWINDOW:ERROR
     Param   1:    N    13
     Param   2:    N    1004
     Param   3:    C    "Message not found"
     Param   4:    C    "TWINDOW:GETHOTPOS"
     Param   5:    N    1
     Param   6:    O    Class: TWINDOW
     Local   1:    U    
     Local   2:    N    0
   (b)HBOBJECT
     Param   1:    C    "Message not found"
     Param   2:    C    "TWINDOW"
     Param   3:    C    "GETHOTPOS"
     Param   4:    N    1004
   TWINDOW:MSGNOTFOUND
     Param   1:    O    Class: TWINDOW
     Param   2:    C    "GETHOTPOS"
     Param   3:    N    102
     Param   4:    N    2755530
   TWINDOW:GETHOTPOS
     Param   1:    C    "GETHOTPOS"
     Param   2:    N    102
     Param   3:    N    2755530
   TFOLDEREX:SYSCOMMAND
     Param   1:    N    102
     Param   2:    N    2755530
   TCONTROL:HANDLEEVENT
     Param   1:    N    61696
     Param   2:    N    102
     Param   3:    N    0
     Local   1:    O    Class: TFOLDEREX
     Local   2:    N    0
     Local   3:    U    
     Local   4:    N    0
   TFOLDEREX:HANDLEEVENT
     Param   1:    N    274
     Param   2:    N    61696
     Param   3:    N    102
     Local   1:    U    
   _FWH
     Param   1:    N    274
     Param   2:    N    61696
     Param   3:    N    102
   WINRUN
     Param   1:    N    102
     Param   2:    N    274
     Param   3:    N    61696
     Param   4:    N    102
     Param   5:    N    34
     Local   1:    O    Class: TFOLDEREX
   TWINDOW:ACTIVATE
     Param   1:    N    2362106
   MAIN
     Param   1:    C    "NORMAL"
     Param   2:    U    
     Param   3:    U    
     Param   4:    U    
     Param   5:    U    
     Param   6:    U    
     Param   7:    U    
     Param   8:    B    {|| ... }
     Param   9:    U    
     Param  10:    U    
     Param  11:    U    
     Param  12:    U    
     Param  13:    U    
     Param  14:    U    
     Param  15:    U    
     Param  16:    U    
     Param  17:    U    
     Param  18:    U    
     Param  19:    U    
     Local   1:    O    Class: TWINDOW
     Local   2:    U    
     Local   3:    U    

Linked RDDs
===========
   DBF
   DBFFPT
   DBFBLOB
   DBFNTX

DataBases in use
================

Classes in use:
===============
     1 ERROR
     2 HBCLASS
     3 HBOBJECT
     4 TWINDOW
     5 TBRUSH
     6 TFONT
     7 TCONTROL
     8 TFOLDEREX
     9 TDIALOG
    10 TXBROWSE
    11 TSCROLLBAR
    12 TXBRWCOLUMN
    13 TBTNBMP
    14 TGIF
    15 TSAY
    16 TREG32

Memory Analysis
===============
      238 Static variables

   Dynamic memory consume:
      Actual  Value:          0 bytes
      Highest Value:          0 bytes
 

Re: New Class: TFolderEx

PostPosted: Mon Aug 09, 2010 2:58 pm
by Daniel Garcia-Gil
pcordonet wrote:I push ALT+ (any key were not in list of Short cut key) have this error:


Thanks.. i will fix soon

Re: New Class: TFolderEx

PostPosted: Mon Aug 09, 2010 3:43 pm
by Daniel Garcia-Gil
pcordonet wrote:Hi Daniel,

I push ALT+ (any key were not in list of Short cut key) have this error:

[code=fw]Application
===========
   Path and name: C:\Documents and Settings\Pcordonet\Escritorio\testfx\testfx1.exe (32 bits)
   Size: 1,888,768 bytes
   Time from start: 0 hours 0 mins 1 secs
   Error occurred at: 08/09/10, 16:38:05
   Error description: Error BASE/1004  Message not found: TWINDOW:GETHOTPOS
   Args:
     [   1] = O   TWINDOW


Already fixed and upload the sample again (Same link)

Re: New Class: TFolderEx

PostPosted: Mon Aug 09, 2010 3:52 pm
by pcordonet
Ok !!

Thank you!
Pere Cordonet

Re: New Class: TFolderEx

PostPosted: Mon Aug 09, 2010 4:22 pm
by richard-service
Daniel Garcia-Gil wrote:Richard...

The bitmap position is fine... maybe i should use a more small bitmap, or if you prefer no paint yellow/blue line
Resize bitmap is not acceptable, with windows api method, we lost alpha channel, with own functions:
ResizeImg( hBmp, nWidth, nHeight ) -> hBmp
ResizeImg( hBmp, nPorcent ) -> hBmp
i dont like effect

i did a new data nBmpTopMargin
Image


i thinks, the bitmap used in this samples maybe are so big for you style, my recommendation for you, use more small bitmap or use new data nBmpTopMargin

yes, maybe use small bitmap or new data nBmpTopMargin.
I think better than same WinAPI "SysTabControl32", I put any size bmp or icon in TAB work fine.

Re: New Class: TFolderEx

PostPosted: Mon Aug 09, 2010 4:28 pm
by ukoenig
Hello Daniel,

Is it possible for You, do test Backgrounds including some Controls
like Say, Radio and Checkbox for transparent Tests ?
I finished my Folder-Painter and it works fine, but I would like,
to replace it with Your new Folder-class.

All possible Dlg- and Folder-Background-Combinations :
W_STYLE = selected Dialog-Background
F_STYLE = selected Folder-Background

Code: Select all  Expand view

...
...
ACTIVATE DIALOG oDlg ;
ON INIT ( oDlg:Move( 50, 45, NIL, NIL, .f. ), ; // Move to Position
      IIF( W_STYLE = 2, W_CBRUSH( oDlg ), NIL ), ;  // Dialog-Color-Brush
      IIF( W_STYLE = 4, W_IBRUSH( oDlg ), NIL ), ;  // Dialog-Image-Brush
      SetImages(oFld), ;
      IIF( F_STYLE = 1, FoldGrad( oFld, hDC, .T. ), NIL ), ; // Folder-Gradient
      IIF( F_STYLE = 2, FoldCol( oFld ), NIL ), ;  // Folder-Color
      IIF( F_STYLE = 3, FoldImage( hDC, oFld ), NIL ), ; // Folder-Image
      IIF( F_STYLE = 4, FoldBrush( hDC, oFld ), NIL ) ) ; // Folder-Brush
ON PAINT ( IIF( W_STYLE = 1, W_GRAD( oDlg, hDC, .T. ), NIL ), ; // Dialog-Gradient
      IIF( W_STYLE = 3, W_IMAGE( oDlg, 0, 0, oDlg:nWidth(), oDlg:nHeight() ), NIL ), ; // Dialog-Image
      oFld:SetOption(1) )
 
RETURN( NIL )

// --------- FOLDER-COLOR -----------------------------------

FUNCTION FoldCol( oFld )
LOCAL n, oDlg, oBrush

DEFINE BRUSH oBrush COLOR  F_COLOR1
 
FOR n = 1 to Len( oFld:aDialogs )
    oDlg = oFld:aDialogs[ n ]    
    SET BRUSH OF oDlg TO oBrush
NEXT

RELEASE BRUSH oBrush

RETURN NIL

// ----------- FOLDER GRADIENT ---------------------------------

FUNCTION FoldGrad( oFld, hDC, lDir )
LOCAL n, oDlg
Local aGrad := { { F_MOVE, F_COLOR1, F_COLOR2 }, { F_MOVE, F_COLOR2, F_COLOR1 } }
  
FOR n = 1 to Len( oFld:aDialogs )
      oDlg = oFld:aDialogs[ n ]    
      oDlg:bPainted = { | hDC | GradientFill( hDC, 0, 0, oDlg:nHeight, oDlg:nWidth, aGrad, lDir ) }
NEXT

RETURN NIL

// ------- FOLDER BRUSH Tiled ( calculated ) using JPG-Format --------------

FUNCTION FoldBrush( hDC, oFld )
LOCAL n, oDlg
 
FOR n = 1 to Len( oFld:aDialogs )
      oDlg = oFld:aDialogs[ n ]    
      oDlg:bPainted = { | hDC | F_TILED1(  hDC, oDlg ) }
NEXT

RETURN NIL

// --------

FUNCTION F_TILED1(  hDC, oDlg )
LOCAL oImage3, nRow := 0, nCol := 0, n

DEFINE IMAGE oImage3 FILENAME c_path + "\SYSTEM\" + F_BRUSH
aRect := GETCLIENTRECT( oDlg:hWnd )
nHeight := oImage3:nHeight
nWidth := oImage3:nWidth
IF aRect[3] > 0
      DO WHILE nRow < aRect[3]
            nCol = 0
            DO WHILE nCol < aRect[4]
                  PalBmpDraw( hDC, nRow, nCol, oImage3:hBitmap, , nWidth, nHeight, , .T. )
                  nCol += nWidth
           ENDDO
           nRow += nHeight
      ENDDO
ENDIF

DeleteObject( oImage3 )

RETURN( NIL )

// -------- FOLDER Image ------------------------------------

FUNCTION FoldImage( hDC, oFld )
LOCAL n, oDlg
 
FOR n = 1 to Len( oFld:aDialogs )
      oDlg = oFld:aDialogs[ n ]    
      oDlg:bPainted = { | hDC | F_FULL1(  hDC, oDlg ) }
NEXT

RETURN NIL

// ----------

FUNCTION F_FULL1(  hDC, oDlg )
LOCAL oImage3
LOCAL aRect := GETCLIENTRECT( oDlg:hWnd )

DEFINE IMAGE oImage3 FILENAME c_path + "
\SYSTEM\" + F_IMAGE
aRect := GETCLIENTRECT( oDlg:hWnd )
PalBmpDraw( hDC, 0, 0, oImage3:hBitmap, , aRect[4], aRect[3], , .T. )
DeleteObject( oImage3 )

RETURN( NIL )


Best regards
Uwe :lol:

Re: New Class: TFolderEx

PostPosted: Tue Aug 10, 2010 2:10 am
by Daniel Garcia-Gil
Uwe...

check this sample
Download Here


Image

Re: New Class: TFolderEx

PostPosted: Tue Aug 10, 2010 10:49 am
by Daniel Garcia-Gil
Now we can decide stretch tabs or not

Stretch
Image

No Stretch
Image

Re: New Class: TFolderEx

PostPosted: Tue Aug 10, 2010 12:08 pm
by anserkk
Dear Daniel,

Good work !!!!.

Regards
Anser

Re: New Class: TFolderEx

PostPosted: Tue Aug 10, 2010 1:01 pm
by Daniel Garcia-Gil
Working from resource


Image

Code: Select all  Expand view

   REDEFINE FOLDEREX oFld ID 110 PROMPT "New", "Open";
            BITMAPS "new", "open";
            DIALOGS "sub1", "sub2" ;
            ROUND 5
 

Re: New Class: TFolderEx

PostPosted: Tue Aug 10, 2010 4:05 pm
by Daniel Garcia-Gil
Using right tech we can do a great job

Image

Re: New Class: TFolderEx

PostPosted: Tue Aug 10, 2010 4:16 pm
by Massimo Linossi
Daniel, this is really fantastic !!!
Many compliments. :D :D :D

Re: New Class: TFolderEx

PostPosted: Wed Aug 11, 2010 6:56 am
by Maurizio
Daniel,
beautiful

it is possible in vertical style to ?

Maurizio

Re: New Class: TFolderEx

PostPosted: Wed Aug 11, 2010 10:28 am
by Daniel Garcia-Gil
Maurizio wrote:Daniel,
beautiful

it is possible in vertical style to ?

Maurizio


no :(

Re: New Class: TFolderEx

PostPosted: Thu Aug 12, 2010 7:09 pm
by Daniel Garcia-Gil
Hello...

i'm still working in the class...

thanks to Maurizio's post, i think we can set different layout, for now is ready TOP and BOTTOM.... i'm working LEFT, RIGHT

Download here
For better result, launch from fivewin samples folder

TOP
Image

BOTTOM
Image