Ir ao conteúdo

Dois forms 1 componente, como chamar de um para o outro?


Pulllga

Posts recomendados

Postado

Olá, o Pulllga de novo,

Como uso um componente de outro form em você++???

Eu tenho um form com o componente NotifyIcon, mas eu preciso abrir o balão de mensagens do notify a partir de outro form, como faço???

No form 1 está o notify, mas quero abrir as propriedades do notify desde o form 2, como faço???

valeu :D:D:D

  • Membro VIP
Postado

Na hora de abrir o form2 passe a referência do controle atraves de um método ou variavel publica e altere o controle atraves dessa referência.

Postado

Olá EduardoS,

Mas veja bem, sou meio iniciante em você++!!!

Como faço essa declação que me disse???

É um ponteiro que tenho que fazer né? Mas como?

valeu :D:D:D

Obs.: O que mais detesto nos fóruns são os corretores automáticos, a gente vai usar uma determinada giria ou abreviação e ele altera!!!

Postado

Ola pulllga,

Na verdade nunca usei forms no você++. Tenho mais facilidade em trabalhar com

C++Builder.

No builder quando preciso usar os objetos do Form1 no Form2 por exemplo, basta fazer um #include do header que define o Form1 (Unit1.h) no código do Form2.

depois é só chamar os objetos naturalmente.

ou melhor, tem que por "Form1->" antes, assim:

Form1->Label1->Caption = "No Builder é moleza!!!";

Cara não sei se isso funciona no você++, deve ter algo parecido...

Se não tiver, informa aqui. Pelo menos a gente vai descobrindo as

diferencas entre os diversos compiladores por ai a fora.

Postado

Olá Egb,

Já tentei isso, mas não dá, ele acusa um erro, é como se fosse referência cruzada, vou explicar melhor...

Tenho três forms:

Principal

Config

Config2

No header do Principal, eu coloquei os includes do Config e do Config2 para poder chamá-los, quando vou colocar o include do Principal no Config, ele dá erro.

Alguém tem alguma ideia?

Eu preciso interromper um timer de uma função no form Principal através do form Config, para pausar os processos do form Principal e poder alterar as configurações sem problema nenhum!!!

Alguém tem alguma ideia?

falou T+ :D:D:D

  • Membro VIP
Postado

Na declaração do Config1 coloque uma variavel pública do tipo NotifyIcon^


public: NotifyIcon^ ni;

Quando abrir o Config1 a partir do Principal faça:


Config1^ frm = gcnew Config1();
frm->ni = this->notifyIcon1;
frm->Show();

E depois no Config1 para usar o notify faça:


this->ni->(O que você quiser);

Postado

Olá EduardoS,

Funcionou beleza, valeu!!!

Isso pode ser feito com variáveis também?

Uma dúvida, (int ^variável) e (int^ variável) tem diferença?

Porque um fica com o ponteiro no int e outro na variável???

falou :D:D:D

  • Membro VIP
Postado

Foi feito com variáveis...

E tanto faz int^ var ou int ^var, o C++/CLI ignora os espaços, e o ^não é ponteiro, ele indica um tipo gerenciado.

Postado

Olá,

Certo, me desculpe, o indicados de ponteiro é o asterisco (que meu esperto professor de c fala "asterisco"!!!).

Eu havia me esquecido que o "^" representa tipos gerênciados, como ^strings.

Uma última dúvida, eu consigo declarar variáveis globais naquele .h, mas tem como criar um tipo de módulo onde posso colocar variáveis que poderão ser utilizadas por todos os forms.h???

Como?

falou :D:D:D

Postado

Olá,

Então Pullga em relação a variaveis globais, você poderia fazer um header novo "globais.h"

por exemplo, e fazer um include desse header onde for necessario o uso dessas variaveis globais.

Para evitar a ocorrencia de referencia cruzada sempre é bom fazer o uso das diretivas do

pre-compilador, assim:

#ifndef _globais_h_

#define _globais_h_

//declaracoes do header globais.h aqui

#endif

essa estrategia impede que sejam declaradas duas vezes as variaveis contidas no header globais.h

Não sei se ajudei...

Uma duvida minha agora: Fiqui na duvida sobre o que são tipos gerenciados???

Postado

Olá egb,

Não sei ao certo, mas pelo que li, tipos gerenciados são variáveis "emuladas"!!!

Por exemplo, string "não" existe no você++, mas é um tipo de variável gerênciado, ela na verdade é uma variável feita de char!!!

O você trata todos os chars como uma variável só, ele gerência todos os chars em uma string.

Pelo que li na net é isso.

falou T+ :D:D:D

  • Membro VIP
Postado

Não...

Tipos gerenciados são as classes e objetos do .Net.

O .Net é uma plataforma da Microsoft semelhante ao Java, ele não compila para código de maquina, mas sim para uma linguagem intermediária que na hora de executar é compilada para o código de maquina da onde ele esta sendo executado.

O nome desse código, dessas classe, etc é chamado gerenciado porque é o .Net framework que decide como alocar as variáveis, como otimizar o código, etc e não mais o programador.

Pelo que vi, a maior parte das perguntas do Pulga em relação ao Visual C++ é a dificuldade de trabalhar com o código gerenciado e diferencia-lo do nativo.

Quando se trabalha com o código gerenciado algumas coisas não funcionam da mesma maneira, o "_globais_h" por exemplo, para criar uma variavel global declare uma variavel estatica em alguma classe (altamente não recomendavel), a Microsoft recomenda não usar código nativo quando o gerenciado der conta do serviço (eu tambem recomendo), no .Net existem classes equivalentes ao winsock e a todo o resto que o Pulga perguntou.

Uma ultima dica minha, deixe o C++/CLI para quando código nativo for estritamente necessário, e mesmo assim crie apenas uma DLL "wrapper" no C++/CLI, recomendo que a aplicação em si seja feita com o C#, tudo que é possível fazer com o código gerenciado no C++/CLI tambem é possível fazer com o C#, esse ultimo só permite código gerenciado, mas é muito mais simples, o que poupa tempo com desenvolvimento.

  • Membro VIP
Postado

Não conheço uma forma automática de fazer isso, mas pela sintaxe parecida a conversão é fácil (as vezes faço isso, ctrl+c/ctrl+v e ir mudando conforme a necessidade).

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!