ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Criando form em subform

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
grandetilismo
Novato
Novato


Registrado: Terça-Feira, 19 de Setembro de 2017
Mensagens: 2

MensagemEnviada: Ter Set 19, 2017 9:59 pm    Assunto: Criando form em subform Responder com Citação

Boa noite pessoal, estou iniciando meu aprendizado em programação e estou usando o Delphi 7 para minha primeira aplicação real, mas criei um form que é o menu principal e tem o segundo menu que é ativo por um botão e o form principal fica hide, até aí tudo bem, mas quando no segundo form tento abrir um 3 form, ele aceita no código a referência do 3 form.show mas quando clico não acontece nada, lembrando que já adicionei as units no projeto e elas se vem mas não consigo abrir forms a partir do segundo form, o que devo fazer? Obrigado a quem puder me ajudar Sad
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
leo_cj
Colaborador
Colaborador


Registrado: Sábado, 26 de Março de 2011
Mensagens: 1335

MensagemEnviada: Qua Set 20, 2017 8:55 am    Assunto: Responder com Citação

Chega a ocorrer algum erro ou simplesmente não acontece nada?

verifique se o form3 está com a propriedade Visible = True, e se possível, posta o código aqui no fórum para o pessoal poder analisar
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
grandetilismo
Novato
Novato


Registrado: Terça-Feira, 19 de Setembro de 2017
Mensagens: 2

MensagemEnviada: Qua Set 20, 2017 9:25 am    Assunto: Responder com Citação

Form principal - só ignore os comentários, eu estou aprendendo aí fico fazendo testes.
unit Principal;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, jpeg, ExtCtrls, StdCtrls;

type
TMain_POE = class(TForm)
Image1: TImage;
Sobre_btn: TButton;
Classes_btn: TButton;
Passivas_btn: TButton;
Galeria_btn: TButton;
SiteOficial_btn: TButton;
procedure Classes_btnClick(Sender: TObject);
procedure Sobre_btnClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Main_POE: TMain_POE;

implementation

uses classesform, marauder_desc;

{$R *.dfm}

procedure TMain_POE.Classes_btnClick(Sender: TObject);
begin
Main_POE.hide;
{ if not assigned(classes_form) then classes_form := classes_form.Create(Self);}
// classes_form.Showmodal;

//Form2.ShowModal;
classes_form.showmodal;
end;

procedure TMain_POE.Sobre_btnClick(Sender: TObject);
begin
//marauder.showmodal;
end;

end.

Segundo form
unit classesform;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, jpeg, ExtCtrls;

type
TClasses_form = class(TForm)
fundochar: TImage;
voltar_btn: TButton;
marauder_form: TImage;
ranger: TImage;
witch: TImage;
duelist: TImage;
templar: TImage;
shadow: TImage;
scion: TImage;
class_desc: TMemo;
Label1: TLabel;
procedure voltar_btnClick(Sender: TObject);
procedure class_descChange(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure marauder_formClick(Sender: TObject);
procedure rangerClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Classes_form: TClasses_form;

implementation

uses Principal, marauder_desc, rangerdes;

{$R *.dfm}

procedure TClasses_form.voltar_btnClick(Sender: TObject);
begin
classes_form.close;
Main_POE.show;
end;

procedure TClasses_form.class_descChange(Sender: TObject);
begin
class_desc.Lines.LoadFromFile('C:\Projetos\Path of Exile Wiki\class_desc.txt')
end;

procedure TClasses_form.Button1Click(Sender: TObject);
begin
//class_desc.Lines.LoadFromFile('C:\Projetos\Path of Exile Wiki\class_desc.txt')
//marauder.show;
end;

procedure TClasses_form.marauder_formClick(Sender: TObject);
begin
if not assigned(marauder_form) then marauder_form := marauder_form.Create(Self);
marauder_form.Show;
//classes_form.hide;
end;

procedure TClasses_form.rangerClick(Sender: TObject);
begin
//classes_form.hide;
ranger.show;
end;

end.

form que quero abrir a partir do segundo
unit marauder_desc;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;

type
Tmarauder_form = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
end;

var
marauder_form: Tmarauder_form;

implementation

{$R *.dfm}

end.

cheguei até a fazer outro form para tentar mas também não deu
unit rangerdes;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;

type
Trangerdesc = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
end;

var
rangerdesc: Trangerdesc;

implementation

{$R *.dfm}

end.

O que devo fazer? E obrigado por estar tentando me ajudar.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
natanbh1
Colaborador
Colaborador


Registrado: Terça-Feira, 15 de Março de 2011
Mensagens: 3093
Localização: Belo Horizonte - MG

MensagemEnviada: Qua Set 20, 2017 9:52 am    Assunto: Responder com Citação

Creio que o seu erro seja na criação do form marauder_form.

Troque:
Código:
marauder_form := marauder_form.Create(Self);

Por
Código:
marauder_form := Tmarauder_form.Create(Self);


Repare que você usou a instância (marauder_form) e não a classe do form (Tmaurader_form) antes do Create.

Vai ficar assim o código de completo para chamar:
Código:
procedure TClasses_form.marauder_formClick(Sender: TObject);
begin
  if not assigned(marauder_form) then
    marauder_form := Tmarauder_form.Create(Self);
  marauder_form.Show;
  // classes_form.hide;
end;

_________________
''A persistência é o caminho para o êxito.''
Charlie Chaplin
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB