Fórum Erro ao fechar um MessageDLG personalizado #348686
08/11/2007
0
Meu post anterior eu pedi ajuda de como montar um MessageDLG Personalizado com buttons.
Dai fuçando, fuçando consegui. Agora estou somente com um problema para fechá-lo.
Pois toda vez que mando fechá-lo da erro de ´Acesso violado´
Segue meu código abaixo:
procedure TFormFornecedoresNovo.FormShow(Sender: TObject); var AMsgDialog: TForm; A_Button, B_Button : TButton; begin AMsgDialog := CreateMessageDialog(´Informe sua situação:´, mtConfirmation,[]); A_Button := TButton.Create(AMsgDialog); B_Button := TButton.Create(AMsgDialog); With AMsgDialog do try Caption := ´Minha Caixa de Diálogo Personalizada´; Height := 140; Width := 300; Position := poMainFormCenter; Align := alCustom; BorderStyle := bsSizeable; BorderIcons := [biSystemMenu]; With A_Button do Begin Parent := AMsgDialog; Top := 70; Height := 33; Width := 133; Left := 10; Caption := ´PESSOA FÍSICA´; Font.Style := [fsBold]; TabOrder := 0; ShowHint := True; Hint := ´Escolha esta opção para cadastrar um cliente por situação Física!´; OnClick := ClickPessoaFisica; end; With B_Button do Begin Parent := AMsgDialog; Top := 70; Height := 33; Width := 133; Left := 150; Caption := ´PESSOA JURÍDICA´; Font.Style := [fsBold]; TabOrder := 1; ShowHint := True; Hint := ´Escolha esta opção para cadastrar um cliente por situação Júridica!´; OnClick := ClickPessoaJuridica; end; ShowModal; except A_Button.Free; B_Button.Free; Free; end; end;
public
{ Public declarations }
procedure ClickPessoaJuridica(Sender:TObject);
procedure ClickPessoaFisica(Sender:TObject);
procedure TFormFornecedoresNovo.ClickPessoaFisica(Sender:TObject);
Begin
showmessage(´Opcao PESSOA FISICA ´);
end;
procedure TFormFornecedoresNovo.ClickPessoaJuridica(Sender:TObject);
Begin
showmessage(´Opcao PESSOA JURIDICA ´);
end;
Oque quero é que quando escolhida uma das opções ira abrir o tipo de cadastro e fechar o meu messageDLG personalizado.
Oque não estou sabendo fazer é fechar o MessageDLG sem acontecer o erro de ´Acesso violado´;
Alguem pode me ajudar?
Att.
Devmedia
Curtir tópico
+ 0Posts
08/11/2007
Marcosrocha
Quanto ao seu código, eu copiei e colei no meu Delphi 7 e não deu esse erro, tem algo mais em seu código?
Gostei + 0
08/11/2007
Massuda
Gostei + 0
08/11/2007
Devmedia
Cara, fiz assim, declarei a variavel:
var AMsgDialog: TForm;
Como global, nisso no:
public
{ Public declarations }
procedure ClickPessoaJuridica(Sender:TObject);
procedure ClickPessoaFisica(Sender:TObject);
procedure TFormFornecedoresNovo.ClickPessoaFisica(Sender:TObject);
Begin
showmessage(´Opcao PESSOA FISICA ´);
AMsgDialog.Close;
end;
procedure TFormFornecedoresNovo.ClickPessoaJuridica(Sender:TObject);
Begin
showmessage(´Opcao PESSOA JURIDICA ´);
AMsgDialog.Close;
end;
E deu certo!
A duvida que estou agora é que se atribuo para abrir um Form.
Por exemplo com um TEdit -> Enabled := False;
E no código faço para abrir como True, exemplo:
procedure TFormFornecedoresNovo.ClickPessoaJuridica(Sender:TObject); Begin FormOpcaoFisica.ShowModal; FormOpcaoFisica.EditNome.Enabled := True; AMsgDialog.Close; end; Ele abre o Form, Fecha a messageDLG, mas não Abilita o Campo EditNome. Oque pode ser? Att.
Gostei + 0
08/11/2007
Devmedia
Fala Massuda, blz?
Não havia prestado atenção nisso. Quando chegar em casa, vou fazer o teste, porque aqui não tem Delphi.
Abraço... vlw.
Att.
Gostei + 0
08/11/2007
Marcosrocha
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)