Como chamar o form em WindowsForm

07/05/2004

1

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 !!!).


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
×
+1 DevUP
Acesso diário, +1 DevUP
Parabéns, você está investindo na sua carreira