Ir para conteúdo

POWERED BY:

Arquivado

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

Cleverson Gouvêa

Dificuldades com Interface Grafica

Recommended Posts

E aew pessoal... Estou feliz por estar devolta, fiquei muito tempo fora de foruns e tal... Mais agora estou devolta!

 

Estou precisando da ajuda dos mestres do C++, sei que o meu tópico pode ser bem idiota para a maioria, mais estou

tendo muita dificuldade em trabalhar com o Borland C++. Na verdade não consigo encontrar bons materiais na internet.

 

A questão é que eu estou acustumado com o Delphi, eu comecei a programar com Delphi 7, daí passei para o Borland Delphi e etc...

 

Enfim, agora estou fazendo Graduação Superior em Sistemas de Informação, portanto preciso aprender C++ e hoje sei que

ele é muito melhor do que o Delphi, consegue trabalhar com processos e interagir com a memória muito melhor também.

 

Utilizando o CMD a minha programação em C++ funciona perfeitamente, mais a dificuldade esta em trabalhar com Edits, Buttons,

Grids e etc...

 

Como manipular tudo isso com o C++ ?

 

Materiais de Apoio ?

 

Dicas ?

 

Agradeço a atenção de todos !

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara a VCL é a mesma, ou seja, se você está acostumado com Delphi estara com o BCB.

Por exemplo para acessar o conteudo de uma Edit:

Delphi ( salvo erros de sintaxe pq não lembro a sintaxe do object pascal )

ShowMessage( Edit1.Text );
Em C++ o equivalente seria:

ShowMessage( Edit1->Text );

Quanto ao VCL é a mesma coisa que você faz com o Delphi arraste e solte, claro que você pode criar dinamicamente, se for esta a sua duvida diga que eu mostro um exemplo.

 

Se não intender seja mais especifico com a dúvida...

 

Vlws, Fuiz

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara a VCL é a mesma, ou seja, se você está acostumado com Delphi estara com o BCB.

Por exemplo para acessar o conteudo de uma Edit:

Delphi ( salvo erros de sintaxe pq não lembro a sintaxe do object pascal )

ShowMessage( Edit1.Text );
Em C++ o equivalente seria:

ShowMessage( Edit1->Text );

Quanto ao VCL é a mesma coisa que você faz com o Delphi arraste e solte, claro que você pode criar dinamicamente, se for esta a sua duvida diga que eu mostro um exemplo.

 

Se não intender seja mais especifico com a dúvida...

 

Vlws, Fuiz

 

Na verdade é exatamente isso que você me respondeu amigo, o lance de arrastar e soltar os componentes eu to ligado... Mais até acustumar com as diferenças de sintaxe demora um pouco...

 

Porém essa sua explicação já ajudou mto.

 

Agora estou em um desafio aqui, como armazenar o condeudo do Edit1.text em uma variavel, converter para INT e somar os valores ?

 

Utilizando interface grafica, tipo um botão...

 

E como escrever os dados do Edit em um banco de dados utilizando os componentes ?

 

Talvez eu esteja querendo demais né, mais acredite, já tentei várias coisas e não consegui, estou garimpando mto no Google pq estou decidido a migrar completamente para o C++, e adivinha pq... Só pq todo mundo fala que é mto dificil e mto completo!

 

Eu não quero me dar mal denovo, passei uma boa parte da minha vida estudando ActionScript e o que adiantou ? Nada...

 

Agora o Flash está prestes a morrer por causa do Steve Job e eu fiquei na @#$%#$¨%$#¨$#%¨...

 

Pelo menos me ajudou a também melhorar mto meu Javascript e utilizalo agora com JQuery e Ajax...

 

Não quero mais pascal, quero esquecer isso e mergulhar fundo no C++ !

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem primeiro as suas duvidas depois o papo furado hauhauahuAHU

 

Agora estou em um desafio aqui, como armazenar o condeudo do Edit1.text em uma variavel, converter para INT e somar os valores ?

Imagine que você adicionou um Edit ( Edit1 ) e um Botão ( Button1 ).

    int numero = StrToInt( Edit1->Text );//armazenou o conteudo do Edit1 na variavel numero que é do tipo inteiro.
    ShowMessage( "O numero digitado foi: " + IntToStr( numero ) );//converteu a variavel numero para uma AnsiString assim pode ser concatenada.

Quanto ao banco de dados de uma olhada na aba BDE.

 

Agora o papo furado.

Flash é direcionado para web. C++ não..

Cara flash não vai morre, HTML5 quando se difundir vai estabelecer o CAOS, HTML5 é mtu bom, é mtu bonito, é mtu facil, mas é mtu PERIGOSO. Muitas coisas implementadas nele estão mal elaboradas e tornaram o usuario mtu mais vulneravel doq já é hje. Logo se você quer aprender C++ perfeito, mas não acredite que flash vai morrer pq não vai..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sei não kara... A Guerra contra o flash esta mto grande... Mais foi bom enquanto durou.

 

Amigo, sua dia me ajudou mto, e tenho certeza que vai auxiliar vários outros iniciantes em C++ que querem utilizar interface grafica também!

 

Confesso que me sinto bastante seguro com a linguagem e o algoritmo em si, porquê estou mergulhando disso na minha faculdade e porquê tenho muito material

para isso, porém existe uma grande dificuldade de se encontrar materias para isso!

 

Num sei se é possivel aproveitar esse tópico pra tirar outra dúvida relacionada ao mesmo assunto, se num puder o moderador me perdoe !

 

Agora já consigo interagir perfeitamente com os componentes do Borland C++, agora gostaria do seu conselho para o seguinte:

 

Gosto grandes aplicações com um formulário principal que chama os formulários menores... tipo cadastro_cli, financeiro e etc...

 

Qual a melhor forma de fazer isso, gostaria de discutir para poder criar uma boa aplicação !

 

 

Conheço vários aplicativos no mercado, muito vendidos com falhas nessa área, e a maioria porquê o programador começa o projeto errado e depois que o software fica famoso fica mais dificil mudar a base.

 

Aplicativos que você abre, chama o formulário menor e depois fecha o formuário principal e o formulário menor continua aberto, dá vários erros e etc...

 

Acredito que você sabe do que eu estou falando, quero começar direito... do geito certo !

 

 

Alguma dica ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Infelizmente não intendi, ou pelo menos acredito não ter intendido.

Mas vamos supor que você esteja querendo adicionar varias Janelas ( Forms ) a sua aplicação:

Você simplesmente adiciona os formularios a aplicação, lembrando que sempre existe um formulario principal ( aquele que é chamado no momento de execução do programa ).

Para adicionar um formulario ( Form ): File->New->Form

 

Dicas:

-Sempre que criar um formulario adicione ao nome dele um identificador por exemplo: ao invez de usar Form1 use frmPrincipal.

-Para tornar o formulario visivel em outros formularios ( alem do que ele foi implementado ) você só necessita adicionar o seu cabeçalho.

 

Este problema que você cita de fechar um formulario e dar erros, isto é erro de implementação o motivo disto acontecer não se deve ao fato de ser uma aplicação grafica...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Realmente você não entendeu, mais eu também explico mal! rs rs rs

 

Entendi o que você quiz dizer sobre adicionar vários forms, e eu já trabalhei assim com o Delphi! O problema é que dependendo do tamanho da aplicação você fica com um executável enorme... Tipo 80Mb... Demora muito pra carregar, pq já vem com todos os forms criados e carregados na memória! Pelo menos era o que acontecia comigo, não sei se esse problema foi resolvido nesse novo Borland C++ 2009 (Que é o que eu uso)...

 

Entendeu ?

 

Daí eu vi várias pessoas que criam um VCL para cada parte do sistema tipo:

 

financeiro.exe, cadastros.exe, relatórios.exe, estoque.exe, caixa.exe, funcionarios.exe, usuários.exe. Isso pesa menos, pq você divide o projeto em cada executavel... Daí geralmente a galera chama esses executaveis com winexec:

 

WinExec("financeiro.exe",SW_SHOW);

Soluciona o problema mais gera outros, como por exemplo esse que eu te citei, o cara tem 2 executaveis rodando na lista de processos, o 'Principal.exe' e o 'financeiro.exe'... Daí os usuários que gostam sempre de fazer @#$%#%¨$#%¨#$%¨#, chamam várias vezes o mesmo executavel, fecham o executavel principal e fazem todas aquelas cacas que somente usuário final sabe fazer.

 

Então, qual seria a melhor forma de desenvolver?

 

Sei que posso estar sendo bastante xarope, mais acho interessante levantar essa discussão... Pq precisamos melhorar a qualidade dos softwares que circulam no Brasil se quizermos realmente competir com o resto do mundo... Até quando vamos ser conhecidos por gambiarras e defeitos de engenharia ?

 

rs rs rs

 

Entendeu?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo isto dai é problema de implementação, primeiro aos forms serem carregados para memoria em momento de execução, isto se deve ao fato da má configuração por parte do programador, sempre que você "termina" uma aplicação ou parte dela fica completa você deve analizar para ver como pode aumentar a performance. Os formularios por padrão são carregados como você citou, porem isto pode ser configurado facilmente nas opções do projeto.

É possivel criar do modo que você cito criando varios executaveis porem isto não é obrigatorio, e ao meu ver nenhuma aplicação tem por obrigatoriedade fazer isto. Caso você queira realmente fazer isto use CreateProcess() assim você tem total controle sobre o processo que você executa. Quanto a executar varias vezes o memso processo ai vai da gambiarra: você pode verificar na lista de processos se esta rodando aquela aplicação, você pode criar um arquivo no disco que é criado toda vez que o programa é executado e deletado quando a aplicação é fechada, outro muito usado em aplicações java é abrir um servidor socket ( só é possivel um mesmo servidor rodando na mesma porta, logo você não conseguira executar a aplicação mais de uma vez ).

 

Completando: ainda existem compactadores de executaveis que diminuem drasticamente o tamanho do executavel, claro que a uma queda de performance na abertura de aplicações grande como a que você citou de 80 mb mas nada muito perceptivel.

Outro ponto é este tamanho de 80mb, deve se atentar a este exagero, você está incluindo o que exatamente neste executavel, imagens ? DLL ? é um tamanho bem exagerado para uma aplicação mesmo sendo de grande porte..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Foi só um numero que me veio... mais já vi aplicações maiores que isso e lerdíssimas, acredito que seja pela imensidão de imagens !

 

Mais você me esclareceu muitas duvidas, muito obrigado kara... Acho que agora estou pronto para enfiar a kara !

 

Vamos ver no que vai dar! Obrigado amigo !

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quanto as imagens existem outros metodos de mantelas em um mesmo arquivo sem ser no resource da propria aplicação, você pode armazenala em DLL, ou usar alguns "compactadores/arquivadores" de arquivos que disponibilizam que você acesse a imagem como se ela estivesse em disco ( muitos jogos utilizam esta tecnica ). Em aplicações com muitas imagens eu não aconselho você inserilas dentro da propria aplicação. Qualquer outra duvida volte a postar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aew cpp love... Só agora vi esse seu post...

 

Sei que passou pouquissimo tempo, mais sou muito grato a você, depois desse post minha aplicação já cresceu mto !

 

A interface grafica esta pronta, o acesso ao banco de dados 100%!

 

Agora... fiquei encucado com essa sua dia, como eu coloco as imagens em uma dll ou etc? Pq realmente já estava incluindo tudo na aplicação, justamente como voce recomendou a não fazer !

 

Você sabe me dizer se esse meu software desenvolvido em RAD2009 vai rodar em Linux e outras plataformas ? Me surgiu essa duvida derrepente !

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para colocar dentro da DLL basta adicionar no Resource dela, quanto a rodar em outras plataformas depende da linguagem caso seja C++/Delphi concerteza não irá a não ser que você use alguma tecnica de virtualização de aplicações (não me pergunte sobre isso pq só conheço a teoria, não imagino como implementa-la, porem existem softwares PAGOS que fazem isto quanto se funciona ou não essa virtualização eu não faço idéia ). Se você utilizando C++ e não estiver utilizando ( VCL/WinAPI/ETC ) você pode sim conseguir uma aplicação independente de plataforma, porem você terá que compilar seu código para cada plataforma ( será necessário varias versões de sua aplicação, uma para Linux, uma para MAC, uma para Windows ).

Respondida as dúvidas ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.