Erro en TTaskPanel

Post Reply
User avatar
alex2002
Posts: 23
Joined: Fri Apr 18, 2008 2:41 pm
Location: Belo Horizonte / MG - Brasil

Erro en TTaskPanel

Post by alex2002 »

Hola a todos,

He encontrado un problema con parámetros faltantes en la clase TTaskPanel.

La llamada original no pasa todos los parámetros al método:

Code: Select all | Expand

METHOD AddLink( cPrompt, bAction, cBitmap, oFnt, nClrT, nClrP, nClrO ) CLASS TTaskPanel

   local nTop := ::nTitleHeight + 10, n, oUrlLink

   if ! Empty( ::aControls )
      for n = 1 to Len( ::aControls )
         nTop += ::aControls[ n ]:nHeight + ::nOffSetY
      next
   endif

   oUrlLink := TUrlLink():New( nTop, 33, Self, .T., .F., if( HB_IsNIL( oFnt ), ::oFont, oFnt ), ;
                               "", cPrompt, , nClrT, nClrP, nClrO )
   if !HB_IsNIL( nClrT )
      oUrlLink:nClrText := nClrT
   endif
   oUrlLink:SetColor( oUrlLink:nClrText, if( HB_IsNIL( nClrP ), ::nClrPane, nClrP ) )
   oUrlLink:nClrOver = if( HB_IsNIL( nClrO ), ::nClrHover, nClrO )

   oUrlLink:bAction = bAction

   if File( cBitmap )
      oUrlLink:hBmp = ReadBitmap( 0, cBitmap )
   else
      oUrlLink:hBmp = LoadBitmap( GetResources(), cBitmap )
   endif

   if oUrlLink:nTop + oUrlLink:nHeight > ::nHeight
      ::nHeight     := oUrlLink:nTop + oUrlLink:nHeight + 10
      ::nBodyHeight := ::nHeight - ::nTitleHeight
      ::UpdateRegion()
   endif

return nil

La forma correcta sería:

Code: Select all | Expand

METHOD AddLink( cPrompt, bAction, cBitmap, oFnt, nClrT, nClrP, nClrO, cMsg, cTooltip ) CLASS TTaskPanel

   local nTop := ::nTitleHeight + 10, n, oUrlLink

   if ! Empty( ::aControls )
      for n = 1 to Len( ::aControls )
         nTop += ::aControls[ n ]:nHeight + ::nOffSetY
      next
   endif

   oUrlLink := TUrlLink():New( nTop, 33, Self, .T., .F., if( HB_IsNIL( oFnt ), ::oFont, oFnt ), ;
                               cMsg, cPrompt, cToolTip , nClrT, nClrP, nClrO )
   if !HB_IsNIL( nClrT )
      oUrlLink:nClrText := nClrT
   endif
   oUrlLink:SetColor( oUrlLink:nClrText, if( HB_IsNIL( nClrP ), ::nClrPane, nClrP ) )
   oUrlLink:nClrOver = if( HB_IsNIL( nClrO ), ::nClrHover, nClrO )

   oUrlLink:bAction = bAction

   if File( cBitmap )
      oUrlLink:hBmp = ReadBitmap( 0, cBitmap )
   else
      oUrlLink:hBmp = LoadBitmap( GetResources(), cBitmap )
   endif

   if oUrlLink:nTop + oUrlLink:nHeight > ::nHeight
      ::nHeight     := oUrlLink:nTop + oUrlLink:nHeight + 10
      ::nBodyHeight := ::nHeight - ::nTitleHeight
      ::UpdateRegion()
   endif

return nil

Simplemente agregando los campos cMsg y cTooltip, ambos aparecerán automáticamente en la ventana.

Modifiqué la clase, pero sería mejor que se mantuviera en su idioma nativo para no tener que cambiarla constantemente.

Saludos cordiales.

Alexandre Pereira
Harbour 3.2 - FWH - 25.12 - MSVC - VsCODE - Win11

User avatar
sysctrl2
Posts: 1144
Joined: Mon Feb 05, 2007 7:15 pm
Contact:

Re: Erro en TTaskPanel

Post by sysctrl2 »

A mi me gusta mucho la tTaskPanel del colega Andrés Reyes funciona en ventanas MDI
la CLASS fue modificada para que funcione con versiones actuales de FWH/Harbour/xHarbour

Saludos

Image

Cesar Cortes Cruz
SysCtrl Software
Mexico

' Sin +- FWH es mejor "
User avatar
Antonio Linares
Site Admin
Posts: 44515
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: Erro en TTaskPanel

Post by Antonio Linares »

Estimado César,

El código fuente está disponible ? :)

regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
Posts: 44515
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: Erro en TTaskPanel

Post by Antonio Linares »

alex2002 wrote: Tue Jan 20, 2026 5:25 am

Hola a todos,

He encontrado un problema con parámetros faltantes en la clase TTaskPanel.

La llamada original no pasa todos los parámetros al método:

Code: Select all | Expand

METHOD AddLink( cPrompt, bAction, cBitmap, oFnt, nClrT, nClrP, nClrO ) CLASS TTaskPanel

   local nTop := ::nTitleHeight + 10, n, oUrlLink

   if ! Empty( ::aControls )
      for n = 1 to Len( ::aControls )
         nTop += ::aControls[ n ]:nHeight + ::nOffSetY
      next
   endif

   oUrlLink := TUrlLink():New( nTop, 33, Self, .T., .F., if( HB_IsNIL( oFnt ), ::oFont, oFnt ), ;
                               "", cPrompt, , nClrT, nClrP, nClrO )
   if !HB_IsNIL( nClrT )
      oUrlLink:nClrText := nClrT
   endif
   oUrlLink:SetColor( oUrlLink:nClrText, if( HB_IsNIL( nClrP ), ::nClrPane, nClrP ) )
   oUrlLink:nClrOver = if( HB_IsNIL( nClrO ), ::nClrHover, nClrO )

   oUrlLink:bAction = bAction

   if File( cBitmap )
      oUrlLink:hBmp = ReadBitmap( 0, cBitmap )
   else
      oUrlLink:hBmp = LoadBitmap( GetResources(), cBitmap )
   endif

   if oUrlLink:nTop + oUrlLink:nHeight > ::nHeight
      ::nHeight     := oUrlLink:nTop + oUrlLink:nHeight + 10
      ::nBodyHeight := ::nHeight - ::nTitleHeight
      ::UpdateRegion()
   endif

return nil

La forma correcta sería:

Code: Select all | Expand

METHOD AddLink( cPrompt, bAction, cBitmap, oFnt, nClrT, nClrP, nClrO, cMsg, cTooltip ) CLASS TTaskPanel

   local nTop := ::nTitleHeight + 10, n, oUrlLink

   if ! Empty( ::aControls )
      for n = 1 to Len( ::aControls )
         nTop += ::aControls[ n ]:nHeight + ::nOffSetY
      next
   endif

   oUrlLink := TUrlLink():New( nTop, 33, Self, .T., .F., if( HB_IsNIL( oFnt ), ::oFont, oFnt ), ;
                               cMsg, cPrompt, cToolTip , nClrT, nClrP, nClrO )
   if !HB_IsNIL( nClrT )
      oUrlLink:nClrText := nClrT
   endif
   oUrlLink:SetColor( oUrlLink:nClrText, if( HB_IsNIL( nClrP ), ::nClrPane, nClrP ) )
   oUrlLink:nClrOver = if( HB_IsNIL( nClrO ), ::nClrHover, nClrO )

   oUrlLink:bAction = bAction

   if File( cBitmap )
      oUrlLink:hBmp = ReadBitmap( 0, cBitmap )
   else
      oUrlLink:hBmp = LoadBitmap( GetResources(), cBitmap )
   endif

   if oUrlLink:nTop + oUrlLink:nHeight > ::nHeight
      ::nHeight     := oUrlLink:nTop + oUrlLink:nHeight + 10
      ::nBodyHeight := ::nHeight - ::nTitleHeight
      ::UpdateRegion()
   endif

return nil

Simplemente agregando los campos cMsg y cTooltip, ambos aparecerán automáticamente en la ventana.

Modifiqué la clase, pero sería mejor que se mantuviera en su idioma nativo para no tener que cambiarla constantemente.

Saludos cordiales.

Estimado Alex,

Muchas gracias. Añadido para FWH 26.03

saludos :)

regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
sysctrl2
Posts: 1144
Joined: Mon Feb 05, 2007 7:15 pm
Contact:

Re: Erro en TTaskPanel

Post by sysctrl2 »

Hola Antonio, la tTaskPanel
que yo uso la compartió Joao @Karinha en este foro solo que no encuentro el POST,
de todos modos te envié un whats .
Lo interesante de esta CLASS es que se puede personalizar

Code: Select all | Expand

#include "fivewin.ch"
#include "taskpanel.ch"

function Principal()
   local cTitle := "TASKPANEL TEST"
   local oWnd

   WITH OBJECT TestPanel()
      :New()
   END OBJECT
return nil

CLASS TestPanel
   data oWnd   as OBJECT
   method new()
   method MakeWin()
   method MakePanel()

ENDCLASS

method new() class TestPanel

   ::MakeWin()

return nil

Method MakeWin() CLASS TestPanel
   local oSelf := Self
   MENU oMenu
      MENUITEM "&Archivo"
      MENU
         menuitem "Selecciona la impresora ...." action( PrinterSetup() )
         MENUITEM "&Salir"  ACTION ( ::oWnd:End() )
      ENDMENU
      oMenu:AddMdi()
   ENDMENU

   define window ::oWnd title "tTaskPanel" FROM 0, 0  TO 750, 1000 PIXEL MENU oMenu

   activate window ::oWnd on init ( oSelf:MakePanel() )


Return nil

Method MakePanel() CLASS TestPanel

   local oTaskPanel

   DEFINE THEME NAME "#CUSTOM"

  ELEMENT TASKPANEL ;
           BACKGROUND {RGB( 251, 213, 229 ), RGB( 235, 154, 192 )  };   //RGB( 251, 213, 229 )
           BORDERCOLOR RGB( 235, 154, 192 );
           PADDING 20; //RELLENO
           BORDERTHICKNESS 1


     ELEMENT SPECIAL GROUP
        ELEMENT HEADER ;
                BACKGROUND {RGB( 237,208, 242 ),RGB( 255, 161, 255 )};
                FOREGROUND RGB( 0, 0, 0 );
                BORDERTHICKNESS 0;
                BUTTON COLLAPSE {"TBN_COLLAPSE1", "TBN_COLLAPSE2" };
                BUTTON EXPAND {"TBN_NOCOLLAPSE1", "TBN_NOCOLLAPSE2"};
                MARGIN TO PANEL 10
        ENDELEMENT

        ELEMENT TASKLIST;                           //SEPARATOR
                BACKGROUND {RGB( 253, 234, 242 ), RGB( 235, 154, 192 ) } ;
                BORDERTHICKNESS 0;
                PADDING 0;
                MARGIN TO TASK 2

           ELEMENT TASK ;                              //BARRA SELECCIONADORA
                   BACKGROUND { RGB( 251, 213, 229 ), RGB(255,0,255), -1 } ;
                   FONTSTYLE { "", "" };
                   FOREGROUND RGB( 0, 0, 0 ); //ITEM LETRAS
                   PADDING { 6, 2, 4, 2 }  //RGB( 251, 213, 229 )
           ENDELEMENT
        ENDELEMENT

     ENDELEMENT


  ENDELEMENT
   ENDTHEME

   DEFINE TASKPANEL oTaskPanel ANCHOR LEFT ;
         THEME "#CUSTOM"

     TASKGROUP "Group 1"  SPECIAL
        TASKITEM "ITEM 1" BITMAP "PRN16" ACTION MSGINFO("ITEM1")
        TASKITEM "ITEM 2" BITMAP "PRN16" ACTION MSGINFO("ITEM2")
     ENDTASKGROUP

     TASKGROUP "Group 2" SPECIAL
        TASKITEM "ITEM 1" BITMAP "PRN16" ACTION MSGINFO("ITEM1")
        TASKITEM "ITEM 2" BITMAP "PRN16" ACTION MSGINFO("ITEM2")
     ENDTASKGROUP

     TASKGROUP  "Detalles" NO COLLAPSABLE SPECIAL
        TASKITEM "<b>test</b>" + ;
                 "<p>===========================</p>"+;
                 "<p>tTaskPanel</p>" +;
                 "<p><b>Autor</b></p>" +;
                 "<p></p>" +;
                 "<p>Cesar</p>"  INFO
     ENDTASKGROUP
   ENDTASKPANEL

Return nil

Saludos !!

Cesar Cortes Cruz
SysCtrl Software
Mexico

' Sin +- FWH es mejor "
User avatar
Antonio Linares
Site Admin
Posts: 44515
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: Erro en TTaskPanel

Post by Antonio Linares »

Tenemos la autorización de Andrés Reyes para publicarla ? :idea:

regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
sysctrl2
Posts: 1144
Joined: Mon Feb 05, 2007 7:15 pm
Contact:

Re: Erro en TTaskPanel

Post by sysctrl2 »

Si maestro en el 2022,
viewtopic.php?t=42093&hilit=andres+reyes

saludos

Cesar Cortes Cruz
SysCtrl Software
Mexico

' Sin +- FWH es mejor "
User avatar
Antonio Linares
Site Admin
Posts: 44515
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: Erro en TTaskPanel

Post by Antonio Linares »

sysctrl2 wrote: Thu Jan 22, 2026 10:30 pm

Si maestro en el 2022,
viewtopic.php?t=42093&hilit=andres+reyes

saludos

Muchas gracias César por el recordatorio :)

viewtopic.php?p=252767#p252767

regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
karinha
Posts: 8720
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil
Contact:

Re: Erro en TTaskPanel

Post by karinha »

Special Thanks to Enrico Maria Giordano.

viewtopic.php?f=6&t=43685&sid=ddfff51faa6

Regards, saludos.

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Post Reply