DM Serial Number Demo
#1
[صورة: attachment.php?aid=4109]



.zip   DM_Serial_11014292016.zip (الحجم : 3.59 ك ب / التحميلات : 121)


الملفات المرفقة
.jpg   PIC20164291640156650.jpg (الحجم : 47.42 ك ب / التحميلات : 117)
قل: اللهم فاطِرَ السماوات والأرض عالم الغيبِ والشهادة، ربَّ كُلِّ شَيءٍ ومَلِيكَه، أَشْهد أن لا إله إلا أنت، أعوذ بك من شرِّ نفسي وشرِّ الشيطان وشِرْكِهِ وأن أقترف على نفسي سوءًا أو أجرُّه إلى مسلم
[-] كل من 3 users say قال شكرا ل Delphi4Us على المشاركة المفيدة
  • أبو معاذ, h-farid, wadoud
الرد
#2
السلام عليكم .

جميل جدا بارك الله فيك ،

كنت أبحث منذ مدة عن كيفية انشاء الرقم التسلسلي بالشكل :

XXXX-XXXX-XXXX-XXXX


جزاك الله خيرا.


PHP كود :
unit Main;

interface

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

type
  TForm1 
= class(TForm)
    txtName: TLabeledEdit;
    txtKey: TLabeledEdit;
    cmdRegister: TButton;
    procedure cmdRegisterClick(Sender: TObject);
  private
    { Déclarations privées }
  public
    { Déclarations publiques }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

function 
GetSerial(Username : string) : string;
var
  CH: Byte;
  S1,S2,Hash : string;
  I,J,A,B : Integer;
  const sTable = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
begin

  Hash 
:= '';
  S1 := '';
  A := 1;
  B := Length(Username);

  If B = 0 then Exit;

  //Resize user name to 24 bytes
  For I := 1 to 24 do
  begin
    
If A > B Then A := 1;
    //Use this to jumple of orginal char values
    J := (I * byte(Username[A]) XOR 45) AND 255;
    //Build new username
    S1 := S1 + Chr(J);
    //INC Counter
    INC(A);
  end;

  //Make serial string of username.
  For I := 1 to Length(S1) do
  begin
    CH 
:= Byte(S1[I]);
    A := (CH MOD 36);
    If A = 0 then A := 1;
    //Build serial
    hash := hash + sTable[A];
  end;

  For I := 1 to Length(hash) do
  begin
    B 
:= I - 1;
    If (B MOD 4) = 0 then
    begin
      
//Add seperator.
      S2 := S2 + '-';
    end;
    //Build hash
    S2 := S2 + hash[I];
  end;
  //Delete first seperator.
  Delete(s2,1,1);
  //Return hash.
  GetSerial := S2;
end;

function 
IsSerialVaild(Username,sSerial : string) : Boolean;
begin
  
//Test if number is vaild.
  if Length(Trim(Username)) = 0 then exit;
  IsSerialVaild := GetSerial(Username) = sSerial;
end;
procedure TForm1.cmdRegisterClick(Sender: TObject);
var 
sKey : string;
begin
  sKey 
:= GetSerial(txtName.Text);
  txtkey.Text := sKey;
end;

end. 
اللهم اجعلني من أهل القرآن ، الذين هم أهلك و خاصتك.
تذكر بأن الوقت الذي تلهو فيه ، غيرك يبني مجده فيه.
[-] كل من 3 users say قال شكرا ل أبو معاذ على المشاركة المفيدة
  • Delphi4Us, h-farid, wadoud
الرد
#3
وعليكم السلام اخ ابومعاذ

الحمد لله ان الموضوع افادك .
وجزاك الله كل خير ايضا .
قل: اللهم فاطِرَ السماوات والأرض عالم الغيبِ والشهادة، ربَّ كُلِّ شَيءٍ ومَلِيكَه، أَشْهد أن لا إله إلا أنت، أعوذ بك من شرِّ نفسي وشرِّ الشيطان وشِرْكِهِ وأن أقترف على نفسي سوءًا أو أجرُّه إلى مسلم
الرد
#4
السلام عليكم.
أخي الحبيب صندوق الرسائل لديك ممتلئ.
اللهم اجعلني من أهل القرآن ، الذين هم أهلك و خاصتك.
تذكر بأن الوقت الذي تلهو فيه ، غيرك يبني مجده فيه.
[-] كل من 1 user says قال شكرا ل أبو معاذ على المشاركة المفيدة
  • Delphi4Us
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم