 |
ActiveDelphi .: O site do programador Delphi! :.
|
Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
grandetilismo Novato

Registrado: Terça-Feira, 19 de Setembro de 2017 Mensagens: 2
|
Enviada: Ter Set 19, 2017 9:59 pm Assunto: Criando form em subform |
|
|
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  |
|
Voltar ao Topo |
|
 |
leo_cj Colaborador

Registrado: Sábado, 26 de Março de 2011 Mensagens: 1335
|
Enviada: Qua Set 20, 2017 8:55 am Assunto: |
|
|
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 |
|
 |
grandetilismo Novato

Registrado: Terça-Feira, 19 de Setembro de 2017 Mensagens: 2
|
Enviada: Qua Set 20, 2017 9:25 am Assunto: |
|
|
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 |
|
 |
natanbh1 Colaborador

Registrado: Terça-Feira, 15 de Março de 2011 Mensagens: 3093 Localização: Belo Horizonte - MG
|
Enviada: Qua Set 20, 2017 9:52 am Assunto: |
|
|
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 |
|
 |
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|