Jumat, 04 Januari 2013

Membuat Menu Login Pada Delphi




Untuk seorang pemula seperti saya ini tentu akan sangat pusing sekali mencari cara supaya membuat menu login pada program yang akan dibuat.
Setelah sekian lama mencari, akhirnya saya menemukan cara agar bisa membuat form login untuk program saya.

pertama - tama buat dulu tabel login di microsoft access atau Sql, tapi untuk contoh ini saya buat dalam microsoft access 2007









nama tabel : login (tinggal sesuaikan terserah anda)
field       type
Username    text
password    text  inputmask: password

setelah itu simpan database anda dengan format access 2003(ekstensi *.mdb). 


buka program delphi anda. buat sebuah project baru,lalu buat 2 buah form ,beri nama formlogin dan formutama.

Form Login

implementasikan menuutama ddengan cara tekan alt+F11 lalu pilih menuutama klik ok
 
tambahkan komponen adoconnection,adoquery,2 tlabel, 2 tedit,2 tbutton, 1 progressbar. atur seperti gambar dibawah 




 
klik pada adoconecction1 klik pada connecctionstring pada build pilih microsoft jet ole provider

pada select database name pilih database yang telah dibuat

kemudian klik test conecction lalu klik ok.
propeties login prompt isikan false, lalu connected : true.

klik pada adoquery1 lalu isikan sesuai berikut:
connection : adoconnection1
sql        : select*from login
active     : true

setelah itu klik pada form, masukkan kode berikut pada event oncreate:

procedure Tformlogin.FormCreate(Sender: TObject);
var
   S:char;
   alamatDB:widestring ;

begin

   // Manipulasi cursors crSQLWait agar tidak tampil
   Screen.Cursors[crSQLWait] := Screen.Cursors[crDefault];
   // atur tampilan form
   s :='*';
   Edit1.Text := '';
   Edit2.PasswordChar := s;
   Edit2.Text := '';
end;


     
setelah itu klik dua kali pada button login dan masukkan kode berikut:

procedure Tformlogin.SpeedButton1Click(Sender: TObject);
var
   baris,nilai:integer;
begin
      with ADOQuery1 do begin
        Close ;
        SQL.Clear; // bersihkan perintah sql jika ada
        SQL.Add('select * from login where username='+QuotedStr(Edit1.Text));
        Open ;
      end; // end with
      // jika tidak ditemukan data yang dicari maka
      // tampilkan pesan
     if ADOQuery1.RecordCount = 0 then
       Application.MessageBox('Maap, username tersebut tidak ada', 'Informasi',MB_OK or MB_ICONINFORMATION)
 else begin
     if ADOQuery1.FieldByName('password').AsString <> Edit2.Text
     then Application.MessageBox('Pastikan username atau password benar','Error', MB_OK or MB_ICONERROR)
     else begin
     ProgressBar1.Visible:=true;
     baris:=100;
     progressbar1.Min:=0;
     progressbar1.Max:=baris;
     for nilai:=1 to baris do
     progressbar1.Position:=nilai;
     progressbar1.Visible:=false;
     form2.Hide;
     Formutama.Show;
end
end;

end;

klik dua kali pada button cancel dan masukkan kode berikut:

application.terminated;

sehingga keseluruhan kodenya adalah sebagai berikut:
 

pilih jet 4.0 ole db provider
pilih database yang telah di buat

pilih jet 4.0 ole db provider
unit Ulogin;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls, DB, ADODB;

type
  TForm2 = class(TForm)
    Edit1: TEdit;
    ADOConnection1: TADOConnection;
    ADOQuery1: TADOQuery;
    Edit2: TEdit;
    ProgressBar1: TProgressBar;
    Label1: TLabel;
    Label2: TLabel;
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form2: TForm2;
implementation

uses umenuutama;
{$R *.dfm}

procedure TForm2.Button1Click(Sender: TObject);
begin
     Application.Terminate;
end;

procedure TForm2.Button2Click(Sender: TObject);
var
   baris,nilai:integer;
begin
      with ADOQuery1 do begin
        Close ;
        SQL.Clear; // bersihkan perintah sql jika ada
        SQL.Add('select * from login where username='+QuotedStr(Edit1.Text));
        Open ;
      end; // end with
      // jika tidak ditemukan data yang dicari maka
      // tampilkan pesan
     if ADOQuery1.RecordCount = 0 then
       Application.MessageBox('Maap, username tersebut tidak ada', 'Informasi',MB_OK or MB_ICONINFORMATION)
 else begin
     if ADOQuery1.FieldByName('password').AsString <> Edit2.Text
     then Application.MessageBox('Pastikan username atau password benar','Error', MB_OK or MB_ICONERROR)
     else begin
     ProgressBar1.Visible:=true;
     baris:=100;
     progressbar1.Min:=0;
     progressbar1.Max:=baris;
     for nilai:=1 to baris do
     progressbar1.Position:=nilai;
     progressbar1.Visible:=false;
     form2.Hide;
     Formutama.Show;
end
end;
end;

procedure TForm2.FormCreate(Sender: TObject);
var
   S:char;
   alamatDB:widestring ;

begin

   // Manipulasi cursors crSQLWait agar tidak tampil
   Screen.Cursors[crSQLWait] := Screen.Cursors[crDefault];
   // atur tampilan form
   s :='*';
   Edit1.Text := '';
   Edit2.PasswordChar := s;
   Edit2.Text := '';

end;
end.

Tidak ada komentar:

Posting Komentar

masukkan komentar anda disini