Arrasted 0 Denunciar post Postado Dezembro 7, 2004 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
MARCOS MARTINS 0 Denunciar post Postado Dezembro 8, 2004 É 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
alex_tp 0 Denunciar post Postado Dezembro 8, 2004 Faltou colocar o BEGIN depois do THEN no ifIf MDIChildCount <=0 then BEGIN . . . Compartilhar este post Link para o post Compartilhar em outros sites
Renato Lima 0 Denunciar post Postado Dezembro 9, 2004 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