Como chamar o form em WindowsForm

07/05/2004

0

Pessoal sou programador DELPHI e estou desenvolvendo um sistema em DELPHI 8 utilizando o Windws Form (´Estou apanhando!!!´).
Na VCL para chamar um form eu faço o seguinte:
From :=TFrom.create(Application);
try
From.ShowModal;
finally
FreeAndNil(Form);
end;

Isso no Windows From não funciona, então como fazer ????
Camaradas se alguem puder me ajudar ficarei muito grato.
Um grande abraço a todos e fiquem com DEUS (aquele que tudo pode !!!).


Volnei Rebouças

Volnei Rebouças

Responder

Posts

08/05/2004

Bon Jovi

Com .Net acaba o bacalhau de poder programar sem seguir 100¬ a orientação a objetos. Provavelmente vc ta falando de quando se usa variável global da unit, tipo:
[size=9:aaa1f86960]
unit Unit1;

interface

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

type
TForm1 = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
end;
[b:aaa1f86960]
var
Form1: TForm1;
[/b:aaa1f86960]
implementation

{$R *.DFM}

end.
[/size:aaa1f86960]
O Delphi antigo já declara uma variável global Form1. Criar variável fora de uma classe desse modo não é seguir orientação a objetos. Por essa facilidade, muitos programadores usam essa variável que o Delphi cria, o que não é o melhor modo, e sim criar a variável dentro de uma classe.

Outra coisa, o conceito chato de owner no construtor não existe mais, pelo menos nas classes padrões do .Net.

Então, no .net fica assim por exemplo com Delphi8:

uses 
  unitTeste;

...

procedure TfrmPrincipal.Button1_Click(sender: System.Object; e: System.EventArgs);
var
  FormTeste: TfrmTeste;
begin
  FormTeste := TfrmTeste.Create;
  try
    FormTeste.ShowDialog;
  finally
    FormTeste.Dispose;
  end;
end;



Responder

08/05/2004

Beppe

[quote:f240228aab=´Bon Jovi´]O Delphi antigo já declara uma variável global Form1. Criar variável fora de uma classe desse modo não é seguir orientação a objetos. Por essa facilidade, muitos programadores usam essa variável que o Delphi cria, o que não é o melhor modo, e sim criar a variável dentro de uma classe.[/quote:f240228aab]
Esta sua declaração é um pouco ambígua. É um péssimo ato, criar uma instância de uma classe, dentro dela mesma, se não for em um método de classe(class function, static). E criar em uma rotina sem classe, não vejo nada de errado. O problema são com as globais., caso âmenizado com class var´s.

Poderia definir isto melhor?


Responder

08/05/2004

Bon Jovi

´criar uma instância de uma classe, dentro dela mesma´

Onde eu disse isso???????!


Responder

08/05/2004

Beppe

[quote:af2bcbcc7e=´Bon Jovi´]´criar uma instância de uma classe, dentro dela mesma´

Onde eu disse isso???????![/quote:af2bcbcc7e]
Se nem vc sabe, imagina eu... :lol:

Agora sério. Me referia a estes trechos: ´...Criar variável fora de uma classe desse modo não é seguir orientação a objetos...e sim criar a variável dentro de uma classe.´ Não consegui encontrar um fio de lógica, em nenhuma interpretação possível.

Novamente, pode esclarecer?

T+


Responder

08/05/2004

Bon Jovi

Realmente não sei como tirou que eu teria dito q uma váriavel de uma classe X deveria estar sendo instanciada na mesma classe X.

[size=9:4e334e200c]´O Delphi antigo já declara uma variável global Form1. Criar variável fora de uma classe desse modo não é seguir orientação a objetos. Por essa facilidade, muitos programadores usam essa variável que o Delphi cria, o que não é o melhor modo,´[/size:4e334e200c]

Até aí eu disse sobre um mal que o Delphi nativo Win32 permite.

Essa variável Form1 em negrito é o q falei sobre a variável fora da classe:

[size=9:4e334e200c]type
TForm1 = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
end;

[b:4e334e200c]var
Form1: TForm1; [/b:4e334e200c]

implementation

{$R *.DFM} [/size:4e334e200c]


---------------------------------------------------------------------------------

[size=9:4e334e200c]´e sim criar a variável dentro de uma classe.´[/size:4e334e200c]

E nisso eu quis dizer o q fiz no exemplo q eu já tinha mostrado antes, onde ´FormTeste: TfrmTeste´ está sendo instanciada dentro da classe TfrmPrincipal:

procedure TfrmPrincipal.Button1_Click(sender: System.Object; e: System.EventArgs); 
var 
  FormTeste: TfrmTeste; 
begin 
  FormTeste := TfrmTeste.Create; 
  try 
    FormTeste.ShowDialog; 
  finally 
    FormTeste.Dispose; 
  end; 
end;



Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar