Ir para conteúdo

POWERED BY:

Arquivado

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

Pedro Linhares_168888

Erro "Unsatisfied forward or external declaration" Delphi 7

Recommended Posts

Boa tarde.

Estou com um pequeno problema em delphi e realmente não consigo achar a solução. Eis o código:

unit Unit1;
 
interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DosCommand, StdCtrls;
 
type
  TForm1 = class(TForm)
    Label1: TLabel;
    Label4: TLabel;
    GroupBox1: TGroupBox;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    procedure FormCreate(Sender: TObject);
    procedure line(Sender: TObject; NewLine: string; OutputType: TOutputType);
    procedure finished(sender:tobject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  DOS:TDosCommand;

implementation
 
{$R *.dfm}
 
procedure TForm1.FormCreate(Sender: TObject);
begin
DOS:=TDosCommand.Create(form1);
DOS.OnNewLine:=line;
DOS.OnTerminated:=finished;

DOS.CommandLine:='';
DOS.Execute;
end;
 
procedure line(Sender: TObject; NewLine: string; OutputType: TOutputType);
begin
if NewLine='offline' then showmessage('teste2');
end;

procedure finished(sender:tobject);
begin
showmessage('teste');
end;

end.

 

Realmente não consigo achar o erro, que o Delphi acusa de ser:

[Error] Unit1.pas(18): Unsatisfied forward or external declaration: 'TForm1.line'
[Error] Unit1.pas(19): Unsatisfied forward or external declaration: 'TForm1.finished'
[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'

 

O erro está nas linhas 18/19:

procedure line(Sender: TObject; NewLine: string; OutputType: TOutputType);
procedure finished(sender:tobject);

 

Grato desde já,

Pedro

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigo.

 

Você não está passando para suas duas procedures a sua origem no momento de implementá-las, por isso está acontecendo o problema citado.

 

O correto nesse caso, seria você ter algo assim:

 

 

procedure TForm1.line(Sender: TObject; NewLine: string; OutputType: TOutputType); 
begin 
  if NewLine='offline' then 
    showmessage('teste2'); 
end; 

procedure TForm1.finished(sender:tobject); 
begin 
  showmessage('teste'); 
end;

Até a próxima. :thumbsup:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigo.

 

Você não está passando para suas duas procedures a sua origem no momento de implementá-las, por isso está acontecendo o problema citado.

 

O correto nesse caso, seria você ter algo assim:

 

 

 

procedure TForm1.line(Sender: TObject; NewLine: string; OutputType: TOutputType); 
begin 
  if NewLine='offline' then 
    showmessage('teste2'); 
end; 

procedure TForm1.finished(sender:tobject); 
begin 
  showmessage('teste'); 
end;

Até a próxima. :thumbsup:

Valeu. Funcionou aqui.

Obrigado,

Pedro

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.