ورود

View Full Version : سوال: dblistbox



majidmt
دوشنبه 01 تیر 1388, 15:48 عصر
باسلام من یک dblistbox روی فرمم گذاشتم تنظیماتشم انجام دادم رو روی یک فیلد از بانکم (sql) تنظیم کردم ولی فقط رکورد اول رو نشون میده چه کار کنم که همه ی رکوردهامو لیست کنه؟باید خودم یکی یکی add کنم به عنوان item اگر پاسخ مثبته پس فرقش با listbox چییه؟
ممنون میشم راهنمایی کنید

Saeed_m_Farid
سه شنبه 02 تیر 1388, 09:19 صبح
باسلام من یک dblistbox روی فرمم گذاشتم تنظیماتشم انجام دادم رو روی یک فیلد از بانکم (sql) تنظیم کردم ولی فقط رکورد اول رو نشون میده چه کار کنم که همه ی رکوردهامو لیست کنه؟باید خودم یکی یکی add کنم به عنوان item اگر پاسخ مثبته پس فرقش با listbox چییه؟
ممنون میشم راهنمایی کنید
درسته، برخلاف اکثر کامپوننتهای data aware (همونهایی که اولشون TDB دارن) VCL دوتا کامپوننت TDBListBox و TDBComboBox بطور خودکار پر نمیشن! و باید خودتون مقدار مورد نظر رو بهشون اضافه کنید؛ همون رکورد اولی هم نمیاد نمیدونم شما چطوری اونو دارید؟ مثلاً اینطوری میتونید DBListBox خودتون رو پر کنید :

void __fastcall TForm1::FormCreate(TObject *Sender)
{
ADOQuery1->Open();
while (!(ADOQuery1->Eof))
{
DBListBox1->Items->Add(ADOQuery1->FieldByName("Name")->AsString);
ADOQuery1->Next();
}
}فرقش هم با TListBox تو اینه که لیست باکس معمولی data aware نیست، یعنی شما که میری رکورد قبل، بعد و ... یا رکوردی رو حذف میکنی و ... باید خودت هم ListBox رو مدیریت کنی (تو رویدادهای AfterScroll، AfterPost و ...) ولی اینکارها تو TDBListBox بصورت خودکار انجام میشه.