[delphi-br] Ajuda em procedure
Oi pessoal sei que minha duvida é banal, mas é que to começando agora. é o seguinte eu fiz um record type tpersonagem = record nome: string; vida: boolean; hp: 1..999; end; e por aí vai. dai eu coloco: Var mago,guerreiro: tpersonagem; agora vem o problema, queria usar esse record para varios personagens e para diminuir o codigo queria fazer uma procedure que mexesse com todos, tipo: procedure carrega_informacoes(pers: tpersonagem); begin pers.nome:= ; pers.vida:= ; pers.hp:= xxx; end; teria que chamar assim: carrega_informacoes(mago); mas não estou conseguindo, é como se o tpersonagem não fizesse parte do formulario, ou do codigo, sei lá. ele simplesmente não aparece como algo valido. alguem sabe como me ajudar? obrigado. Eric Wesley (AXL) -- FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] ou [EMAIL PROTECTED] Links do Yahoo! Grupos * Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ * Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] * O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
[delphi-br] Ajuda em Procedure
Oi Pessoal, estou tentando fazer uma Procedure que abra os fomulários (assim em cada botão eu só coloco a chamada pra Procedure) mas, não está dando certo...o erro aparece nas duas linhas em negrito Alguém pode dar uma ajudinhao código que eu fiz foi esse: Uso Delphi 5... procedure ShowForm(Sender: TObject; v_NomeForm : String); var v_ClasseForm: String; begin v_ClasseForm := 'T'+ v_NomeForm; if TForm(Sender) = NIL then begin if DM_FDM2.Q_Permissoes.Locate('DSC_ID', v_NomeForm,[loCaseInsensitive]) then begin Application.CreateForm(TFormClass(Sender), TForm(Sender)); TForm(Sender).ShowModal; end else begin MessageDlg('Usuário Sem Acesso A Esse Módulo!',mtInformation,[mbOk],0); end; end; Richard Wagner [EMAIL PROTECTED] [EMAIL PROTECTED] ICQ: 171647537 ...E se a música parar, só restará o som da chuva, toda a esperança e glória, todo o sacrifício em vão. E se o amor remanescer, mesmo tudo estando perdido, nós pagaremos o preço e não contaremos o custo... Neil Peart -- FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] ou [EMAIL PROTECTED] Links do Yahoo! Grupos * Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ * Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] * O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [delphi-br] Ajuda em Procedure
O negrito não apareceu pra mim... Tente fazer o seguinte: procedure ShowForm(Sender: TObject; v_NomeForm : String); var v_ClasseForm: String; begin v_ClasseForm := 'T'+ v_NomeForm; if ((Sender as TForm) = NIL) then begin if DM_FDM2.Q_Permissoes.Locate('DSC_ID', v_NomeForm,[loCaseInsensitive]) then begin Application.CreateForm(GetClass(v_ClasseForm), TForm(Sender)); TForm(Sender).ShowModal; end else begin MessageDlg('Usuário Sem Acesso A Esse Módulo!',mtInformation,[mbOk],0); end; end; Espero que ajude. Nielsen [EMAIL PROTECTED] On Thu, 2 Dec 2004 10:27:34 -0200, [EMAIL PROTECTED] [EMAIL PROTECTED] wrote: Oi Pessoal, estou tentando fazer uma Procedure que abra os fomulários (assim em cada botão eu só coloco a chamada pra Procedure) mas, não está dando certo...o erro aparece nas duas linhas em negrito Alguém pode dar uma ajudinhao código que eu fiz foi esse: Uso Delphi 5... procedure ShowForm(Sender: TObject; v_NomeForm : String); var v_ClasseForm: String; begin v_ClasseForm := 'T'+ v_NomeForm; if TForm(Sender) = NIL then begin if DM_FDM2.Q_Permissoes.Locate('DSC_ID', v_NomeForm,[loCaseInsensitive]) then begin Application.CreateForm(TFormClass(Sender), TForm(Sender)); TForm(Sender).ShowModal; end else begin MessageDlg('Usuário Sem Acesso A Esse Módulo!',mtInformation,[mbOk],0); end; end; Richard Wagner [EMAIL PROTECTED] [EMAIL PROTECTED] ICQ: 171647537 ...E se a música parar, só restará o som da chuva, toda a esperança e glória, todo o sacrifício em vão. E se o amor remanescer, mesmo tudo estando perdido, nós pagaremos o preço e não contaremos o custo... Neil Peart -- FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] ou [EMAIL PROTECTED] Links do Yahoo! Grupos -- FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] ou [EMAIL PROTECTED] Links do Yahoo! Grupos * Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ * Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] * O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [delphi-br] Ajuda em Procedure
Nielsen, tentei da forma que vc me mandou e o erro aparece nas seguintes linhas: Application.CreateForm(TFormClass(Sender), TForm(Sender)); TForm(Sender).ShowModal; O erro é esse: EAccessViolation with message 'Acess violation at adress 004530D0 in module 'MExpress.exe'. Read of adress FFF4' Tentei usar o GetClass como vc sugeriu e apareceu a seguinte mensagem: Incompatible Types 'TComponentClass' an 'TPersistentClass' Richard Nielsen Cassiano Para: [EMAIL PROTECTED] Simões cc: [EMAIL PROTECTED] Assunto: Re: [delphi-br] Ajuda em Procedure .com 02/12/2004 13:49 Favor responder a delphi-br O negrito não apareceu pra mim... Tente fazer o seguinte: procedure ShowForm(Sender: TObject; v_NomeForm : String); var v_ClasseForm: String; begin v_ClasseForm := 'T'+ v_NomeForm; if ((Sender as TForm) = NIL) then begin if DM_FDM2.Q_Permissoes.Locate('DSC_ID', v_NomeForm,[loCaseInsensitive]) then begin Application.CreateForm(GetClass(v_ClasseForm), TForm(Sender)); TForm(Sender).ShowModal; end else begin MessageDlg('Usuário Sem Acesso A Esse Módulo!',mtInformation,[mbOk],0); end; end; Espero que ajude. Nielsen [EMAIL PROTECTED] On Thu, 2 Dec 2004 10:27:34 -0200, [EMAIL PROTECTED] [EMAIL PROTECTED] wrote: Oi Pessoal, estou tentando fazer uma Procedure que abra os fomulários (assim em cada botão eu só coloco a chamada pra Procedure) mas, não está dando certo...o erro aparece nas duas linhas em negrito Alguém pode dar uma ajudinhao código que eu fiz foi esse: Uso Delphi 5... procedure ShowForm(Sender: TObject; v_NomeForm : String); var v_ClasseForm: String; begin v_ClasseForm := 'T'+ v_NomeForm; if TForm(Sender) = NIL then begin if DM_FDM2.Q_Permissoes.Locate('DSC_ID', v_NomeForm,[loCaseInsensitive]) then begin Application.CreateForm(TFormClass(Sender), TForm(Sender)); TForm(Sender).ShowModal; end else begin MessageDlg('Usuário Sem Acesso A Esse Módulo!',mtInformation,[mbOk],0); end; end; Richard Wagner [EMAIL PROTECTED] [EMAIL PROTECTED] ICQ: 171647537 ...E se a música parar, só restará o som da chuva, toda a esperança e glória, todo o sacrifício em vão. E se o amor remanescer, mesmo tudo estando perdido, nós pagaremos o preço e não contaremos o custo... Neil Peart -- FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] ou [EMAIL PROTECTED] Links do Yahoo! Grupos -- FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] ou [EMAIL PROTECTED] Links do Yahoo! Grupos -- FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] ou [EMAIL PROTECTED] Links do Yahoo! Grupos * Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ * Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] * O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [delphi-br] Ajuda em Procedure
Eu estava sem o Delphi, agora já testei e deu certo. O código abaixo tem algumas alterações que funcionárão. A princípio, percebi que vc tem que registrar (o que pode ser feito em uma única linha, todas as classes que vc vai utilizar antes de chamar GetClass. Eis o código: v_ClasseForm := 'T'+ v_NomeForm; if ((Sender as TForm) = NIL) then begin if True then begin RegisterClasses([TForm2]); Classe := GetClass(v_ClasseForm); Application.CreateForm(TComponentClass(Classe), TForm(Sender)); TForm(Sender).ShowModal; end else begin MessageDlg('Usuário Sem Acesso A Esse Módulo!',mtInformation,[mbOk],0); end; end; Onde TForm2 é apenas um exemplo que testei pra ver se funcionava. O array pode conter todas as classes que vc precisa. E se chamar 2 vezes não dá pau. Nielsen On Thu, 2 Dec 2004 14:34:40 -0200, [EMAIL PROTECTED] [EMAIL PROTECTED] wrote: Nielsen, tentei da forma que vc me mandou e o erro aparece nas seguintes linhas: Application.CreateForm(TFormClass(Sender), TForm(Sender)); TForm(Sender).ShowModal; O erro é esse: EAccessViolation with message 'Acess violation at adress 004530D0 in module 'MExpress.exe'. Read of adress FFF4' Tentei usar o GetClass como vc sugeriu e apareceu a seguinte mensagem: Incompatible Types 'TComponentClass' an 'TPersistentClass' Richard Nielsen Cassiano Para: [EMAIL PROTECTED] Simões cc: [EMAIL PROTECTED] Assunto: Re: [delphi-br] Ajuda em Procedure .com 02/12/2004 13:49 Favor responder a delphi-br O negrito não apareceu pra mim... Tente fazer o seguinte: procedure ShowForm(Sender: TObject; v_NomeForm : String); var v_ClasseForm: String; begin v_ClasseForm := 'T'+ v_NomeForm; if ((Sender as TForm) = NIL) then begin if DM_FDM2.Q_Permissoes.Locate('DSC_ID', v_NomeForm,[loCaseInsensitive]) then begin Application.CreateForm(GetClass(v_ClasseForm), TForm(Sender)); TForm(Sender).ShowModal; end else begin MessageDlg('Usuário Sem Acesso A Esse Módulo!',mtInformation,[mbOk],0); end; end; Espero que ajude. Nielsen [EMAIL PROTECTED] On Thu, 2 Dec 2004 10:27:34 -0200, [EMAIL PROTECTED] [EMAIL PROTECTED] wrote: Oi Pessoal, estou tentando fazer uma Procedure que abra os fomulários (assim em cada botão eu só coloco a chamada pra Procedure) mas, não está dando certo...o erro aparece nas duas linhas em negrito Alguém pode dar uma ajudinhao código que eu fiz foi esse: Uso Delphi 5... procedure ShowForm(Sender: TObject; v_NomeForm : String); var v_ClasseForm: String; begin v_ClasseForm := 'T'+ v_NomeForm; if TForm(Sender) = NIL then begin if DM_FDM2.Q_Permissoes.Locate('DSC_ID', v_NomeForm,[loCaseInsensitive]) then begin Application.CreateForm(TFormClass(Sender), TForm(Sender)); TForm(Sender).ShowModal; end else begin MessageDlg('Usuário Sem Acesso A Esse Módulo!',mtInformation,[mbOk],0); end; end; Richard Wagner [EMAIL PROTECTED] [EMAIL PROTECTED] ICQ: 171647537 ...E se a música parar, só restará o som da chuva, toda a esperança e glória, todo o sacrifício em vão. E se o amor remanescer, mesmo tudo estando perdido, nós pagaremos o preço e não contaremos o custo... Neil Peart -- FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] ou [EMAIL PROTECTED] Links do Yahoo! Grupos * Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ * Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] * O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
[delphi-br] Ajuda em Procedure (Desculpa)
Peço desculpas a todos o integrantes do grupo, tive um problema no meu navegador e as mens se repetiram. Eu também cometi um engano no meu código, eu não tinha testado, isso nao vai se repetir... Aqui esta o codigo menos pior... mais uma vez perdão... procedure TForm1.ShowForm(Form: TForm); begin Form.ShowModal; Form.Release; end; procedure TForm1.Button1Click(Sender: TObject); begin ShowForm(TForm2.Create(application)); end; Valmir Santana [EMAIL PROTECTED] -- FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] ou [EMAIL PROTECTED] Links do Yahoo! Grupos * Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ * Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] * O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
Re: [delphi-br] Ajuda em Procedure
e essa variável Classe é de que tipo Nielsen Cassiano Para: [EMAIL PROTECTED] Simões cc: [EMAIL PROTECTED] Assunto: Re: [delphi-br] Ajuda em Procedure .com 02/12/2004 15:18 Favor responder a delphi-br Eu estava sem o Delphi, agora já testei e deu certo. O código abaixo tem algumas alterações que funcionárão. A princípio, percebi que vc tem que registrar (o que pode ser feito em uma única linha, todas as classes que vc vai utilizar antes de chamar GetClass. Eis o código: v_ClasseForm := 'T'+ v_NomeForm; if ((Sender as TForm) = NIL) then begin if True then begin RegisterClasses([TForm2]); Classe := GetClass(v_ClasseForm); Application.CreateForm(TComponentClass(Classe), TForm(Sender)); TForm(Sender).ShowModal; end else begin MessageDlg('Usuário Sem Acesso A Esse Módulo!',mtInformation,[mbOk],0); end; end; Onde TForm2 é apenas um exemplo que testei pra ver se funcionava. O array pode conter todas as classes que vc precisa. E se chamar 2 vezes não dá pau. Nielsen On Thu, 2 Dec 2004 14:34:40 -0200, [EMAIL PROTECTED] [EMAIL PROTECTED] wrote: Nielsen, tentei da forma que vc me mandou e o erro aparece nas seguintes linhas: Application.CreateForm(TFormClass(Sender), TForm(Sender)); TForm(Sender).ShowModal; O erro é esse: EAccessViolation with message 'Acess violation at adress 004530D0 in module 'MExpress.exe'. Read of adress FFF4' Tentei usar o GetClass como vc sugeriu e apareceu a seguinte mensagem: Incompatible Types 'TComponentClass' an 'TPersistentClass' Richard Nielsen Cassiano Para: [EMAIL PROTECTED] Simões cc: [EMAIL PROTECTED] Assunto: Re: [delphi-br] Ajuda em Procedure .com 02/12/2004 13:49 Favor responder a delphi-br O negrito não apareceu pra mim... Tente fazer o seguinte: procedure ShowForm(Sender: TObject; v_NomeForm : String); var v_ClasseForm: String; begin v_ClasseForm := 'T'+ v_NomeForm; if ((Sender as TForm) = NIL) then begin if DM_FDM2.Q_Permissoes.Locate('DSC_ID', v_NomeForm,[loCaseInsensitive]) then begin Application.CreateForm(GetClass(v_ClasseForm), TForm(Sender)); TForm(Sender).ShowModal; end else begin MessageDlg('Usuário Sem Acesso A Esse Módulo!',mtInformation,[mbOk],0); end; end; Espero que ajude. Nielsen [EMAIL PROTECTED] On Thu, 2 Dec 2004 10:27:34 -0200, [EMAIL PROTECTED] [EMAIL PROTECTED] wrote: Oi Pessoal, estou tentando fazer uma Procedure que abra os fomulários (assim em cada botão eu só coloco a chamada pra Procedure) mas, não está dando certo...o erro aparece nas duas linhas em negrito Alguém pode dar uma ajudinhao código que eu fiz foi esse: Uso Delphi 5... procedure ShowForm(Sender: TObject; v_NomeForm : String); var v_ClasseForm: String; begin v_ClasseForm := 'T'+ v_NomeForm; if TForm(Sender) = NIL then begin if DM_FDM2.Q_Permissoes.Locate('DSC_ID', v_NomeForm,[loCaseInsensitive]) then begin Application.CreateForm(TFormClass(Sender), TForm(Sender)); TForm(Sender).ShowModal; end else begin MessageDlg('Usuário Sem Acesso A Esse Módulo!',mtInformation,[mbOk],0); end; end; Richard Wagner [EMAIL PROTECTED] [EMAIL PROTECTED] ICQ: 171647537
Re: [delphi-br] Ajuda em Procedure
Nielsen, deu certo... Muitíssimo obrigado.. Richard -- FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] ou [EMAIL PROTECTED] Links do Yahoo! Grupos * Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ * Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] * O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html