Problema em conversão Binário para Decimal.

Delphi

25/08/2016

Após pesquisar muito, estou tentando fazer um código que faça a conversão. Porém encontro dificuldades para trabalhar com functions, as declaro porém na hora de compilar dá um erro "Forward declaration not Solved "IntToBin(AnsiString):Longint;".

Está faltando alguma biblioteca no uses?

unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, Windows, Messages, StdCtrls;
type
  TForm1 = class(TForm)
  private
    function BinToInt(Value: String): LongInt;
  public
    { public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.lfm}

/
function BinToInt(Value: LongInt;Size: Integer): String;

var
i: Integer;
begin
Result:='';
for i:=Size downto 0 do
begin
if Value and (1 shl i)<>0 then
begin
Result:=Result+'1';
end
else
begin
Result:=Result+'0';
end;
end;
end;

end.
           


Agradeço pela atenção.
Eric Melvin

Eric Melvin

Curtidas 0

Melhor post

Jonatas Alves

Jonatas Alves

26/08/2016

Olá,

complementando o que o Sr. Jones Granatyr respondeu:

Olá!

A função declarada na seção private está diferente da que está em implementation, por isso está gerando erro (os parâmetros estão diferentes). Uma dica é você apertar CTRL+SHIFT+C, assim será gerada a função em implementation conforme o que estiver definido no private

Jones


o processo convencional para se criar um método, seja function ou procedure é:

* Declare a função na sessão private ou public da classe em questão ( neste caso em TForm1 ) e então pressionar simultaneamente as teclas CTRL + SHIFT + C, desta forma, o Delphi declara o cabeçalho da função:

<metodo> Classe.<nomeDoMetodo([parametros])[result] ;
begin
end ;

caso, se faça o caminho contrário, é usado em alguma situações, é necessário obedecer estas diretrizes básicas, ou seja:

* cria-se a função:

procedure TFrmMain.somaNumeros(valor1, valor2: integer) ;
begin

showmessage( inttostr( valor1 + valor2 ) ) ;

end ;

* declara-se a função:

TForm1 = class(TForm)
private
{ private declarations }
public
{ public declarations }
procedure somaNumeros(valor1, valor2: integer) ;
end;

sempre se atentando aos nome utilizados tanto o do método quanto os parâmetros.

espero que tenha de ajudado!

grato!
GOSTEI 2

Mais Respostas

Jones Granatyr

Jones Granatyr

25/08/2016

Olá!

A função declarada na seção private está diferente da que está em implementation, por isso está gerando erro (os parâmetros estão diferentes). Uma dica é você apertar CTRL+SHIFT+C, assim será gerada a função em implementation conforme o que estiver definido no private

Jones
GOSTEI 1
Eric Melvin

Eric Melvin

25/08/2016

Obrigado agora eu finalmente compreendi como funciona, agora está compilando está function. Porém, como faço para que as Labels e Botões que eu inserir na form "conversem" com a function?

Trabalho desde sempre com procedures, o que é teoricamente mais fácil. Nunca trabalhei com functions.
GOSTEI 0
POSTAR