PDA

View Full Version : ReadOnly کردن ComboBox



Mask
یک شنبه 09 اسفند 1388, 02:32 صبح
با سلام
چطوری می توان ComboBox رو ReadOnly کرد که کاربر نتواند در آن بنویسد و فقط توسط برنامه بتواند آیتم اظافه کند و از آیتمها استفاده کند.
ممنون.

Mahmood_M
یک شنبه 09 اسفند 1388, 03:19 صبح
با سلام
چطوری می توان ComboBox رو ReadOnly کرد که کاربر نتواند در آن بنویسد و فقط توسط برنامه بتواند آیتم اظافه کند و از آیتمها استفاده کند.
ممنون.
خاصيت Style اون رو به csDropDawnList تغيير بديد ...

...

Mask
یک شنبه 09 اسفند 1388, 16:59 عصر
ممنون از شما
اما این کار یه بدی داره
بنده مقدار Text این کامبو رو در قسمت اول برنامه از بانک اطلاعاتی پر میکنم.
الان که این کار رو کردم دیگه تکست این کامبو از بانک اطلاعاتی پر نمیشه.
حالا باید چیکار کرد.(text حتما باید از بانک پر بشه)
ممنون.

Mahmood_M
یک شنبه 09 اسفند 1388, 17:19 عصر
ممنون از شما
اما این کار یه بدی داره
بنده مقدار Text این کامبو رو در قسمت اول برنامه از بانک اطلاعاتی پر میکنم.
الان که این کار رو کردم دیگه تکست این کامبو از بانک اطلاعاتی پر نمیشه.
حالا باید چیکار کرد.(text حتما باید از بانک پر بشه)
ممنون.
در اين حالت بايد به آيتم مشخصي از ليست ComboBox يك مقدار رو بديد ، مثلا :
begin
ComboBox1.Items.Strings[0] := 'Hi !';
end;

عدد صفر Index آيتم هاست كه اولين آيتم رو مشخص مي كنه ،‌ شماره ي آيتم ها از صفر شروع ميشه ...
البته توجه كنيد كه اگه ComboBox خلي باشه ديگه آيتمي نداره و بايد يك آيتم اضافه كنيد و مقدارتون رو درش قرار بديد ، مثال :
if ComboBox1.Items.Count = 0 then
ComboBox1.Items.Add('Hi !')
else
ComboBox1.Items.Strings[0] := 'Hi !';
براي نمايش دادن يك آيتم در ComboBox هم بايد خاصيت ItemIndex اون رو برابر با شماره ي Index آيتم مورد نظر قرار بديد ، مثال ( نمايش آيتم دوم ) :
ComboBox1.ItemIndex := 1;
هر آيتمي كه در ComboBox نمايش مي ديد مقدار متن درون اون در داخل خاصيت Text مربوط به ComboBox قرار مي گيره ...
يك نكته ي ديگه :
اگر متن يك آيتم رو داريد و مي خوايد كه اون رو درون ComboBox نمايش بديد ، يعني يك متن داريد كه مي دونيد درون ComboBox هست ولي شماره ي Index اون رو نداريد ، مي تونيد به صورت زير عمل كنيد :
ComboBox1.ItemIndex := ComboBox.Items.IndexOf('Text');
به جاي Text متن مورد نظرتون رو بنويسيد ...

موفق باشيد ...

Modernidea
یک شنبه 09 اسفند 1388, 20:40 عصر
این روش هم میشه !

procedure TMainfrm.ComboBox1KeyPress(Sender: TObject; var Key: Char);
begin
if Key <> #13 then Key := #0;
end;

hamid-nic
دوشنبه 10 اسفند 1388, 00:08 صبح
سلام
از کامپوننت های معروف Raize هم می تونید استفاده کنید چون خاصیت Read only داره .