Arsip: membuat change password untuk beberapa user

 
user image
more 18 years ago

gormet

nanya lagi ah... :) saya telah membuat password mengikuti link berikut: http://pascal-id.org/dpr/PNphpBB2-viewtopi...ht-password.pas http://pascal-id.org/dpr/PNphpBB2-viewtopi...ht-password.pas dan berhasil untuk beberapa user. namun ketika saya tambahkan form ganti password, saya gagal terus. saya mengunakan tabel pada database dekstop (paradox7), dengan field "nama user" dan "password" berikut ini coding yang saya coba:

FORM1:
procedure TForm1.Edit1Change(Sender: TObject);
var
  ada:boolean;
begin
  ada:=tbpassword.findkey();
  if ada then
     begin
       edit3.Text:=tbpassword['password'];
       exit;
     end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
  ada_nama: boolean;
begin
  ada_nama:=tbpassword.FindKey();
  if
    (ada_nama) and (edit2.Text=edit3.Text)  
  then
    begin
      form2.show;
      form1.hide;
    end
  else
    begin
      application.messagebox('Maaf, nama atau password yang Anda ketikan salah', 'peringatan', MB_iconStop);
    end;
end;

FORM2:
procedure TForm2.FormCreate(Sender: TObject);
begin
    edit1.Enabled:=true;
    edit2.Enabled:=true;
    edit3.Enabled:=false;
    edit4.Enabled:=false;
    edit3.Color:=clMenu;
    edit4.Color:=clMenu;
end;
procedure TForm2.Edit1Change(Sender: TObject);
var
  ada:boolean;
begin
  ada:=tbpassword.FindKey();
  if ada then
  begin
    edit5.Text:=tbpassword['password'];
  end;
end;
procedure TForm2.Button1Click(Sender: TObject);
var
  ada_nama:boolean;
begin
  ada_nama:=tbpassword.FindKey();
  if
  (ada_nama) and (edit2.Text=edit5.text)
  then
  begin
    edit3.Enabled:=true;
    edit4.Enabled:=true;
    edit3.Color:=clWindow;
    edit4.Color:=clWindow;
    edit3.SetFocus;
  end
  else
  begin
    application.MessageBox('Data lama tidak ditemukan','perhatian',mb_iconstop);
  end;
end;
procedure TForm2.Button2Click(Sender: TObject);
begin
   tbpassword.Delete;  //perintah ini saya coba untuk mendelete "nama user" dan "password" yg akan di ganti, namun mendelete semua isi tabel.
   tbpassword.Append;
   tbpassword['nama']:=edit3.Text;
   tbpassword['password']:=edit4.Text;
end;
yang ingin saya tanyakan bagaimana cara untuk mengganti "nama user" atau pun "password"? "nama user" dan "password" nya saya simpan pada tabel pada database dekstop (paradox7).[/quote]
user image
more 18 years ago

yayaretina

mugnkin code di bawah ini bisa sedikit membantu : edit:

begin
        T_User.Edit;
        T_User.FieldByName('nama').Asstring:=ednama.Text;
        T_User.FieldByName('password').AsString:=edpass.Text;
        T_User.Post;
        T_User.ApplyUpdates(0);
end;
sebelumnya pastikan nama dan password yang akan di edit ada di ednama dan edpass terlebih dahulu...
user image
more 18 years ago

gormet

makasih bro yayaretina, :) ntar saya coba diksan.
user image
more 18 years ago

gormet

setelah saya coba, ada beberapa hal yg saya tdk mengerti: 1. coding saya pada FORM2:

procedure TForm2.FormCreate(Sender: TObject);
begin
   ed_nama.enabled:=true;
   ed_password.enabled:=true;
   ed_new_nama.enabled:=false;
   ed_new_password.enabled:=false;
   ed_new_nama.color:=clmenu;
   ed_new_password.color:=clmenu;
   bt_Ganti.Enabled:=false;
end;
procedure TForm2.ed_namaChange(Sender: TObject);
var
   ada:boolean;
begin
   ada:=t_user.findkey();
   if ada then
      begin
        ed_cek.Text:=t_user['password'];
        exit;
      end;
end;
procedure TForm2.bt_cekClick(Sender: TObject);
var
  ada_nama:boolean;
begin
  ada_nama:=t_user.FindKey();
  if
    (ada_nama) and (ed_password.text=ed_cek.text)
  then
  begin
    ed_new_nama.Enabled:=true;
    ed_new_password.Enabled:=true;
    ed_new_nama.Color:=clwhite;
    ed_new_password.Color:=clwhite;
    ed_new_nama.SetFocus;
    bt_Ganti.Enabled:=true;
  end
  else
  begin
     application.messagebox('Maaf, nama atau password yang Anda ketikan salah', 'peringatan', MB_iconStop);
  end;
end;
procedure TForm2.KeluarClick(Sender: TObject);
begin
   application.Terminate;
end;

procedure TForm2.bt_GantiClick(Sender: TObject); //procedure ini untuk ganti nama ataupun password, tapi masih error 
begin
  T_User.Edit;
  T_User.FieldByName('nama').Asstring:=ed_nama.Text;
  T_User.FieldByName('password').AsString:=ed_password.Text;
  T_User.Post;
  T_User.ApplyUpdates(0);
  T_User['nama']:=ed_new_nama.Text;
  T_User['password']:=ed_new_password.Text;
end;
end.
apakah ada yang salah dengan coding di atas? terutama

procedure TForm2.bt_GantiClick(Sender: TObject); //procedure ini untuk ganti nama ataupun password, tapi masih error
begin
  T_User.Edit;
  T_User.FieldByName('nama').Asstring:=ed_nama.Text;
  T_User.FieldByName('password').AsString:=ed_password.Text;
  T_User.Post;
  T_User.ApplyUpdates(0);
  T_User['nama']:=ed_new_nama.Text;
  T_User['password']:=ed_new_password.Text;
end;
2. T_User.ApplyUpdates(0); //maksudnya apa, karena ketika saya run ada pesan 'to many actual parameters' , namun ketika saya ganti menjadi T_User.ApplyUpdates(); program jalan namun selalu ada pesan error (project password.exe raised exception class EDatabaseError with message T_User: Not in cached update mode'. Process stopped. Use Step or Run to continue) mohon koreksi dan bantuannya, thx b 4 :)
user image
more 18 years ago

imunk

ApplyUpdates(0) biasanya digunakan jika kita menggunakan tools koneksi DBEXPRESS, perintah itu berfungsi untuk menyimpan data ke server karena jika kita pake perintah Post saja berarti kita hanya baru menyimpan data pada sisi klien. CMIIW.....:) menurutku jika memakai paradoks sbg penyimpan datanya tidak mungkin memakai DBEXPRESS, paling2 pake BDE yg dah ada di delphi.

procedure TForm2.bt_GantiClick(Sender: TObject); //procedure ini untuk ganti nama ataupun password, tapi masih error 
begin
 
  T_User.Edit;
  T_User.FieldByName('nama').Asstring:=ed_nama.Text;
  T_User.FieldByName('password').AsString:=ed_password.Text;
  T_User.Post;
  T_User.ApplyUpdates(0);
 
  T_User['nama']:=ed_new_nama.Text;
  T_User['password']:=ed_new_password.Text;
 
end;
coba ganti gini:

procedure TForm2.bt_GantiClick(Sender: TObject); //procedure ini untuk ganti nama ataupun password, tapi masih error 
begin
  if tbpassword.FindKey()= true then
  begin
    T_User.Edit;
    T_User.FieldByName('nama').Asstring:=ed_nama.Text;
    T_User.FieldByName('password').AsString:=ed_password.Text;
    T_User.Post;  
  end;  
end;
semoga membantu, jika masih bingung bisa tanyakan lagi, sapa tau ada suhu yg berbaik hati mau membantu....:) jangan menyerah.
user image
more 18 years ago

yayaretina

atau setelah T_user.Post bisa di tambahkan dengan T_user.refresh;
user image
more 18 years ago

gormet

ok, makasih banget Bro imunk & Bro yayaretina :) akan saya coba, guru2, temen2 di forum ini sangat membantu ku.
user image
more 18 years ago

imunk

sama2... aku jg masih newbie kok.... belajar bareng lebih asik daripada sendiri...:)
user image
more 18 years ago

gormet

maaf baru di bahas lagi.. alhamdulillah akhirnya sukses :D sukses cara1

procedure TForm2.GantiClick(Sender: TObject);
begin
   if t_user.FindKey()= true then
   begin
      T_User.Edit;
      T_User.FieldByName('nama').Asstring:=ed_new_nama.Text;
      T_User.FieldByName('password').AsString:=ed_new_password.Text;
      T_User.Post;
      T_user.Refresh;
    end;
end;
sukses cara2

procedure TForm2.GantiClick(Sender: TObject);
begin
   if t_user.FindKey()= true then
   begin
      T_User.Edit;
      T_User.FieldByName('nama').Asstring:=ed_new_nama.Text;
      T_User.FieldByName('password').AsString:=ed_new_password.Text;
      T_User.Post;
    //T_user.Refresh;
    end;
end;
sukses cara3

procedure TForm2.GantiClick(Sender: TObject);
begin
// if t_user.FindKey()= true then
// begin
     T_User.Edit;
     T_User.FieldByName('nama').Asstring:=ed_new_nama.Text;
     T_User.FieldByName('password').AsString:=ed_new_password.Text;
     T_User.Post;
//T_user.Refresh;
// end;
end;
[/quote]
user image
more 18 years ago

gormet

ini coding ringkas nya: Form1 (Menu Login)

procedure TForm1.ed_namaChange(Sender: TObject); //untuk mencari password(disimpan pada ed_cek) dari nama yang diketikan pada ed_nama
var
   ada:boolean;
begin
   ada:=t_user.findkey();
   if ada then
      begin
        ed_cek.Text:=t_user['password'];
        exit;
      end;
end;
procedure TForm1.MasukClick(Sender: TObject); //button untuk login
var
  ada_nama:boolean;
begin
  ada_nama:=t_user.FindKey();
  if
    (ada_nama) and (ed_password.text=ed_cek.text)
  then
  begin
     form2.Show;
     form1.free;
  end
  else
  begin
     application.messagebox('Maaf, nama atau password yang Anda ketikan salah', 'peringatan', MB_iconStop);
  end;
end;
procedure TForm1.BatalClick(Sender: TObject); //button untuk mengulangi dari awal 
begin
   ed_nama.Text:='';
   ed_password.Text:='';
   ed_nama.setfocus;
end;
procedure TForm1.KeluarClick(Sender: TObject); //button untuk keluar dari menu login
begin
   close;
end;
Form2 (Menu Ganti Password)

procedure TForm2.FormCreate(Sender: TObject); //untuk setingan awal pada Menu Ganti Password
begin
   ed_nama.enabled:=true;
   ed_password.enabled:=true;
 
   ed_new_nama.enabled:=false;
   ed_new_password.enabled:=false;
   ed_new_nama.color:=clmenu;
   ed_new_password.color:=clmenu;
   btGanti.Enabled:=false;
   btBatal1.Enabled:=false;
end;
procedure TForm2.ed_namaChange(Sender: TObject); //
var
   ada:boolean;
begin
   ada:=t_user.findkey();
   if ada then
      begin
        ed_cek.Text:=t_user['password'];
        exit;
      end;
end;
procedure TForm2.btCekClick(Sender: TObject);
var
  ada_nama:boolean;
begin
  ada_nama:=t_user.FindKey();
  if
    (ada_nama) and (ed_password.text=ed_cek.text)
  then
  begin
    ed_new_nama.Enabled:=true;
    ed_new_password.Enabled:=true;
    ed_new_nama.Color:=clwhite;
    ed_new_password.Color:=clwhite;
    ed_new_nama.SetFocus;
    btGanti.Enabled:=true;
    btBatal1.enabled:=true;
  end
  else
  begin
     application.messagebox('Maaf, nama atau password yang Anda ketikan salah', 'peringatan', MB_iconStop);
  end;
end;
procedure TForm2.btbatal1Click(Sender: TObject); //untuk mengosongkan ed_nama dan ed_password
begin
   ed_nama.Text:='';
   ed_password.Text:='';
   ed_nama.SetFocus;
end;
procedure TForm2.ed_new_namaChange(Sender: TObject);
var
  ada_new_nama: boolean;
begin
  ada_new_nama:=T_user.findkey();
  if (ada_new_nama) and (ed_new_nama.Text<>ed_nama.Text)then
     begin
        ed_cek2.Text:=t_user['nama'];
        exit;
      end;
end;
procedure TForm2.btBatal2Click(Sender: TObject); //untuk mengosongkan ed_cek2, ed_new_nama dan ed_new_password
begin
   ed_cek2.Text:='';
   ed_new_nama.Text:='';
   ed_new_password.Text:='';
   ed_new_nama.SetFocus;
end;
procedure TForm2.btGantiClick(Sender: TObject);
begin
  if (ed_cek2.Text<>'') then
  begin
    application.MessageBox('Nama telah digunakan oleh user lain', 'perhatian',mb_iconstop);
  end
  else
  begin
    if (ed_new_nama.Text='') or (ed_new_password.Text='')
    then
      begin
       application.MessageBox('nama atau password Anda belum diisi', 'peringatan', mb_iconstop);
      end
    else
      begin
        T_User.Edit;
        T_User.FieldByName('nama').Asstring:=ed_new_nama.Text;
        T_User.FieldByName('password').AsString:=ed_new_password.Text;
        T_User.Post;
        T_user.Refresh;
      end;
  end;
end;
procedure TForm2.btKeluarClick(Sender: TObject);
begin
   application.terminate;
end;
catatan: ed_nama-->user name ed_password-->password ed_cek-->untuk menampilkan password si ed_name dari tabel(t_user) ed_new_nama-->pengganti user name ed_new_password-->pengganti password ed_cek2-->untuk menampilkan user name dari tabel(t_user) CMIIW :D
more ...
  • Pages:
  • 1
  • 2
Share to

AI Forward

🚀 We're thrilled to partner with Alibaba Cloud for "AI Forward - Alibaba Cloud Global Developer Summit 2025" in Jakarta! Join us and explore the future of AI. Register now: https://int.alibabacloud.com/m/1000400772/
#AlibabaCloud #DeveloperSummit #Jakarta #AIFORWARD

Local Business Directory, Search Engine Submission & SEO Tools FreeWebSubmission.com SonicRun.com