Ir para conteúdo
Fórum Script Brasil
  • 0

Procedure para criar formulários


nicolasbraz

Pergunta

Estou com o seguinte código para criar formulários.

procedure Tfrmprincipal.CriaForm (teste:TFormClass; teste2:Tform);
begin
    if not assigned (teste2) then
    begin
        Screen.Cursor := crHourGlass;
       application.createForm(teste, teste2);
      teste2.show;
      Screen.Cursor := crDefault;
  end;
end;
Ele cria o formulário tranquilo o problema é que eu tenho uma biblioteca onde eu preciso alterar algumas funções dos formulários de cadastro, só que quando eu faço referencia aos formulários criados por essa procedure eu recebo o erro de "Acess Violation". O código que eu posso dar como exemplo que me retorna erro é o seguinte.
Frm_Clientes.KeyPreview := True;

Link para o comentário
Compartilhar em outros sites

12 respostass a esta questão

Posts Recomendados

  • 0

Jhonas,

Usei o código.

function TForm1.CriaFormModal(Formulario: TFormClass): Boolean;
begin
With Formulario.Create(Application) do
begin
Try
Result := ShowModal = mrYes;
Form2.Caption := 'aaa';
Finally
Free;
end;
end;
end;
E no botão eu chamo o formulário assim.
If CriaFormModal(TForm2) then
ShowMessage('Pressionou OK!\')
else
ShowMessage('Pressionou Cancela!\')

Usei o exemplo do site (código acima)! E também o meu código ambos dão o mesmo erro.

Eu tinha o código no create e dava o erro passei o código para o show o erro continua então eu coloquei o código em um botão e o erro continua também!

Link para o comentário
Compartilhar em outros sites

  • 0

Não encontrei nenhum erro

unit Unit1;

interface

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

type
    TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}


function CriaFormularioClientes:Boolean;
begin
   With TForm.Create(Application) do
   begin
      Try
        Result := ShowModal = mrOk;
      Finally
        Free;
      end;
   end;
end;

function CriaFormModal(Formulario : TFormClass) : Boolean;
begin
   With Formulario.Create(Application) do
   begin
      Try
        Result := ShowModal = mrYes;
      Finally
        Free;
      end;
   end;
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
   If CriaFormModal(TForm) then
      ShowMessage('Pressionou OK!')
   else
      ShowMessage('Pressionou Cancela!')

end;

procedure TForm1.Button2Click(Sender: TObject);
begin
   If CriaFormularioClientes = true then
      ShowMessage('Pressionou OK!')
   else
      ShowMessage('Pressionou Cancela!')
end;

end.

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Coloquei o seguinte código.

function CriaFormulario:Boolean;
begin
   With TForm.Create(Application) do
   begin
      Try
        Result := Show = mrOk;
      Finally
        Free;
      end;
   end;
end;

Ele não compila e gera erro :(

O compilador aponta para a linha do mrOK.

Editado por nicolasbraz
Link para o comentário
Compartilhar em outros sites

  • 0

Foi mal ... coloquei no lugar errado

seria isso

function CriaFormularioClientes:Boolean;

begin

frmClientes := TfrmClientes.Create(Application);

//frmClientes.ShowModal;

frmClientes.Show;

If frmClientes.ModalResult = mrOk Then

Result := True

Else

Result := False;

frmClientes.Free;

frmClientes := Nil;

End;

abraço

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...