Discussão do artigo "Interfaces gráficas X: Ordenação, reconstrução da tabela e controles nas células (build 11)"

 

Novo artigo Interfaces gráficas X: Ordenação, reconstrução da tabela e controles nas células (build 11) foi publicado:

Nós continuamos a adicionar novos recursos para a tabela renderizada: ordenação dos dados, gerenciamento do número de colunas e linhas, definição dos tipos de células da tabela para colocar os controles dentro delas.

A ordenação nestes tipo de tabelas é demonstrado a seguir:

 Fig. 1. Demonstração da classificação das tabelas do tipo CCanvasTable.

Fig. 1. Demonstração da classificação das tabelas do tipo CCanvasTable.



Autor: Anatoli Kazharski

 
O artigo é interessante.

No entanto, não entendi duas coisas:

1. Qual é o sentido de adicionar e apagar linhas e colunas da tabela usando botões no formulário?

Entendo o sentido de adicionar linhas em tabelas dinâmicas, mas lá isso é implementado automaticamente, não manualmente....

2. O que são caixas de seleção "multiparâmetro"?


 
Реter Konow:
O artigo é interessante.

No entanto, não entendi duas coisas:

1. Qual é o sentido de adicionar e apagar linhas e colunas da tabela usando botões no formulário?

Entendo o sentido de adicionar linhas em tabelas dinâmicas, mas lá isso é implementado automaticamente, não manualmente....

2. O que são caixas de seleção "multiparâmetro"?


1. este é um exemplo. Clicar em um botão no exemplo substitui o acionamento de uma condição no programa. Embora você também possa adicionar botões no programa, não há muito que sua imaginação possa fazer.

2. Entendo - ter mais de duas posições On/Off. Por exemplo, Acima/Abaixo/Meio.

 
Artyom Trishkin:

1. Este é um exemplo. Pressionar o botão no exemplo substitui o acionamento de alguma condição no programa. Embora você também possa adicionar botões ao programa, não há muito que sua imaginação possa fazer.

2. Entendo - ter mais de duas posições On/Off. Por exemplo, Acima/Abaixo/Meio.

1. Obrigado, entendi parcialmente. A necessidade de adicionar linhas quando novos dados chegam é clara, mas por que adicionar colunas de forma programática ou manual depois que a tabela é realmente criada?

2. Na minha opinião, isso é algo da área do espaço multidimensional. Explicaram-me aqui no fórum como ele é organizado, mas ainda não entendi. :)

É como uma suave parábola verde dançando sob a luz da lua na 128ª coordenada da 18ª dimensão.....
 
Реter Konow:
1. Obrigado, entendi parcialmente. A necessidade de adicionar linhas com a chegada de novos dados é clara, mas por que adicionar colunas de forma programática ou manual após a construção real da tabela?

2. Na minha opinião, isso é algo da área do espaço multidimensional. Explicaram-me aqui no fórum como ele é organizado, mas ainda não entendi. :)

1. Por exemplo: uma condição é acionada quando é necessário emitir um valor adicional para todas as linhas da tabela, que antes era zero - uma coluna é adicionada e o valor é emitido para ela. Assim que a condição desaparecer (com o início de um novo dia, por exemplo), a coluna vazia poderá ser removida até o próximo acionamento da condição.

2) E o indicador com três linhas - ele é da área do espaço multidimensional? Fazemos uma troca na coluna zero da tabela com três posições - a linha superior do indicador, a linha do meio do indicador e a linha inferior do indicador, e nas células subsequentes da linha inserimos os valores da linha do indicador selecionada.

Sua imaginação não lhe permite pensar em exemplos de como isso pode ser útil?

 
Artyom Trishkin:

1. Por exemplo: uma condição é acionada quando é necessário emitir um valor adicional para todas as linhas da tabela, que antes era zero - uma coluna é adicionada e o valor é emitido para ela. Assim que a condição desaparecer (com o início de um novo dia, por exemplo), a coluna vazia poderá ser removida até o próximo acionamento da condição.

2) E o indicador com três linhas - ele é da área do espaço multidimensional? Fazemos uma troca na coluna zero da tabela com três posições - a linha superior do indicador, a linha do meio do indicador e a linha inferior do indicador, e nas células subsequentes da linha inserimos os valores da linha do indicador selecionada.

Sua imaginação não lhe permite pensar em exemplos de como isso pode ser útil?

1. É possível encontrar um uso para esses recursos. Só que o artigo não explica por que esses recursos foram adicionados. Foi por isso que perguntei.

2. O que é uma caixa de seleção multiparâmetro? Uma chave com três posições? Ou é uma caixa de seleção comum, mas digamos que ela seja usada para vários parâmetros ao mesmo tempo? Por exemplo, pela manhã, ela liga e desliga o parâmetro "a", no almoço, o parâmetro "b", e no jantar (de bom humor), mais alguns parâmetros são alternados, mas apenas com cliques leves. )

Bem, falando sério, dê-me um exemplo de uma caixa de seleção com vários parâmetros. Não consigo me lembrar se já vi uma e onde.
 
Реter Konow:
1. É possível encontrar um uso para esses recursos. Só que o artigo não explica por que esses recursos foram adicionados. Foi por isso que perguntei.

2. O que é uma caixa de seleção multiparâmetro? Uma chave com três posições? Ou é uma caixa de seleção comum, mas digamos que ela seja usada para vários parâmetros ao mesmo tempo? Por exemplo, pela manhã, ela liga e desliga o parâmetro "a", no almoço, o parâmetro "b", e no jantar (de bom humor), mais alguns parâmetros são alternados, mas apenas com cliques leves. )

Bem, falando sério, dê-me um exemplo de uma caixa de seleção com vários parâmetros. Não consigo me lembrar se já vi uma e onde.

1. Você precisa relembrar e explicar por que a cabeça (mente) foi dada ao homem?

2. Você já viu um interruptor de três posições em sua vida? Em um carro, por exemplo. Há um no teto (On/Off/Door).

 
Artyom Trishkin:

1. Devo lembrá-lo de explicar por que a cabeça (mente) foi dada ao homem?

2. Você já viu um interruptor de três posições em sua vida? Em um carro, por exemplo. Há um no teto.

Na verdade, eu esperava obter uma resposta do autor.

Já recebi sua explicação, mas como não foi você quem escreveu o artigo, não é possível saber exatamente o que o autor quis dizer com esse elemento.

Como desenvolvedor de GUI, tenho interesse em todos os controles originais e novos.

Portanto, minha cabeça (mente) não quer discutir com sua cabeça (mente), mas quer obter uma resposta concreta do autor.

Se você não se importar.
 
Реter Konow:
Na verdade, eu esperava obter uma resposta do autor.

Já recebi sua explicação, mas como você não foi o autor do artigo, não pode saber exatamente o que o autor quis dizer com esse elemento.

Como desenvolvedor de GUI, tenho interesse em todos os controles originais e novos.

Portanto, minha cabeça (mente) não quer discutir com sua cabeça (mente), mas quer obter uma resposta concreta do autor.

Se você não se importar.
É para isso que serve a flexibilidade, não é apenas o autor que pode pensar em quais elementos de sua biblioteca são necessários. Se Anatoly fizesse com que os elementos pudessem ser usados somente dentro de uma estrutura estreita e definida (bem... como a sua criação no vídeo), qual seria o interesse nisso?
Bem, espere pela resposta de Anatoly. Não pense nisso você mesmo. Eu não me importo.
 
Artyom Trishkin:
É por isso que ela é flexível, não é apenas o autor que pode pensar em como usar os elementos de sua biblioteca. Se Anatoly tivesse feito com que os elementos pudessem ser usados somente dentro de uma estrutura estreita e definida (bem... como a sua criação no vídeo), qual seria o interesse nisso?
Bem, espere pela resposta de Anatoly. Não pense nisso você mesmo. Eu não me importo.
Se você soubesse quantas vezes elogiei o design de Anatoly! Quantas curtidas eu dei a ele.

Veja bem, a questão é que há um grande dilema: criar um sistema absolutamente flexível, mas extremamente complexo, que seja compreensível para um círculo restrito de programadores profissionais, ou criar um sistema leve e menos flexível, mas compreensível para todos.

Anatoly escolheu a primeira opção, eu escolhi a segunda.

Ambas as opções são igualmente boas, são apenas diferentes.
 
Реter Konow:
Na verdade, eu esperava obter uma resposta do autor.
...


Na minha opinião, Artem deu exemplos bastante detalhados.

Se for mais claro e dentro da estrutura de algumas interfaces gráficas já existentes, você pode examinar estas opções:

1. No Windows, abra a janela "Componentes do Windows". Lá você pode ver caixas de seleção com mais de dois estados:

//---

2. No terminal MetaTrader 5, abra a janela "Tools" (Ferramentas). Na guia "Histórico", você tem a oportunidade de ativar/desativar a visibilidade de algumas colunas da tabela no menu de contexto: