Procedure com TypeCast

23/02/2006

0

Oi tenho a seguinte procedimento:

  with TForm2.Create(nil) do 
  begin 
    BorderStyle := bsNone; 
    Align := alClient; // Sim, Align serve para alguma coisa em forms! 
    Parent := TabSheet1; 
    (Parent as TTabSheet).Caption := Caption; 
    Show; 
  end; 


Porém isto será usado várias vezes, então quero criar uma procedure

fiz:
Procedure AbrirfrmIn(Vform:Tcomponent; frmpai:Tform; local:Tcomponent);
begin
with (Vform as Tform).Create(frmPai) do
  begin
    BorderStyle := bssingle;
    Bordericons:= [];
    FormStyle:= fsNormal;
    Align := alClient;
    Parent := local;
    show;
  end;
end;


Porém da o seguinte erro:

[Pascal Error] UnitFuncao.pas(67): E2382 Cannot call constructors using instance variables


também tentei usando:
Procedure AbrirfrmIn(Vform:TcomponentClass <-Aqui mudou; frmpai:Tform; local:Tcomponent);


Erro:
[Pascal Error] UnitFuncao.pas(67): E2015 Operator not applicable to this operand type


Algém tem alguma dica?


Sistemald

Sistemald

Responder

Posts

23/02/2006

Sistemald

Galera consegui.

na verdade eu não precisa fazer um typecast, e sim saber a classe.

o resultado final é esse:

Procedure AbrirfrmIn(Vform:TFormClass; frmpai:Tform; local:TwinControl);
begin
with Vform.Create(frmPai) do
  begin
    BorderStyle := bssingle;
    Bordericons:= [];
    FormStyle:= fsNormal;
    Align := alClient;
    Parent := local;
    show;
  end;
end;


Com esta procedure eu crio um form de outro componente.


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

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

Aceitar