Arsip: Listview & Error Handle

 
user image
more 19 years ago

ayocool

wah nanya terus neh... itung2 biar forumnya tambah rame :) begini... setelah koneksi dengan mysql berhasil, tibalah waktunya untuk menampilkan datanya. karena saya tidak menggunakan odbc (hanya pake libmysql.dll), makanya untuk menampilkan datanya saya gunakan listview. nah ketika listview itu di klik, maka saya tampilkan seluruh datanya pada objek text agar bisa diedit. cuman ketika pertama kali tampil di listview, kan tidak ada row yg terselect, sehingga programnya jadi error. kalo di vb (maaf, tadinya biasa pake ini) saya cukup gunakan [vb:1:69e8910cd4]On ERROR Resume Next[/vb:1:69e8910cd4], dah beressssssttttttt. codingnya kaya gini:

Procedure TForm1.Listview1Click(Sender : TObject);
begin
   tampildata;
end;

procedure tampildata;
var nip,query:String;
begin
    // kekacauan terjadi disini jika tidak ada row yg terselect
    nip:=listview1.items.subitems[0];
   query:='select * from pegawai where nip='+quotedstr(nip);
   ------
   --- access to mysql & fetch data ---
   ------
end;
Mohon pencerahan dari rekan2 senior[/pas]
user image
more 19 years ago

masdi2t

--- cuman ketika pertama kali tampil di listview, kan tidak ada row yg terselect, sehingga programnya jadi error --- ini program nya error pas ListView di klik tp ngk ada isinya atau sebelum ListView di klik (kurang jelas) trus error nya apa juga (Access Violation atau apa)? trus klu bisa semua code dibuka aja, sapa tau yg bikin error adalah code di bagian --- ------ --- access to mysql & fetch data --- ------ end; --- kan jadi ngk tau. klu di Delphi biasa pake

  try
    -- bagian yang mungkin error
  except {atau bisa juga finally, tergantung kebutuhan}
    -- proses jika ada error
  end;
user image
more 19 years ago

ferrysetiawan

kenapa tidak diuji saja
procedure tampildata;
var nip,query:String;
begin    
  // kekacauan terjadi disini jika tidak ada row yg terselect    
  nip:=listview1.items.subitems[0];   
  if trim(nip) <> '' then 
  begin
    query:='select * from pegawai where nip='+quotedstr(nip);  
    ------   --- access to mysql & fetch data ---   ------
  end;
end;
jadi jika nip kosong tidak perlu jalankan querynya
user image
more 19 years ago

ZeAL

bweheehe.. selain nip nya dicek dulu ada isinya apa enggak.. cek juga listview nya... caranya

IF listview1.ItemIndex = -1 THEN exit;
oia, ini listview kan?? bukan list box..?? tapi kalo listbox juga sama aja kok...intinya di ItemIndex... haslinya kira2 :

Procedure TForm1.Listview1Click(Sender : TObject);
begin
   tampildata;
end;
 
 
procedure tampildata;
var nip,query:String;
begin
    // kayaknya sih udah gak kacau
    IF listview1.ItemIndex = -1 THEN exit;
    nip:=listview1.items[listview1.selected.index].subitems[0];
    IF nip = '' THEN exit;
   query:='select * from pegawai where nip='+quotedstr(nip);
   ------
   --- access to mysql & fetch data ---
   ------
end;
user image
more 19 years ago

ayocool

Wah2.... akhirnya saya mengucapkan terima kasih kepada semuanya yah... walaupun saya masih bingung bagaimana cara membuat laporannya. maklum gak pake data aware :( ada yg mo kasih solusi ?
user image
more 19 years ago

DelphiExpert

Listview.Selected adalah pointer yg merujuk ke item list data. Untuk ngecek-nya ada yang kesorot pa nggak cukup gini:

if Assigned(ListView1.Selected) then
  Query:='select * from pegawai where nip=' + listview1.SELECTED.SubItems[0];
Ok moba membantu Regards - D.E
user image
more 19 years ago

ayocool

Mmmm.... kayaknya di Listview tidak bisa pake ItemIndex. saya udah coba tp malah error. kecuali memang untuk ComboBox. oh iya sekalian nanya lagi neh.. kalo combobox di set dropdownlist (supaya user tdk bisa mengisi), kenapa tidak bisa diset nilainya ya ? padahal nilai tersebut sudah ada. misal:

Procedure Tform1.Create(Sender : TObject);
var i:integer;
     s:String;
Begin
  combobox1.clear;
  for i:=1 to 10 do begin
     str(i,s);
     combobox1.items.add(s);
  end;
End;
trus misalkan saya ingin menampilkan angka 8 pada saat tombol di klik

Procedure Tform1.Button1Click(Sender : TObject);
begin
   // tampilan combobox malah kosong
   combobox1.text:='8';
end;
user image
more 19 years ago

DelphiExpert

1). TListView memang ngga' bisa pake ItemIndex, pake check pointer (if Assigned(X) then), seperti yang saya uraikan diatas. 2). Karena text '8' tidak ada dalam daftar list. Kalo mo ngeset ComboBox yang diset dropdownlist pake property ItemIndex. OK
user image
more 19 years ago

ZeAL

Eh, emang gak bsia yah... perasaan kemaren dicoba bisa tuh... aneh... ListView kan bukan ListBox...?? hmm...aneh..neh...neh..neeeehhhh....
user image
more 19 years ago

ferrysetiawan

caranya bukan pakai
Combobox1.Text := '8';
tapi pakai
ComboBox1.ItemIndex := ComboBox1.Items.IndexOf('8');
selamat mencoba[/pas]
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