Ir para conteúdo

POWERED BY:

Arquivado

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

DouglasP

Function

Recommended Posts

Boa tarde,

galera como seo meio iniciante no delphi nao sei criar funções mto bem

preciso criar 3 funções no casso elas seriam +/- assim:

 

function mainpresente (valor: real): string;

 

// Verifica se o main esta presente

 

function mainpresente (valor: real): string;

if FileExists(Edit5.Text) then

begin

end

else

MessageBox(Handle,PChar('O Arquivo '+ Edit7.Text +' não foi encontrado.'), 'Erro', MB_OK or MB_ICONERROR);

end;

 

// Funcao - versao 1

 

function versao1 (valor: real): string;

winexec (PChar(Edit7.Text+' /connect' + ' /u'+ Edit5.Text + ' /p' + Edit6.Text), sw_normal);

Application.Minimize;

 

// Funcao - versao 2

 

function versao2 (valor: real): string;

winexec (PChar(Edit7.Text+' /connect' + ' /u'+ Edit5.Text + ' /p' + Edit6.Text), sw_normal);

Application.Minimize;

 

e no botão chamar elas,

mais na hora de testa da erro e nao faço ideia do que pode ser

Oque seria?

 

 

Grato.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ai os erros

 

// Verifica se o main esta presente

 

function mainpresente (valor: real): string;

if FileExists(Edit5.Text) then

begin

end

else

MessageBox(Handle,PChar('O Arquivo '+ Edit7.Text +' não foi encontrado.'), 'Erro', MB_OK or MB_ICONERROR);

end;

 

Erro: [Error] Unit1.pas(112): Declaration expected but 'IF' found

 

// Funcao - versao 1

 

function versao1 (valor: real): string;

winexec (PChar(Edit7.Text+' /connect' + ' /u'+ Edit5.Text + ' /p' + Edit6.Text), sw_normal);

Application.Minimize;

end;

 

Erro: [Error] Unit1.pas(112): Unknown directive: 'winexec'

 

 

// Funcao - versao 2

 

function versao2 (valor: real): string;

winexec (PChar(Edit7.Text+' /connect' + ' /u'+ Edit5.Text + ' /p' + Edit6.Text), sw_normal);

Application.Minimize;

end;

 

Erro: [Error] Unit1.pas(113): Unknown directive: 'winexec'

 

Grato.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa noite a todos.

 

O erro está que voce colocou a instrução IF fora do bloco da procedure, assim|:

 

function mainpresente (valor: real): string;
	 .......		   // Erro, cade o Begin daqui.
	 if FileExists(Edit5.Text) then
	 begin
	   
	 end
	 else
		 MessageBox(Handle,PChar('O Arquivo '+ Edit7.Text +' não foi encontrado.'), 'Erro', MB_OK or MB_ICONERROR);
  end;

   // assim é o certo
 
  function mainpresente (valor: real): string;
  begin
	 if FileExists(Edit5.Text) then
	 begin
			  Result := 'Valor de Retorno';
	 end
	 else
		MessageBox(Handle,PChar('O Arquivo '+ Edit7.Text +' não foi encontrado.'), 'Erro', MB_OK or MB_ICONERROR);
   end;

   // assim é o errado
   function versao1 (valor: real): string;
	   // Cadê o Begin daqui

	   winexec (PChar(Edit7.Text+' /connect' + ' /u'+ Edit5.Text + ' /p' + Edit6.Text), sw_normal);
	   Application.Minimize;
   end;

   // Assim é o certo
  function versao1 (valor: real): string;
  begin
	   winexec (PChar(Edit7.Text+' /connect' + ' /u'+ Edit5.Text + ' /p' + Edit6.Text), sw_normal);
	   Application.Minimize;
		   Result := 'Valor String de retorno';
   end;
  
   // A mesma coisa na outra função, voce não a iniciou com a instrução BEGIN

Repare que eu acrescentei um valor String de retorno, pois as Functions precisam retornar os valores pelos quais elas foram declaradas, através da sua variável implícita 'Result', porque senão o erro persistirá.

 

Se voce pretende não retornar valores para a instrução de onde voce invoca as functions, então utilize "Procedures", assim:

 

procedure versao1 (valor: real): string;
begin
	   winexec (PChar(Edit7.Text+' /connect' + ' /u'+ Edit5.Text + ' /p' + Edit6.Text), sw_normal);
	   Application.Minimize;
end;

 

Um abraço

 

Jorge da Silva Abreu

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.