Ir para conteúdo

POWERED BY:

Arquivado

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

Arrasted

Erro no Else

Recommended Posts

oi Pessoal sou novo por aqui e estou migrando do VB para o Delphi.

Estava vendo algumas coisas na net. e tenho isso aqui :

 

unit MDI_Principal;

 

interface

 

uses

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

Dialogs, ComCtrls, Menus, ExtCtrls;

 

type

TfrmPrincipal = class(TForm)

MainMenu1: TMainMenu;

Arquivo1: TMenuItem;

Novo1: TMenuItem;

Salvar1: TMenuItem;

Abrir1: TMenuItem;

N1: TMenuItem;

Formatar1: TMenuItem;

Fonte1: TMenuItem;

Janelas1: TMenuItem;

ladoaLado1: TMenuItem;

Horizonatl1: TMenuItem;

Vertical1: TMenuItem;

Cascata1: TMenuItem;

Ajuda1: TMenuItem;

Sobre1: TMenuItem;

Fechar1: TMenuItem;

FecharTodas1: TMenuItem;

N2: TMenuItem;

Imprimir1: TMenuItem;

N3: TMenuItem;

Sair1: TMenuItem;

dlAbrir: TOpenDialog;

dlSalvar: TSaveDialog;

dlFonte: TFontDialog;

dlImprime: TPrintDialog;

Status: TStatusBar;

Timer1: TTimer;

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure Sair1Click(Sender: TObject);

procedure Novo1Click(Sender: TObject);

procedure Horizonatl1Click(Sender: TObject);

procedure Vertical1Click(Sender: TObject);

procedure Cascata1Click(Sender: TObject);

procedure Timer1Timer(Sender: TObject);

procedure Fechar1Click(Sender: TObject);

procedure Salvar1Click(Sender: TObject);

procedure Abrir1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

 

var

frmPrincipal: TfrmPrincipal;

Janelas : integer =1;

 

implementation

 

uses MDI_Texto;

 

{$R *.dfm}

 

procedure TfrmPrincipal.FormClose(Sender: TObject;

var Action: TCloseAction);

Begin

Action := caFree;

frmTexto := NIL;

 

end;

procedure TfrmPrincipal.Sair1Click(Sender: TObject);

begin

close;

end;

 

procedure TfrmPrincipal.Novo1Click(Sender: TObject);

begin

application.CreateForm(TfrmTexto,frmTexto);

frmTexto.Caption := 'Documento'+IntToStr(Janelas);

Inc(Janelas);

 

end;

 

procedure TfrmPrincipal.Horizonatl1Click(Sender: TObject);

begin

TileMode := tbHorizontal;

Tile;

 

end;

 

procedure TfrmPrincipal.Vertical1Click(Sender: TObject);

begin

TileMode := tbVertical;

Tile;

 

end;

 

procedure TfrmPrincipal.Cascata1Click(Sender: TObject);

begin

Cascade;

end;

 

procedure TfrmPrincipal.Timer1Timer(Sender: TObject);

begin

If MDIChildCount <=0 then

Fechar1.Enabled := false;

FecharTodas1.Enabled := false;

Salvar1.Enabled := false;

Imprimir1.Enabled := false;

Formatar1.Enabled := false;

end

Else Erro: Declaration expected but 'ELSE' found to usando um Timer para fechar a janela que esta ativa no momento.

begin

Fechar1.Enabled := true;

FecharTodas1.Enabled := true;

Salvar1.Enabled := true;

Imprimir1.Enabled := true;

Formatar1.Enabled := true;

 

Status.Panels[0].Text := timetostr(now);

end;

 

procedure TfrmPrincipal.Fechar1Click(Sender: TObject);

begin

ActiveMDIChild.Close;

var

i : integer;

begin

for i := MDIChildCount -1 DownTo 0 do

MDIChildren.close;

end;

 

end;

 

procedure TfrmPrincipal.Salvar1Click(Sender: TObject);

begin

with TfrmText(ActiveMDIChild)do

begin

if dlSalvar.FileName = '' then

begin

dlSalvar.FileName := Caption;

end;

if dlSalvar.Execute then

begin

Memo1.LinesSaveToFile(dlSalvar.FileName);

Caption := ExtractFileName(dlSalvar.FileName);

Memo1.Modified := false;

end;

end;

end;

procedure TfrmPrincipal.Abrir1Click(Sender: TObject);

begin

if dlAbrir.Execute then

with TfrmTexto.Create(self) do)

begin

Memo1.Lines.LoadFromFile(dlAbrir.FileName);

Caption := ExtractFileName(dlAbrir.FileName);

Memo1.Modified := false;

end;

end;

end.

Compartilhar este post


Link para o post
Compartilhar em outros sites

É PORQUE você ESTA COLOCANDO VARIOS COMANDOS DEPOIS DO IF ( ) THEN E QUANDO É ASSIM você DEVE INICIAR COM O BEGINEXPERIMENTA COLOCAR (BEGIN) DEPOIS DO COMANDOBEGINIf MDIChildCount <=0 thenBEGINFechar1.Enabled := false;FecharTodas1.Enabled := false;Salvar1.Enabled := false;Imprimir1.Enabled := false;Formatar1.Enabled := false;end Else beginFechar1.Enabled := true;FecharTodas1.Enabled := true;Salvar1.Enabled := true;Imprimir1.Enabled := true;Formatar1.Enabled := true;Status.Panels[0].Text := timetostr(now);end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

procedure TfrmPrincipal.Timer1Timer(Sender: TObject);

begin

If MDIChildCount <=0 then //Está faltando Begin

Fechar1.Enabled := false;

FecharTodas1.Enabled := false;

Salvar1.Enabled := false;

Imprimir1.Enabled := false;

Formatar1.Enabled := false;

end

Else Erro: Declaration expected but 'ELSE' found to usando um Timer para fechar a janela que esta ativa no momento.

begin

Fechar1.Enabled := true;

FecharTodas1.Enabled := true;

Salvar1.Enabled := true;

Imprimir1.Enabled := true;

Formatar1.Enabled := true;

// Ficou faltando o End; do else

Status.Panels[0].Text := timetostr(now);

end; Este end é do begin da procedure

 

Eu aconselho logo quando você abrir um bloco, já fechá-lo, caso queira que o delphi monte para você, basta pressionar CTRL+SHIFT+C e escolher a estrutura do bloco.

 

Até mais.

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.