Pular para o conteúdo principal

Postagem em destaque

BlackTDN :: LeetCode :: Zigzag Conversion: Implementando Soluções em xBase (Harbour) e TL++

_Créditos das imagens: ChatGPT_ ### LeetCode :: Zigzag Conversion: Implementando Soluções em xBase (Harbour) e TL++ A ["Zigzag Conversion"](https://leetcode.com/problems/zigzag-conversion/description/) é um problema popular do LeetCode que desafia desenvolvedores a transformar uma string em um padrão zigzag com base no número de linhas especificado, para então reconstruir a string seguindo a leitura linha a linha do padrão. Aqui, apresento soluções desenvolvidas em Harbour (XBase) e TL++ com melhorias e detalhes adicionais. --- ### **O Problema** Dado uma string e um número de linhas, distribua os caracteres em um padrão zigzag. Leia as linhas do padrão sequencialmente para obter o resultado: Exemplo: **Input:** String: "PAYPALISHIRING" Linhas: 3 **Padrão Zigzag:** ``` P A H N A P L S I I G Y I R ``` **Output:** "PAHNAPLSIIGYIR" --- ### **Implementação em Harbour** As soluções estão organizadas em dois arquivos principai...

Protheus :: Advpl :: Usando GetCellRect para edição de célula em um ListBox

Dia desses precisei alterar uma “customização” em um cliente e uma das novas implementações seria a substituição de alguns campos por um “ComboBox” editável. Esses campos estavam em um “ListBox” que, normalmente, não permite a edição das Células nas colunas de seu “Browse”. Após algumas tentativas, e, baseando-me na forma em que uma Célula da GetDados é Editada, cheguei à função (não documentada) GetCellRect( oBrowse , @aDim ).

GetCellRect retorna, por referência em aDim, as Dimensões da Célula a qual queremos editar. O Segredo dela é o fragmento do Código abaixo:

image

Considerando que a Edição era apenas para o “ComboBox” não me preocupei em generalizar a função, tornando-a específica: Permitir a Edição de uma Célula do “ListBox” através de um “ComboBox”.

O exemplo poderá ser ampliado e generalizado de acordo com as suas necessidades.

Usando a tabela CTT (Centros de Custo ) obteremos o seguinte resultado:

image

image

image

image

Observem que, na tela inicial do “Client”, usei U_dbgLBoxE. U_dbgLBoxE é compilada condicionalmente. Sendo assim, para poder executá-la, far-se-a necessária a definição da seguinte constante:

Parâmetros: /D___DEBUG

image

Caso contrário, a execução do código será através da U_EdtLBoxCol() via Menu ou Fórmula.

O Código poderá ser obtido aqui.

[]s

иαldσ dj

Comentários

  1. Naldo,
    Estou a procura de como colocar cores nas linhas do objeto LISTBOX, mas quero deixar de cor diferente linhas de acordo com a situação do vetor, eu consegui fazer no getdados mas no listbox nao. Voce ja viu algum listbox que modifica as cores, ou tem a classe do listbox para que eu possa descobrir, pois no original ele deixa azul e branco intermitente, entao significa que de alguma forma ele faz. Valeu.

    ResponderExcluir
  2. Blz Naldo, cara to com um problema, preciso ou colorir um celula conforme uma condição ou colocar uma imagem juntamente com texto, ou legenda sei lá ? Já viu alguma coisa mano, pode ser listbox, twbrowse sei lá qualquer coisa, é possível ? preciso montar tipo um calendário e células com imagem, legenda, ou cor diferenciada.

    Abraços

    ResponderExcluir

Postar um comentário

Postagens mais visitadas