Ir ao conteúdo
  • Cadastre-se

Ajuda no código


kamikaze14

Posts recomendados

Pessoal, estou com um probleminha no meu código.

O programa é pra calcular se um ano é bissexto ou não.

unit Unit3;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, Borland.Vcl.StdCtrls, System.ComponentModel;

type

TForm3 = class(TForm)

Edit1: TEdit;

Label1: TLabel;

Button1: TButton;

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

TData=class

function bissexto:boolean;

constructor create;

end;

var

Form3: TForm3;

implementation

{$R *.nfm}

function bissexto:string;

var

ano:integer;

cond1,cond2,cond3:boolean;

begin

ano:=StrtoInt (Edit1.text);

cond1:=ano mod 4=0;

cond2:=ano mod 100<>0;

cond3:=ano mod 400=0;

if cond1 and cond2 and cond3=true then

result:='O ano é bissexto'

else

result:= 'O ano não é bissexto';

end;

procedure TForm3.Button1Click(Sender: TObject);

var

teste:integer;

begin

TData.create;

Label1.text:=(bissexto);

teste:=StrtoInt (Edit1.text);

end;

end.

O problema está no Edit1.text, dizendo que não foi encontrado.

Se alguém puder me ajudar eu ficarei muito grato.

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Este erro ocorre porque as declarações de procedures/funções não pertencem as mesmas coisas.

A declaração da função:

function bissexto:boolean;

Deveria ter sido colocada dentro da seção "Public" da classe TForm3

Agora veja, se você colocar:

Form3.Edit1.Text;

ao invés de Edit1.Text;

vai funcionar, ou, coloque na seção public do forme:

function bissexto:boolean;

e a funcão posterior ficaria assim:

function TForm3.bissexto:boolean;

segue os 2 codigos completos, veja se eles resolvem (pois não testei, é natal e não quero nem ver delphi :P)

Código 1



interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Borland.Vcl.StdCtrls, System.ComponentModel;

type
TForm3 = class(TForm)
Edit1: TEdit;
Label1: TLabel;
Button1: TButton;
procedure Button1Click(Sender: TObject);

private
{ Private declarations }
public
{ Public declarations }
end;
TData=class
function bissexto:boolean;
constructor create;
end;
var
Form3: TForm3;

implementation
{$R *.nfm}
function bissexto:string;
var
ano:integer;
cond1,cond2,cond3:boolean;
begin
ano:=StrtoInt(Form3.Edit1.text);
cond1:=ano mod 4=0;
cond2:=ano mod 100<>0;
cond3:=ano mod 400=0;
if cond1 and cond2 and cond3=true then
result:='O ano é bissexto'
else
result:= 'O ano não é bissexto';
end;

procedure TForm3.Button1Click(Sender: TObject);
var
teste:integer;
begin
TData.create;
Label1.text:=(bissexto);
teste:=StrtoInt (Edit1.text);
end;

end.
unit Unit3;

Código 2



interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Borland.Vcl.StdCtrls, System.ComponentModel;

type
TForm3 = class(TForm)
Edit1: TEdit;
Label1: TLabel;
Button1: TButton;
procedure Button1Click(Sender: TObject);

private
{ Private declarations }
public
function bissexto:string;
end;
TData=class
constructor create;
end;
var
Form3: TForm3;

implementation
{$R *.nfm}

function TForm3.bissexto:string;
var
ano:integer;
cond1,cond2,cond3:boolean;
begin
ano:=StrtoInt (Edit1.text);
cond1:=ano mod 4=0;
cond2:=ano mod 100<>0;
cond3:=ano mod 400=0;
if cond1 and cond2 and cond3=true then
result:='O ano é bissexto'
else
result:= 'O ano não é bissexto';
end;

procedure TForm3.Button1Click(Sender: TObject);
var
teste:integer;
begin
TData.create;
Label1.text:=(bissexto);
teste:=StrtoInt (Edit1.text);
end;

end.
unit Unit3;

Link para o comentário
Compartilhar em outros sites

Arquivado

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

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...