Problemas com Datagrid no VS2005

47 views
Skip to first unread message

Daniel Mota

unread,
Mar 29, 2009, 11:19:09 AM3/29/09
to ccppb...@googlegroups.com
Pessoal,

pela segunda vez acontece algo estranho q as vezes eu até acho um macete pra resolver, mas gostaria de ENTENDER o q está acontecendo.

Seguinte:
eu trago valores externos, ou do proprio código e populo um datagrid.

depois eu preciso fazer algumas alterações nos dados desse datagrid e depois das alterações feitas, rodo um algoritmo pra fazer contas com a matriz alterada.

pela segunda vez acontece que se eu NÃO ALTERO os dados da grid, ele faz as contas, normalmente, numa boa, mas se eu altero pelo menos uma única célula, ele acusa erro.

alguem faz idéia do q pode estar acontecendo?


Obrigado!

Att.

--
_______________________________
Daniel de Oliveira Mota
Mestrando NCA&T  (Mastering at NCA&T)
Management Science - Operational Research
Tel: (336) 501-4960

Daniel Mota

unread,
Mar 29, 2009, 12:40:51 PM3/29/09
to ccppb...@googlegroups.com
---------- Forwarded message ----------
From: Daniel Mota <danielmot...@gmail.com>
Date: 2009/3/29
Subject: Problemas com Datagrid no VS2005
To: ccppb...@googlegroups.com


Pessoal,

pela segunda vez acontece algo estranho q as vezes eu até acho um macete pra resolver, mas gostaria de ENTENDER o q está acontecendo.

Seguinte:
eu trago valores externos, ou do proprio código e populo um datagrid.

depois eu preciso fazer algumas alterações nos dados desse datagrid e depois das alterações feitas, rodo um algoritmo pra fazer contas com a matriz alterada.

pela segunda vez acontece que se eu NÃO ALTERO os dados da grid, ele faz as contas, normalmente, numa boa, mas se eu altero pelo menos uma única célula, ele acusa erro.


An unhandled exception of type 'System.InvalidCastException' occurred in Windows_form_DTMC.exe

Additional information: Specified cast is not valid.



alguem faz idéia do q pode estar acontecendo?


Obrigado!

Att.

--
_______________________________
Daniel de Oliveira Mota
Mestrando NCA&T  (Mastering at NCA&T)
Management Science - Operational Research
Tel: (336) 501-4960

Rodrigo Strauss

unread,
Mar 31, 2009, 10:21:33 PM3/31/09
to ccppb...@googlegroups.com
Tem certeza que é C++? Que DataGrid? Não é C++/CLI?

Rodrigo Strauss
http://www.1bit.com.br


2009/3/29 Daniel Mota <danielmot...@gmail.com>:

Daniel Mota

unread,
Mar 31, 2009, 11:34:19 PM3/31/09
to ccppb...@googlegroups.com
visual C++

no caso usando windowsforms.
acho q a raiz do problema é conflito de tipo de dados... mas as soluções são as mais estranhas possiveis....

hora tenho q chamar uma classe: Marshall
outra Parse
outra um cast resolve
outra mudo o algoritmo

doideira....

Valeu pela atenção Rodrigo


2009/3/31 Rodrigo Strauss <rod...@1bit.com.br>

Rodrigo Strauss

unread,
Apr 1, 2009, 10:31:01 PM4/1/09
to ccppb...@googlegroups.com
Você está usando C++/CLI, que é uma linguagem da Microsoft diferente
do C++ padrão. Para ajuda sobre WinForms, acho melhor você perguntar
em um grupo de C#, tem muito mais gente lá que entende disso.

Rodrigo Strauss
http://www.1bit.com.br

2009/4/1 Daniel Mota <danielmot...@gmail.com>:

Daniel Mota

unread,
Apr 1, 2009, 10:36:18 PM4/1/09
to ccppb...@googlegroups.com
opa...

entendi... 
Valeu pela ajuda... acho q até os livros de referência q estou usando, é arriscado eu ter q dar uma maior olhada no C# então.

C++ puro não tem forms? 

Abraços

Daniel

2009/4/1 Rodrigo Strauss <rod...@1bit.com.br>

Rodrigo Strauss

unread,
Apr 1, 2009, 10:39:42 PM4/1/09
to ccppb...@googlegroups.com
Tem outras bibliotecas para janelas (como MFC, Qt, WTL, etc), mas
funcionam de forma diferente do WinForms. WinForms é componente do
.NET Framework e está disponível para as linguagem que compilam para a
CLR do .NET, como o C++/CLI. Se tiver dúvida sobre algum termo que eu
falei, a Wikipedia resolve bem. :-)

Daniel Mota

unread,
Apr 1, 2009, 10:43:46 PM4/1/09
to ccppb...@googlegroups.com
ok, to anotando e buscando lá mesmo!
hehehhehe

perguntei isso pq posso estar chamando de Winforms por estar acostumado com a nomeclatura do C#, mas na verdade ser outra coisa.
Mas tranquilo, vou dar uma olhada!

Só finalizando:

no caso de mudanças de tipo, existe uma forma "padrão" de se converter QUALQUER tipo A em QUALQUER tipo B (desde q se faça sentido, claro), por exemplo:

valor de um System::string em uma string normal, etc????


valeu pela ajuda!

abraços

2009/4/1 Rodrigo Strauss <rod...@1bit.com.br>

P.

unread,
Apr 2, 2009, 12:22:32 PM4/2/09
to ccppbrasil
On 1 abr, 23:43, Daniel Mota <danielmota.produ...@gmail.com> wrote:

> no caso de mudanças de tipo, existe uma forma "padrão" de se converter
> QUALQUER tipo A em QUALQUER tipo B (desde q se faça sentido, claro)

Essa é uma questão maneira.

Em primeiro lugar, um pouco de rigor ajuda a pensar: não faz sentido
falar em converter um tipo A em um tipo B, já que um _tipo_ é um
elemento estrutural de um programa, e não um elemento dinâmico.
Isso é verdade em linguagens como C, C++ e C#, que são fortemente
tipadas.

Faz sentido falar em converter um objeto a, originalmente de um tipo
A, a um tipo B. Conversão é uma operação, e seu operando é um _valor_.

Assim sendo, vamos pensar nessa expressão de conversão, em C# para
manter o contexto:

A a = new A(...);
B b = (B)a;

Existe uma forma padrão de converter QUALQUER A em QUALQUER B desta
forma? Não.

Nem mesmo se "faz sentido"? Bem. O que é "faz sentido"?
Se "faz sentido" é a mesma coisa que "obedece às regras de conversão
da linguagem de programação", então a resposta é sim.
Se "faz sentido" é a mesma coisa que "faz sentido na minha cabeça",
então a resposta é não.

Nesse último caso, as linguagens de programação oferecem um
maravilhoso recurso para realizar os nossos desejos: a função.
Nós, os programadores, transformamos o "faz sentido" em uma função que
recebe um valor do tipo A e retorna um valor do tipo B, e pronto!

Assim, quando "faz sentido" é a mesma coisa que "eu sei como escrever
uma função que converteria isso", então a resposta é: vá escrever a
tal função.

A a = new A(...);
B b = a.ConvertToB();

E pronto!

Linguagems como C++ e C# tem, além disso, funções especiais chamadas
"construtores" que tornam a notação mais interessante, na opinião de
alguns. Quando a sua função de conversão é na realidade um construtor,
o resultado final será um pouco diferente.

A a = new A(...);
B b = new B(a);

E pronto!

A conveniência de cada uma dessas alternativas é determinada pelas
circunstâncias; se você pode modificar A; se pode modificar B; se a
informação pública oferecida por A e/ou B é suficiente; etc.

--
P.

Daniel Mota

unread,
Apr 2, 2009, 12:27:16 PM4/2/09
to ccppb...@googlegroups.com
Legal Pedro,

valeu pela resposta, vou dar uma estudada no seu email, e retorno uma conclusão!

Abraços

Daniel

Felipe Magno de Almeida

unread,
Apr 2, 2009, 1:11:54 PM4/2/09
to ccppb...@googlegroups.com
------- Original message -------
From: P. <pedro....@member.fsf.org>
To: ccppb...@googlegroups.com
Sent: 2.4.'09, 13:22

>
> On 1 abr, 23:43, Daniel Mota <danielmota.produ...@gmail.com> wrote:
>
> > no caso de mudanças de tipo, existe uma forma "padrão" de se converter
> > QUALQUER tipo A em QUALQUER tipo B (desde q se faça sentido, claro)
>

[snip]

> Nem mesmo se "faz sentido"? Bem. O que é "faz sentido"?
> Se "faz sentido" é a mesma coisa que "obedece às regras de conversão
> da linguagem de programação", então a resposta é sim.
> Se "faz sentido" é a mesma coisa que "faz sentido na minha cabeça",
> então a resposta é não.

LOL! To rindo muito com esse "faz sentido na minha cabeça"

[snip]

> --
> P.

Reply all
Reply to author
Forward
0 new messages