Tela de Registro

Delphi

02/08/2005

Olá amigos,
Tenho uma grande dúvida sobre as telas de Códigos Seriais. É o seguinte, peguei da net um programa para registro de Números de Séries, ele vem com dois Forms (Um para Gerar o Número Sérial, e o outro para colocar no seu Sistema), ai está minha dúvida, como faço para colocar o que pede o número serial no meu sistema, o meu sistema está com o fsMDIForm, tentei colocá-lo para abrir primeiro que o meu sistema mas não deu.
O programa de Serial funciona da seguinte maneira, na propriedade onCreate do programa para travar o sistema está:
Se o número do Edit não estiver correto ele fecha a janela (Close;) se estiver correto ele faz outra (no caso estava configurado para Fechar se o número estivesse incorreto e mudar o Capion do form para registrado se estivesse correto.

Alguém pode me ajudar.

Rodrigo.
t+
rodrigorpb@bol.com.br


Rodrigorpb

Rodrigorpb

Curtidas 0

Respostas

Massuda

Massuda

02/08/2005

Faça como se fosse um form de login. No OnCreate do seu form principal, coloque algo assim...:
procedure TSeuForm.FormCreate(...
var
  Form: TSeuFormDeRegistro;
...
  Form := TSeuFormDeRegistro.Create(nil);
  try 
    // exiba o form; dependendo do caso,
    // pode ter que tratar o retorno de ShowModal
    Form.ShowModal;

    if ...cancelou/registro inválido... then begin
      Halt; 
    end;
  finally
    FreeAndNil(Form);
  end;
...
...adapte de acordo com suas necessidade; não entendi os detalhes de como você vai determinar se o usuário registrou e se o registro é válido.


GOSTEI 0
Rodrigorpb

Rodrigorpb

02/08/2005

Olá Massuda,
As propriedades do Form do Registro são essas abaixo:

procedure TTelaRegistro.FormActivate(Sender: TObject);
begin
// pega o número do HD.
edIdentificacao.Caption := format(´¬d´,[MachineModifier]);
end;

procedure TTelaRegistro.Memo1Enter(Sender: TObject);
begin
// posiciona sobre um serial que vc mesmo cria com números max. 10
edtSerial.SetFocus;
end;

procedure TTelaRegistro.btRegistraClick(Sender: TObject);
var
SerialNum : longint;
begin
// Válida o número serial
try
SerialNum := StrToInt(edtSerial.Text);
except
MessageDlg(´Código inválido! Verifique o número.´, mtError, [mbOK], 0);
edtSerial.SetFocus;
edtSerial.SelectAll;
exit;
end;

// Válida o código que vc digitou
if not IsReleaseCodeValid (edtRelease.Text, SerialNum) then begin
MessageDlg(´Número de Série inválido! Verifique o número.´, mtError, [mbOK], 0);
edtRelease.SetFocus;
edtRelease.Text := ´´;
exit;
end else begin
MessageDlg(´O Sistema está liberado.´, mtInformation, [mbOK], 0);
SaveRegistrationInformation(edtRelease.Text, SerialNum);
Close;
end;

procedure TTelaRegistro.FormCreate(Sender: TObject);
var
ReleaseCodeString: string;
var SerialNumber : longint;
begin
// AQUI PASSA SE É VÁLIDO OU NÃO.
GetRegistrationInformation (ReleaseCodeString, SerialNumber);
if not IsReleaseCodeValid (ReleaseCodeString, SerialNumber) then
TelaRegistro.close;
else
TelaRegistro.Caption := ´Registrado!´;
end;
end;


GOSTEI 0
Dpinho

Dpinho

02/08/2005

o que significa ´MachineModifier´?
que numero é este?
Sera que é o mesmo numero que retornar quando precionamos a combinação de cftl+shit+G?

Preciso descobrir um numero unico para cada maquina mesmo que formatada o hd ou reinstalado o sistema operacional ou atualizado ele não altere


GOSTEI 0
POSTAR