Clipper On Line • Ver Tópico - Usando BITMAP no TAB

Usando BITMAP no TAB

Projeto HwGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

 

Usando BITMAP no TAB

Mensagempor Fernando queiroz » 25 Nov 2020 13:03

Estou tentando colocar bitmaps no TAB mas eles não estão aparecendo, o que esta faltando ????

Segue o Código para ajuda, os BITMAPS estão no RESOURCE e com a cor correta.

@ 1,113 TAB oPage1 ITEMS {} SIZE 1024,456 ;
ON SIZE ANCHOR_TOPABS + ANCHOR_LEFTABS + ANCHOR_RIGHTABS + ANCHOR_BOTTOMABS;
ON CHANGE {|This| ::Consultas_tab(This, oDlg, LTRIM(str(oPage1:oBrowse1:aArray[ oPage1:oBrowse1:nCurrent, 1])), oPage1:oBrowse1:aArray[ oPage1:oBrowse1:nCurrent, 2]) };
BITMAP {"product-256-30-neg", "FOLDER-256-30-neg", "FOLDER-256-30-neg" , "PRINTER-256-30-neg"} FROM RESOURCE
HARBOUR 3.2, HWGUI 2.22 B4, SEFAZCLASS, DBFCDX, PDFClass, LETODBF
Fernando queiroz
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 476
Data de registro: 12 Nov 2014 23:41
Cidade/Estado: Porto Alegre/RS
Curtiu: 6 vezes
Mens.Curtidas: 21 vezes

Usando BITMAP no TAB

Mensagempor asimoes » 26 Nov 2020 11:59

E aceita resource ?

é repetido assim mesmo BITMAP {"product-256-30-neg", "FOLDER-256-30-neg", "FOLDER-256-30-neg" , "PRINTER-256-30-neg"}
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4901
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 331 vezes
Mens.Curtidas: 229 vezes

Usando BITMAP no TAB

Mensagempor Fernando queiroz » 26 Nov 2020 22:07

asimoes escreveu:E aceita resource ?

é repetido assim mesmo BITMAP {"product-256-30-neg", "FOLDER-256-30-neg", "FOLDER-256-30-neg" , "PRINTER-256-30-neg"}


Sim o BITMAP neste caso é um ARRAY , aceita RESOURCE sim

#xcommand @ <x>,<y> TAB [ <oTab> ITEMS ] <aItems> ;
[ OF <oWnd> ] ;
[ ID <nId> ] ;
[ SIZE <width>, <height> ] ;
[ STYLE <nStyle> ] ;
[ FONT <oFont> ] ;
[ ON INIT <bInit> ] ;
[ ON SIZE <bSize> ] ;
[ ON PAINT <bDraw> ] ;
[ ON CHANGE <bChange> ] ;
[ ON CLICK <bClick> ] ;
[ ON GETFOCUS <bGetFocus> ];
[ ON LOSTFOCUS <bLostFocus>];
[ BITMAP <aBmp> [<res: FROM RESOURCE>] [ BITCOUNT <nBC> ] ] ;
=> ;
[<oTab> := ] HTab():New( <oWnd>,<nId>,<nStyle>,<x>,<y>,<width>, ;
<height>,<oFont>,<bInit>,<bSize>,<bDraw>,<aItems>,<bChange>, <aBmp>, <.res.>,<nBC>,;
<bClick>, <bGetFocus>, <bLostFocus> );
[; hwg_SetCtrlName( <oTab>,<(oTab)> )]

#xcommand BEGIN PAGE <cname> OF <oTab> ;
=> ;
<oTab>:StartPage( <cname> )

#xcommand END PAGE OF <oTab> ;
=> ;
<oTab>:EndPage()

#xcommand ENDPAGE OF <oTab> ;
=> ;
<oTab>:EndPage()
HARBOUR 3.2, HWGUI 2.22 B4, SEFAZCLASS, DBFCDX, PDFClass, LETODBF
Fernando queiroz
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 476
Data de registro: 12 Nov 2014 23:41
Cidade/Estado: Porto Alegre/RS
Curtiu: 6 vezes
Mens.Curtidas: 21 vezes

Usando BITMAP no TAB

Mensagempor asimoes » 27 Nov 2020 09:05

Nesses casos eu olharia o fonte da hwgui pra ver se está implementado essa função para bitmap, aprendi muito olhando os fontes para entender o que estava errado.
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4901
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 331 vezes
Mens.Curtidas: 229 vezes

Usando BITMAP no TAB

Mensagempor asimoes » 27 Nov 2020 09:38

Fiz um teste aqui por resource não funcionou, funcionou carregando o arquivo da pasta

 @ 1,113 TAB oPage1 ITEMS {"TESTE   ", "TESTE   ", "TESTE   ", "TESTE   "} SIZE 1024,456 ;
   ON SIZE ANCHOR_TOPABS + ANCHOR_LEFTABS + ANCHOR_RIGHTABS + ANCHOR_BOTTOMABS;
   BITMAP {"AVI\exclama.bmp", "ICON_OK16", "ICON_OK16" , "ICON_OK16"} //FROM RESOURCE

2020-11-27 09_35_23-Window.png
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4901
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 331 vezes
Mens.Curtidas: 229 vezes

Usando BITMAP no TAB

Mensagempor asimoes » 27 Nov 2020 09:55

Tem que ser icones 32 x 32 bitmaps
2020-11-27 09_49_08-Window.png
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4901
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 331 vezes
Mens.Curtidas: 229 vezes

Usando BITMAP no TAB

Mensagempor asimoes » 27 Nov 2020 11:35

A função hwg_Loadbitmap pode estar falhando na leitura do resouce

Eu ainda prefiro deixar do lado de fora da aplicação qq imagem
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4901
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 331 vezes
Mens.Curtidas: 229 vezes

Usando BITMAP no TAB

Mensagempor Fernando queiroz » 27 Nov 2020 20:58

Como fica a parte

BEGIN PAGE <cname> OF <oTab>

END PAGE

mudei a forma de fazer esta parte mas não deu certo
   @ 1,113 TAB oPage1 ITEMS {'PRODUTOS', 'CONSULTA 1', 'CONSULTA 2', 'RANKING DE PRODUTOS', 'RELATÓRIOS'} SIZE 1024,456 ;
         ON SIZE ANCHOR_TOPABS + ANCHOR_LEFTABS + ANCHOR_RIGHTABS + ANCHOR_BOTTOMABS;
         ON CHANGE  {|This| ::Consultas_tab(This, oDlg, LTRIM(str(oPage1:oBrowse1:aArray[ oPage1:oBrowse1:nCurrent, 1])), oPage1:oBrowse1:aArray[ oPage1:oBrowse1:nCurrent, 2], @cProgressKey ) } ;
         BITMAP {'C:\SGCMARIADB\ICONS\product-256-30-neg.BMP'} //from RESOURCE

         oPage1:StartPage( 'PRODUTOS' )
HARBOUR 3.2, HWGUI 2.22 B4, SEFAZCLASS, DBFCDX, PDFClass, LETODBF
Fernando queiroz
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 476
Data de registro: 12 Nov 2014 23:41
Cidade/Estado: Porto Alegre/RS
Curtiu: 6 vezes
Mens.Curtidas: 21 vezes

Usando BITMAP no TAB

Mensagempor asimoes » 27 Nov 2020 21:37

O Bitmap tem que ter essa dimensão 32 x 32 pixels
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4901
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 331 vezes
Mens.Curtidas: 229 vezes

Usando BITMAP no TAB

Mensagempor JoséQuintas » 27 Nov 2020 22:38

HB_FUNC( HWG_LOADBITMAP )
{
   if( HB_ISNUM( 1 ) )
   {
      if( !HB_ISNIL( 2 ) && hb_parl( 2 ) )
         HB_RETHANDLE( LoadBitmap( NULL, MAKEINTRESOURCE( hb_parni( 1 ) ) ) );
      else
         HB_RETHANDLE( LoadBitmap( GetModuleHandle( NULL ),
                     MAKEINTRESOURCE( hb_parni( 1 ) ) ) );
   }
   else
   {
      void *hString;
      HB_RETHANDLE( LoadBitmap( GetModuleHandle( NULL ), HB_PARSTR( 1,
                        &hString, NULL ) ) );
      hb_strfree( hString );
   }
}


loadbitmap apenas carrega a imagem

HB_FUNC( HWG_LOADIMAGE )
{
   void *hString = NULL;

   HB_RETHANDLE( LoadImage( HB_ISNIL( 1 ) ? GetModuleHandle( NULL ) : ( HINSTANCE ) hb_parnl( 1 ),      // handle of the instance that contains the image
               HB_ISNUM( 2 ) ? MAKEINTRESOURCE( hb_parni( 2 ) ) : HB_PARSTR( 2, &hString, NULL ),       // name or identifier of image
               ( UINT ) hb_parni( 3 ),  // type of image
               hb_parni( 4 ),   // desired width
               hb_parni( 5 ),   // desired height
               ( UINT ) hb_parni( 6 )   // load flags
          ) );
   hb_strfree( hString );
}


LoadImage permite redimensionar

As classes hbitmap, hicon seriam as mais adequadas pra isso.
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 15499
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 13 vezes
Mens.Curtidas: 897 vezes

Usando BITMAP no TAB

Mensagempor asimoes » 28 Nov 2020 06:47

Quintas

Pensei também na HWG_LOADIMAGE mas vai ter que modificar a classe, tem que apresentar o problema para o Kressin
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4901
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 331 vezes
Mens.Curtidas: 229 vezes

Usando BITMAP no TAB

Mensagempor asimoes » 28 Nov 2020 07:29

Consegui definir tamanho para o bitmap, mas resource não carregou

        IF lResour
            nHandleFile := HBitmap():AddResource( aImages[ i ], LR_LOADTRANSPARENT + LR_LOADMAP3DCOLORS, , 24, 24 ):handle
         ELSE
            nHandleFile := HBitmap():AddFile( aImages[ i ], LR_LOADTRANSPARENT + LR_LOADMAP3DCOLORS, , 24, 24 ):handle
         ENDIF         


Isso fica no METHOD New da classe HTab
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4901
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 331 vezes
Mens.Curtidas: 229 vezes

Usando BITMAP no TAB

Mensagempor asimoes » 28 Nov 2020 07:35

2020-11-28 07_34_12-Window.png


Com a classe modificada definindo tamanho do bitmap para 24 x 24 pixel
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4901
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 331 vezes
Mens.Curtidas: 229 vezes

Usando BITMAP no TAB

Mensagempor asimoes » 28 Nov 2020 08:09

Consegui carregar o bitmap do .rc tinha uma bobeira no arquivo, mas pra funcionar teve essa modificação ai em cima na classe
2020-11-28 08_20_51-Window.png
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4901
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 331 vezes
Mens.Curtidas: 229 vezes

Usando BITMAP no TAB

Mensagempor asimoes » 28 Nov 2020 08:25

Modifiquei a chamada pra definir o tamanho do BMP é opcional SIZEBMP
Modifiquei o método New para incluir os tamanhos W e H

Isso pode ser uma sugestão para o Kressin
#xcommand @ <x>,<y> TAB [ <oTab> ITEMS ] <aItems> ;
             [ OF <oWnd> ]              ;
             [ ID <nId> ]               ;
             [ SIZE <width>, <height> ] ;
             [ STYLE <nStyle> ]         ;
             [ FONT <oFont> ]           ;
             [ ON INIT <bInit> ]        ;
             [ ON SIZE <bSize> ]        ;
             [ ON PAINT <bDraw> ]       ;
             [ ON CHANGE <bChange> ]    ;
             [ ON CLICK <bClick> ]      ;
             [ ON RIGHTCLICK <bRClick> ];
             [ ON GETFOCUS <bGetFocus> ];
             [ ON LOSTFOCUS <bLostFocus>];
             [ BITMAP <aBmp>  [<res: FROM RESOURCE>] [ BITCOUNT <nBC> ] ]  ;
             [ SIZEBMP <nWidthIm>, <nHeightIm> ] ;
          => ;
          [<oTab> := ] HTab():New( <oWnd>,<nId>,<nStyle>,<x>,<y>,<width>, ;
             <height>,<oFont>,<bInit>,<bSize>,<bDraw>,<aItems>,<bChange>, <aBmp>, <.res.>,<nBC>,;
             <bClick>, <bGetFocus>, <bLostFocus>, <bRClick>, <nWidthIm>, <nHeightIm> ) ;;
          [ <oTab>:name := <(oTab)> ]
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4901
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 331 vezes
Mens.Curtidas: 229 vezes

Próximo



Retornar para HwGui

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 1 visitante


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro