[delphi-br] Ajuda em procedure

2005-03-07 Por tôpico AXL_ERIC


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

2004-12-02 Por tôpico richard

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

2004-12-02 Por tôpico Nielsen Cassiano Simões

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

2004-12-02 Por tôpico richard


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

2004-12-02 Por tôpico Nielsen Cassiano Simões

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)

2004-12-02 Por tôpico valmsrj


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

2004-12-02 Por tôpico richard


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

2004-12-02 Por tôpico richard


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