 |
ActiveDelphi .: O site do programador Delphi! :.
|
| Exibir mensagem anterior :: Exibir próxima mensagem |
| Autor |
Mensagem |
PauloFernandoDM Novato

Registrado: Terça-Feira, 24 de Março de 2015 Mensagens: 5
|
Enviada: Ter Mar 24, 2015 9:50 pm Assunto: Erro: Incompatibile Types, Ajuda por favor!! |
|
|
Galera, estou travado no meu projeto!!
Criei um botão no mainmenu do meu projeto e criei também 4 procedures para serem executadas no clique desse botão. O problema está na chamada desses procedures, alguém me ajuda??  |
|
| Voltar ao Topo |
|
 |
anderbelluno Colaborador


Registrado: Quarta-Feira, 23 de Novembro de 2011 Mensagens: 1030 Localização: Cianorte-PR
|
Enviada: Qua Mar 25, 2015 2:26 am Assunto: |
|
|
| vc esta passando valores para variaveis de tipos diferentes. |
|
| Voltar ao Topo |
|
 |
souzacruz001 Aprendiz

Registrado: Quarta-Feira, 11 de Junho de 2014 Mensagens: 273
|
Enviada: Qua Mar 25, 2015 8:16 am Assunto: |
|
|
Bom dia.
Você está fazendo tipo o seguinte:
| Código: |
var
vStrAux: string;
vIntAux: integer;
begin
vStrAux := 'Olá';
vIntAux := vStrAux;
end;
|
|
|
| Voltar ao Topo |
|
 |
PauloFernandoDM Novato

Registrado: Terça-Feira, 24 de Março de 2015 Mensagens: 5
|
Enviada: Qua Mar 25, 2015 8:26 am Assunto: |
|
|
| anderbelluno escreveu: | | vc esta passando valores para variaveis de tipos diferentes. |
Olha só, o programa está dessa forma: Na Unit Principal, onde estão declaradas todas as variáveis e types, estão declaradas essas duas types (que são as que dão erro)
Propriedade_Geometrica= Array[1..Maxns] of Extended;
Propriedade_Mecanica= Array[1..Maxnm] of Extended;
Sendo que esse limite final Maxns e Maxnm são constantes também definidas anteriormente.
Em seguida são declaradas as variáveis R1,R2 e Ax que pertencem a Propriedade_Geometrica. E as variáveis E,alfa,Gama que pertencem a Propriedade_Mecanica.
Na hora de criar os procedures o compilador rodou sem erros quando eu declarei os mesmos da seguinte forma:
procedure TForm1.Dimensiona_Tracao_Banzo;
procedure TForm1.Dimensiona_Compressao_Banzo(R2,R1,inerc,E: Extended);
procedure TForm1.Dimensiona_Tracao_Diagonal;
procedure TForm1.Dimensiona_Compressao_Diagonal(R2,R1,inerc,E: Extended);
E quando eu vou chamar os procedures no botão que criei dessa maneira, dá erro dizendo que os tipos Extended e 'Propriedade_Geometrica' e 'Propriedade_Mecanica' são incompatíveis,
procedure TForm1.Dimensionar1Click(Sender: TObject);
begin
Dimensiona_Tracao_Banzo;
Dimensiona_Compressao_Banzo(R2,R1,inerc,E: Extended);
Dimensiona_Tracao_Diagonal;
Dimensiona_Compressao_Diagonal(R2,R1,inerc,E: Extended);
end; |
|
| Voltar ao Topo |
|
 |
mobius1qwe Aprendiz

Registrado: Quarta-Feira, 8 de Dezembro de 2010 Mensagens: 146
|
Enviada: Qua Mar 25, 2015 2:19 pm Assunto: |
|
|
| PauloFernandoDM escreveu: | Olha só, o programa está dessa forma: Na Unit Principal, onde estão declaradas todas as variáveis e types, estão declaradas essas duas types (que são as que dão erro)
Propriedade_Geometrica= Array[1..Maxns] of Extended;
Propriedade_Mecanica= Array[1..Maxnm] of Extended;
|
Tá dando erro em alguma dessas linhas?
| PauloFernandoDM escreveu: |
Sendo que esse limite final Maxns e Maxnm são constantes também definidas anteriormente.
Em seguida são declaradas as variáveis R1,R2 e Ax que pertencem a Propriedade_Geometrica. E as variáveis E,alfa,Gama que pertencem a Propriedade_Mecanica.
Na hora de criar os procedures o compilador rodou sem erros quando eu declarei os mesmos da seguinte forma:
procedure TForm1.Dimensiona_Tracao_Banzo;
procedure TForm1.Dimensiona_Compressao_Banzo(R2,R1,inerc,E: Extended);
procedure TForm1.Dimensiona_Tracao_Diagonal;
procedure TForm1.Dimensiona_Compressao_Diagonal(R2,R1,inerc,E: Extended);
E quando eu vou chamar os procedures no botão que criei dessa maneira, dá erro dizendo que os tipos Extended e 'Propriedade_Geometrica' e 'Propriedade_Mecanica' são incompatíveis,
procedure TForm1.Dimensionar1Click(Sender: TObject);
begin
Dimensiona_Tracao_Banzo;
Dimensiona_Compressao_Banzo(R2,R1,inerc,E: Extended);
Dimensiona_Tracao_Diagonal;
Dimensiona_Compressao_Diagonal(R2,R1,inerc,E: Extended);
end; |
Seu erro tá aqui:
| Citação: | procedure TForm1.Dimensionar1Click(Sender: TObject);
begin
Dimensiona_Tracao_Banzo;
-> Dimensiona_Compressao_Banzo(R2,R1,inerc,E: Extended);
Dimensiona_Tracao_Diagonal;
-> Dimensiona_Compressao_Diagonal(R2,R1,inerc,E: Extended);
end
|
Ao chamar uma procedure ce não pode declarar tipos na chamada, só passar variável. |
|
| Voltar ao Topo |
|
 |
PauloFernandoDM Novato

Registrado: Terça-Feira, 24 de Março de 2015 Mensagens: 5
|
Enviada: Qua Mar 25, 2015 2:54 pm Assunto: Mobius, Entendi |
|
|
Ok, eu retirei os parâmetros dos procedures Dimensiona_Compressao. Só que agora, somente nos dois de Compressão está dando erro que não existem parâmetros suficientes.
linha 1700 Dimensiona_Tracao_Banzo;
linha 1701 Dimensiona_Compressao_Banzo;
linha 1702 Dimensiona_Tracao_Diagonal;
linha 1703 Dimensiona_Compressao_Diagonal;
Error (1701): Not enough actual parameters
Error (1703): Not enough actual parameters
Para cada procedure desse eu quero que ele execute e mostre em um novo Form que ainda vou criar, o valor da última variável calculadas pelas fórmulas. Só que essa variável depende de muitas outras. Então na hora de chamar o procedure eu devo colocar qual variável? |
|
| Voltar ao Topo |
|
 |
natanbh1 Colaborador

Registrado: Terça-Feira, 15 de Março de 2011 Mensagens: 3093 Localização: Belo Horizonte - MG
|
Enviada: Qua Mar 25, 2015 3:13 pm Assunto: |
|
|
Você precisa "alimentar" os parâmetros quando chama a procedure.
Você declara:
| Código: |
procedure TForm1.Dimensiona_Compressao_Banzo(R2,R1,inerc,E: Extended);
procedure TForm1.Dimensiona_Compressao_Diagonal(R2,R1,inerc,E: Extended);
|
Durante o código, quando for chamar a procedure você alimenta os parâmetros.
Exemplo:
| Código: | Dimensiona_Compressao_Banzo(1, 2, 3 , 4);
Dimensiona_Compressao_Diagonal(1, 2, 3 , 4); |
Onde coloquei 1, 2, 3, 4 você adiciona os valores corretos para a alimentação da procedure. _________________ ''A persistência é o caminho para o êxito.''
Charlie Chaplin |
|
| Voltar ao Topo |
|
 |
PauloFernandoDM Novato

Registrado: Terça-Feira, 24 de Março de 2015 Mensagens: 5
|
Enviada: Qua Mar 25, 2015 3:45 pm Assunto: Mais explicações |
|
|
| Bom, até então eu entendi em ''alimentar'' o procedure com as variáveis que eu estou declarando, para que ele possa ser executado. O problema é que além dessas variáveis R2,R1,inerc e E, existem outras que dentro do procedure eu declarei para chegar no resultado final que preciso. Acredito que a confusão está se dando devido algumas dessas variáveis serem globais e outras locais. |
|
| Voltar ao Topo |
|
 |
gilsonnrodrigues Moderador

Registrado: Quinta-Feira, 14 de Abril de 2005 Mensagens: 9009 Localização: Governador Valadares-MG
|
Enviada: Qui Mar 26, 2015 8:14 pm Assunto: |
|
|
é pq vc não entendeu nada ainda.
nada tem a ver com nada.
tente uma coisa mais simples |
|
| Voltar ao Topo |
|
 |
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|