Dblistbox در دلفي

MnavidM

Active Member
با سلام

آقا يكي ميشه بگي با اين Dblistbox چطور ميشه كار كرد.

من هر كاري كردم نتونستم به بانك وصلش كنم.

كسي هست بدونه ؟

لطفا زود جواب بدبد .
 

MnavidM

Active Member
با سلام

آقا اگه كسي مي دونه بگه يا حداقل يه راهنماي ; چيزي بگه.


كمك ...................
 

Babak Sateli

Active Member
doste گفت:
با سلام
آقا اگه كسي مي دونه بگه يا حداقل يه راهنماي ; چيزي بگه.
كمك ...................

دوست عزيز

شما مي باست ابتدا يك Table بر روي فورم خود قرار دهيد و مسير Database را براي
آن معرفي نماييد. سپس آن را فعال نماييد.
حال Dblistbox را بر روي فرم خود بياوريد. در قسمت DataSource آن نام Table خود را
ذكر كنيد سپس در قسمت DataField نام فيلدي از Databse خود را كه مي خواهيد نمايش
دهيد تنظيم نماييد.

موفق باشيد
 

MnavidM

Active Member
با سلام

بابك جان اصلا اين طوري نميشه.

اولا در قسمت DataSource ; نبايد اسم table رو نوشت بلكه بايد يه DataSource تو فرم بزاري

بعد اون رو به باتك وصل كني و بعد از اون Dblistbox رو به DataSource وصل كنيم.

البته اين جز قوايد دلفي هستند .

اما من همه اين ها رو امتحان كردم نشد.

آقا بابك اگه زحمت نيست يه بار خودتون امتحان كنيد بعد به من هم بگين.

ممنون از جوابتون.
 

Babak Sateli

Active Member
doste گفت:
با سلام
بابك جان اصلا اين طوري نميشه.
اولا در قسمت DataSource ; نبايد اسم table رو نوشت بلكه بايد يه DataSource تو فرم بزاري
بعد اون رو به باتك وصل كني و بعد از اون Dblistbox رو به DataSource وصل كنيم.
البته اين جز قوايد دلفي هستند .
اما من همه اين ها رو امتحان كردم نشد.
آقا بابك اگه زحمت نيست يه بار خودتون امتحان كنيد بعد به من هم بگين.
ممنون از جوابتون.

دوست عزيز سلام

من كاملاْ حق را به شما مي دهم. جواب من كامل نيست و مشكل تايپي دارد.
من در اينجا اين بحث را براي شما مي نويسم تا مشكل شما حل شود.

اگر شما مي خواهيد از يك DBListBox جهت نمايش يك فيلد خاص استفاده كنيد
مراحل زير را طي كنيد :

1) ابتدا يك DataSource بر روي فورم خود قرار دهيد.
2) سپس يك Table بر روي فورم خود كشيده و تنظيمات آن را همان طور كه مي دانيد
ويرايش نماييد و در انتها آن را فعال سازيد. البته كار فعال سازي آن را نيز مي توانيد
هنگام اجراي برنامه انجام دهيد.
3) حال يك DBListBox بر روي فورم خود قرار دهيد.

به طور فرض اسامي قسمتهاي مذكور به شرح زير مي باشد :
سورس اطلاعات : DataSource1
فهرست اطلاعات : Table1
جعبه ليست اطلاعات : DBListBox1

حال جهت نمايش اطلاعات از كد زير استفاده نماييد :

کد:
 DBListBox1.Items.Clear;
 Table1.First;
 while not Table1.Eof do begin
  DBListBox1.Items.Add(Table1.FieldByName('*** FIELD NAME ***').AsString);
  Table1.Next;
 end;

در کد بالا در قسمت Field Name نام فیلدی را که می خواهید در لیست نمایش داده شود را وارد نمایید.

این تمامی کاری است که می بایست شما انجام دهید تا یک فیلد خاص در یک لیست نمایش
داده شود. البته راه مناسبتری جهت نمایش یک لیست واحد وجود دارد که در صورتی که مایل
باشید آن را نیز برای شما تشریح خواهم کرد.

ضمنا سورس آماده این قسمت به همراه نسخه اجرایی آن را که من برای شما درست کردم می توانید
از لینک زیر دانلود کنید :
http://www.arianexpress.com/babak-sateli/m/dbListBox.zip

موفق باشید
 

MnavidM

Active Member
با سلام

آقا بابك خيلي ممنون.

اما ...

اما اين روش رو كه خودم بلد بودم (آقا اين قدر ما رو دست كم نگير :wink: ).

اين روشي كه شما فرموديد با همون Listbox عادي هم ميشه.

اما اصولا بايد يه فرقي بين اين Dblistbox با listbox باشه. و فكر نكنم در اصل لازم باشه

اصلا براي استفاده از Dblistbox كدي رو نوشت.

شما Dbgrid رو grid عادي در نظر بگير Dbgrid نيازي به نوشتن كد نداره و مستقيما به بانك وصل

ميشه. حالا من هم ميخواهم همين كار رو با Dblistbox انجام بدم.

به هر حال ممنون .

اما اگه حالا من منظورم رو كامل گفتم و شما هم كامل متوجه شديد

لطفا بگين چي كار كنم :?:

بابا يكي من رو درك كنه :cry:
 

Babak Sateli

Active Member
سلام نويد جان

اين قضيه DBListBox هم براي ما شده داستان !
حقيقتش من يك دوست بسيار صميمي دارم كه اشان در Borland كار مي كنند
و مسئول قسمت ساپورت و Update بخش Interface دلفي هستند.
باهاش كه نامه نگاري كردم و در رابطه با اين قضيه عجيب و غريب كه صحبت كردم
اين جواب را به من داد ...

اول پرسيدم چرابايد DBListBox رو فراموش كنم ؟
پاسخ داد كه :
کد:
Did you try to use the DBlookupListBox? it loads the items from a the ListSource table just as you want? Also set the ListField and KeyField properties to field you want to be listed in the control. The DataField and DataSource are optional properties to be set.

بعد ازش پرسيدم كه باباجان من ميخوام از DBListBox استفاده كنم ... گفت :
کد:
The DBListBox is made to be filled by you not by getting values from a table as the DBLookupListBox does. It's just like a plain ListBox, where you can add items by 

DBListBox1.Items.Add('some string');

Is there something you would like to do with the DBListBox that the DBLookupListBox can't? 

If you like, this how you can add items from a table into a DBListBox but it isn't as efficient as using a DBLookupListBox.

var
recCnt,i: Integer;
begin

recCnt := Table1.RecordCount;
DBListBox1.Items.Clear;

Table1.First;
for i:=1 to recCnt do begin

DBListBox1.Items.Add(Table1.FieldByName('Field name here').AsString);

Table1.Next;

end;

بعد ديگه داشتم عصباني مي شدم ، بهش گفتم اين رو بلدم يك چيز جديد بگو ! گفت :

کد:
Like the TDBComboBox it allows the user to enter data faster. Except it's in ListBox form rather than like the dropdown list of a combobox. You let the user select an item in the DBListBox and post the table. Also while the user navigates the DBGrid and the field the DBListBox is connected is out of view in the DBGrid, if the field value of that record exists in the DBListBox, that item is highlighted.

اينجا داستان تموم شد و من تسليم شدم. :D
اميدوارم متوجه بشي كه اين امكان وجود ندارد

موفق باشي دوست من
 

MnavidM

Active Member
با سلام

ممنون بابك جان.

آقا پس فعلا بي خيال اين عنصر.

راستي آقا بابك شما چنين عنصر ديگه اي نميشناسيد كه به بانك ربط داده بشه و هر وقت

در بانك اطلاعات تغيير كرد اون ها هم تغيير كنند. خود به خود مي گم عوض بشه.
 

جدیدترین ارسال ها

بالا