Clipper On Line • Ver Tópico - Possibilidade de um Botão em um Header de um ListBox.

Possibilidade de um Botão em um Header de um ListBox.

Discussão sobre a biblioteca Fivewin - O Clipper para Windows.

Moderador: Moderadores

 

Possibilidade de um Botão em um Header de um ListBox.

Mensagempor João Eduardo » 27 Jun 2022 18:28

Boa Noite pessoal, gostaria de compartilhar uma dúvida aqui com vocês que estou tendo, estou criando uma ListBox e nesta ListBox, gostaria de saber se existe a possibilidade de colocar alguns botões nos campos "Headers" para caso o usuário clique, por exemplo, ordene o conteúdo da lista por sequência alfabética caso o campo seja uma descrição e por valor caso o campo seja numeral, até o momento, eu consegui inserir uma imagem .bmp no header para o clique do usuário, contudo, não consegui até o momento, atribuir essa imagem como um botão para clique, vocês sabem uma forma de fazer isto?
-Código do List Box
oBotao:=LoadBitmap(GetResources(),"TESTE")
Redefine ListBox oBrwIce;
         Fields aTmpIce[oBrwIce:nAt,25],;
                Transf(aTmpIce[oBrwIce:nAt,02],"@9"),;
                Transf(aTmpIce[oBrwIce:nAt,03],"@!"),;
                aTmpIce[oBrwIce:nAt,11],;
                Left(aTmpIce[oBrwIce:nAt,04],34),;
                Transf(aTmpIce[oBrwIce:nAt,05],"@!"),;
                Transf(aTmpIce[oBrwIce:nAt,06],"@!XX"),;
                Transf(aTmpIce[oBrwIce:nAt,09],"@e 999999.999"),;
                Transf(aTmpIce[oBrwIce:nAt,12],cMasQts),;
                Transf(aTmpIce[oBrwIce:nAt,28],cMasQts),;
                Transf(aTmpIce[oBrwIce:nAt,13],cMasQts),;
                If(Empty(aTmpIce[oBrwIce:nAt,10]),"",aStaCot[RetAchoice(aStaCot,Transf(aTmpIce[oBrwIce:nAt,10],"@!"),3)]),;
                Transf(aTmpIce[oBrwIce:nAt,14],cMasCef),;
                Transf(aTmpIce[oBrwIce:nAt,15],cMasCef),;
                Transf(aTmpIce[oBrwIce:nAt,16],cMasCef),;
                Cvod(aTmpIce[oBrwIce:nAt,26]),;
                Cvod(aTmpIce[oBrwIce:nAt,27]);
         Headers "S",;
                 "Item",;
                 "Produto",;
                 "Cód.Auxiliar",;
                 oBotao,;//"Descrição",;
                 "Marca",;
                 "Un.",;
                 "Quantidade",;
                 "Saldo",;
                 "Desconto",;
                 "Minimo",;
                 "Status Item",;
                 "Mel.Cot.1",;
                 "Mel.Cot.2",;
                 "Mel.Cot.3",;
                 "Última Compra",;
                 "Última Venda";
         FieldSizes 20,30,50,85,220,70,25,67,45,60,45,77,65,65,65,83,80;
         ID 202 Of oFldCot:aDialogs[2] UpDate
oBrwIce:SetArray(aTmpIce)
oBrwIce:aJustify  :={.F.,.F.,.F.,.F.,.F.,.F.,.F.,.T.,.T.,.T.,.T.,.F.,.F.,.F.,.F.,.F.,.F.}
oBrwIce:nLineStyle:=4
oBrwIce:bLDblClick:={|nRow,nCol|      IncCot((oBrwIce:nAt=Len(aTmpIce)),Left(vStaSin,1)="A",aTmpCot[oBrwCot:nAt,23])}
oBrwIce:bKeyChar  :={|nKey|If(nKey=13,IncCot((oBrwIce:nAt=Len(aTmpIce)),Left(vStaSin,1)="A",aTmpCot[oBrwCot:nAt,23]),Nil)}
oBrwIce:nClrText  :={||If(aTmpIce[oBrwIce:nAt,10]="X",CLR_HBLUE,If(aTmpIce[oBrwIce:nAt,10]="C",CLR_HRED,CLR_BLACK))}
oBrwIce:nClrPane  :={||If(oBrwIce:nAt%2==0,CLR_AZUL3,CLR_WHITE)}
Anexos
imagem_2022-06-27_182816683.png
- Foto de exemplo da Imagem que consegui inserir no Header em anexo (ainda preciso ajustar a dimensão da imagem .bmp)
imagem_2022-06-27_182816683.png (7.53 KiB) Visualizado 488 vezes
João Eduardo
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 9
Data de registro: 28 Jul 2021 18:25
Cidade/Estado: Paracatu/MG
Curtiu: 0 vez
Mens.Curtidas: 4 vezes

Possibilidade de um Botão em um Header de um ListBox.

Mensagempor Kapiaba » 28 Jun 2022 09:20

Bom dia. Bem vindo. Veja \samples,

TESTLBX2.PRG
TESTLBX5.PRG

Qualquer coisa, thamus aki.

Regards, saludos.

Joao Santos - Sao Paulo / Brasil.
Kapiaba
Colaborador

Colaborador
 
Mensagens: 1766
Data de registro: 07 Dez 2012 15:14
Cidade/Estado: São Paulo
Curtiu: 311 vezes
Mens.Curtidas: 119 vezes

Possibilidade de um Botão em um Header de um ListBox.

Mensagempor Kapiaba » 28 Jun 2022 09:21

P.S.: Se quiser algo mais sofisticado, use a XBROWSE(), muito melhor e super moderna.

Abs.

Regards, saludos.
Kapiaba
Colaborador

Colaborador
 
Mensagens: 1766
Data de registro: 07 Dez 2012 15:14
Cidade/Estado: São Paulo
Curtiu: 311 vezes
Mens.Curtidas: 119 vezes

Possibilidade de um Botão em um Header de um ListBox.

Mensagempor João Eduardo » 30 Jun 2022 15:18

Fala Kapiaba, consegui aplicar oque precisava no Xbrowse(), contudo, vendo na documentação, não consegui localizar como ajustar a cor do texto de cada linha, pois no sistema que trabalho, é comum um Ex: Item quando está cancelado, vir com as fontes na cor azul por exemplo, é possível usando o Xbrowse?
João Eduardo
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 9
Data de registro: 28 Jul 2021 18:25
Cidade/Estado: Paracatu/MG
Curtiu: 0 vez
Mens.Curtidas: 4 vezes

Possibilidade de um Botão em um Header de um ListBox.

Mensagempor Kapiaba » 04 Jul 2022 09:36

Bom dia.
Veja se ajuda:

// Cores na xBrowse
static function BrwColors( oBrw, lFoot )

   local cClrBack
   DEFAULT lFoot          := .F.

   oBrw:l2007             := .F.
   oBrw:nRowHeight        := 24
   oBrw:nHeaderHeight     := 24
   oBrw:lFooter               := lFoot
   
   //oBrw:lRecordSelector     := .F.
   //oBrw:lColDividerComplete := .F.
   //oBrw:lRowDividerComplete := .F.
   
   oBrw:lFlatStyle        := .T.
   oBrw:bClrHeader        := { || { CLR_BLACK, CLR_WHITE, CLR_WHITE } } //RGB( 232, 255, 232 ), RGB( 232, 255, 232 ) }}
   oBrw:lFullGrid         := .F.
   oBrw:nRowDividerStyle  := LINESTYLE_NOLINES //DARKGRAY  //LINESTYLE_LIGHTGRAY      //
   oBrw:nColDividerStyle  := LINESTYLE_NOLINES //LIGHTGRAY // LINESTYLE_NOLINES

   oBrw:nMarqueeStyle := MARQSTYLE_HIGHLROW
   oBrw:bClrStd = { || If( oBrw:KeyNo() % 2 == 0, ;
                         { If( ( oBrw:cAlias )->( Deleted() ), CLR_HRED, CLR_BLUE ),;
                           RGB( 198, 255, 198 ) }, ;
                         { If( ( oBrw:cAlias )->( Deleted() ), CLR_HRED, CLR_BLUE ),;
                           RGB( 232, 255, 232 ) } ) }
   oBrw:bClrSel = { || { If( ( oBrw:cAlias )->( Deleted() ), CLR_HRED, CLR_WHITE ),;
                           RGB( 34, 177, 76 ) } } //RGB( 0x33, 0x66, 0xCC ) } }
   
   cClrBack = Eval( oBrw:bClrSelFocus )[ 2 ]
   oBrw:bClrSelFocus  := { || { If( ( oBrw:cAlias )->( Deleted() ), CLR_HRED, CLR_WHITE ),;
                              cClrBack } }
   oBrw:SetColor( CLR_BLUE, RGB( 232, 255, 232 ) )

   oBrw:SetFont( oFont1 )

return nil


Regards, saludos.
Kapiaba
Colaborador

Colaborador
 
Mensagens: 1766
Data de registro: 07 Dez 2012 15:14
Cidade/Estado: São Paulo
Curtiu: 311 vezes
Mens.Curtidas: 119 vezes

Possibilidade de um Botão em um Header de um ListBox.

Mensagempor João Eduardo » 07 Jul 2022 14:10

Consegui fazer kapiaba, tomou certo tempo mas funcionou perfeitamente! restando apenas alguns ajustes, agradeço demais pela atenção!
João Eduardo
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 9
Data de registro: 28 Jul 2021 18:25
Cidade/Estado: Paracatu/MG
Curtiu: 0 vez
Mens.Curtidas: 4 vezes




Retornar para FiveWin

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 12 visitantes


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