GUI de origem popular. Testes beta abertos. - página 19

 
Реter Konow:

Isso é engraçado :) O núcleo inteiro está cheio de objetos.

Alexey, você prometeu ajudar a testá-lo. É um crédito para você que este editor verá a luz do dia. Você me motivou a terminar o trabalho.

Assim que eu colocar o editor (na terça-feira), juntos criaremos um painel simples de botões, caixas de seleção e campos de entrada e o conectaremos a um simples Expert Advisor. E todas as perguntas serão respondidas de uma só vez)).

Peter, então não vou desistir dos testes. ))

O que você quer dizer com "OBJETO"?

 
Алексей Барбашин:

Peter, não é assim que eu me recuso a ser testado. ))

O que você quer dizer com "OBJETO"?

Em minha implementação técnica, é uma série numerada de propriedades inerentes a uma única entidade datilografada. São poucos: Janela, elemento, etiqueta, ícone, texto e parâmetro. Estes são os tipos de objetos. Para cada um deles, as linhas são alocadas em kernel (parâmetro separadamente). Cada um pode ser acessado diretamente de qualquer parte do programa, e mudado na hora (como você diz). Devido à falta de quaisquer convenções, regras e restrições sintáticas, o sistema cresce e se desenvolve muito rapidamente. A condição principal - a cabeça deve aparecer por trás do potencial de desdobramento das idéias, que facilmente emergem no solo fértil da liberdade e da facilidade de interação dos objetos.

 
Реter Konow:

Em minha implementação técnica, esta é uma série numerada de propriedades inerentes a uma única entidade datilografada. Existem apenas alguns deles: Janela, Item, Etiqueta, Ícone, Texto e Parâmetro. Estes são os tipos de objetos. Para cada um deles, as linhas são alocadas em kernel (parâmetro separadamente). Cada um pode ser acessado diretamente de qualquer parte do programa, e mudado na hora (como você diz). Devido à falta de quaisquer convenções, regras e restrições sintáticas, o sistema cresce e se desenvolve muito rapidamente. A condição principal - a cabeça deve aparecer por trás do potencial de desdobramento das idéias, que facilmente emergem no solo fértil da liberdade e da facilidade de interação dos objetos.

Há uma explosão na minha cabeça...

A programação processual opera somente com funções e variáveis. O objeto máximo na programação processual só pode ser uma variável. Na ausência de OOP, as variáveis podem possuir apenas tipos simples: número, corda, data, booleano. Estes tipos não podem ter nenhuma propriedade. As funções não podem ser objetos.

O objeto mais primitivo pode ser uma estrutura, mas esse é o domínio do OOP.

Tenho dificuldade para imaginar a estrutura do tipo:

int OnInit()
{
ТипКнопка Кнопка1 = новый ТипКнопка();

Кнопка1.ЦветРамки = Новый Цвет(234,123,90);

Форма.Добавить(Кнопка1, КоординатаХ, КоординатаY);

Кнопка1.УстановитьСобытие("Нажатие", НажатиеНаКнопку1);
}

void НажатиеНаКнопку1(ТипКнопка  кнопка)

{

}

Ou falta algo ao Peter ou ele está tentando substituir o conceito de "objeto" por algo próprio... O objetivo do OOP é nos permitir criar quaisquer tipos com quaisquer propriedades e então qualquer desenvolvedor poderia melhorar ou alterar as propriedades do OBJETO herdado.

 
Алексей Барбашин:

Há uma explosão na minha cabeça...

A programação processual opera somente com funções e variáveis. O objeto máximo na programação processual só pode ser uma variável. Na ausência de OOP, as variáveis podem ter apenas tipos simples: número, corda, data, booleano. Estes tipos não podem ter nenhuma propriedade. As funções não podem ser objetos.

O objeto mais primitivo pode ser uma estrutura, mas esse é o domínio do OOP.

Tenho dificuldade para imaginar a estrutura do tipo:

Ou falta algo ao Peter ou ele está tentando substituir o conceito de "objeto" por algo próprio... É por isso que o OOP foi inventado para que pudéssemos criar nossos próprios tipos com quaisquer propriedades e então qualquer desenvolvedor poderia construir ou alterar propriedades de OBJETO herdado.

Alexei, por que você decidiu que um objeto, como um conceito, está ligado a uma sintaxe e representação pré-definidas? A algumas regras... Você descreve um Objeto em uma classe, eu em uma série de uma grande matriz. O mesmo objeto e as mesmas propriedades. Não é mais um objeto? Será que desaparece?)

Não. O objeto é invariante como uma idéia e você pode descrevê-lo de diferentes maneiras. Em uma classe ou em uma matriz é uma questão secundária.

 
Реter Konow:

Alexey, por que você decidiu que o Objeto como conceito está vinculado a uma sintaxe e representação pré-definidas? A algumas regras... Você descreve o Objeto em uma classe, eu o descrevo em uma série de uma grande matriz. O mesmo objeto e as mesmas propriedades. Não é mais um objeto? Será que desaparece?)

Não. O objeto é invariante como idéia e você pode descrevê-lo de diferentes maneiras. Em uma classe ou em uma matriz é uma questão secundária.

Peter - Um objeto, é uma entidade integral descrita por um determinado tipo, ou melhor, definida por um determinado tipo. O objeto pode ser dado um nome arbitrário, o objeto pode ser criado, transferido, acessado, destruído.

var Button1 = GlobalArrayElement[10];

Não é assim que funciona! Uma referência a uma posição de matriz não pode ser uma variável nomeada!

Mas eu não vou discutir com você, prefiro esperar pelo resultado.

var ButtonBuy = СоздатьЭлементКнопки("ИмяКнопки", Ширина, Высота, ПозицияХ, ПозицияY);

Também não vai funcionar, porque todas as variáveis em mql são estritamente datilografadas.

 
Алексей Барбашин:

Peter - Um objeto é uma entidade completa descrita por um determinado tipo, ou melhor, definida por um determinado tipo. O objeto pode ser dado um nome arbitrário, o objeto pode ser criado, transferido, manuseado, destruído.

Não é assim que funciona! Uma referência a uma posição de matriz não pode ser uma variável nomeada!

Mas eu não vou discutir com você, prefiro esperar pelo resultado.

Eu tenho variáveis o tempo todo referentes a posições de matriz (kernel). O cursor caminha ao redor da interface e os elementos entram em foco. Seu número é escrito em uma variável e através dela eu acesso a linha desejada no kernel em qualquer ponto do programa. Além disso, vários eventos são acionados e os manipuladores lidam diretamente com o objeto, elemento, janela e parâmetro necessários. Eu não vi nada mais eficiente aqui.


Minha abordagem tem uma desvantagem - não é universal, neste caso - ela é projetada para criar e lidar com GUI. Funciona melhor do que qualquer outra abordagem, mas nunca o usei fora desta área.

 
Реter Konow:

Eu tenho variáveis referentes a posições de matriz (kernel) o tempo todo. O cursor caminha ao redor da interface e os elementos entram em foco. Seu número é escrito a uma variável e através dela eu acesso a linha desejada no kernel em qualquer ponto do programa. Além disso, vários eventos são acionados e os manipuladores lidam diretamente com o objeto, elemento, janela e parâmetro necessários. Eu não vi nada mais eficaz aqui.

Peter, não há necessidade de substituir conceitos comuns. É a substituição que confunde a mente de seus oponentes.

Todas as suas variáveis se referem a posições na matriz, mas não a objetos. Você não os tem; você só tem uma matriz e posições nela. Você não precisa aplicar um conceito como "objeto" a uma série de tipos primitivos.

Dentro da programação, os conceitos de "Número", "Corda", "Data", "Booleano", "Função", "Variável", "Classe", "Matriz", "Estrutura", "Objeto" não são invariáveis, como você diz!

 
Алексей Барбашин:

Peter, não há necessidade de substituir conceitos aceitos. É a substituição que confunde a mente de seus oponentes.

Todas as suas variáveis se referem a posições na matriz, mas não a objetos. Você não os tem; você só tem uma matriz e posições nela. Você não precisa aplicar um conceito como "objeto" a uma série de tipos primitivos.

Dentro da programação, os conceitos de "Número", "Corda", "Data", "Booleano", "Função", "Variável", "Classe", "Matriz", "Estrutura" e "Objeto" não são invariáveis, como você coloca!

Você acha que uma linha de propriedades em uma matriz descrevendo alguma entidade específica NÃO é um objeto?

E o número dessa linha NÃO é uma referência a um objeto?

 
Реter Konow:

Você acha que uma linha de propriedades em uma matriz descrevendo alguma entidade específica NÃO é um objeto?

E o número desta linha NÃO é uma referência a um objeto?

Não, não é uma referência nem um objeto. Uma referência é algo que você pode colocar em uma variável. Você tem um valor específico que pode ser colocado em uma variável - um índice! O índice não é a cadeia de matriz em si, é um número específico!

 
Ansioso para a luta :) .