امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
نمايش پيغام در صورت ورود مقادير تکراري + ليست کردن يک فيلد در کمبو باکس1
نویسنده پیام
dcamera آفلاین
كاربر دو ستاره
**

ارسال‌ها: 68
موضوع‌ها: 9
تاریخ عضویت: مرداد ۱۳۸۸

تشکرها : 16
( 16 تشکر در 10 ارسال )
ارسال: #1
نمايش پيغام در صورت ورود مقادير تکراري + ليست کردن يک فيلد در کمبو باکس1
با سلام عرض به همه دوستان. دو تا سوال کوچيک داشتم . توي يه برنامه اي(با ado) که سه تا فيلد داره (نام ، نام خانوادگي و معدل) . ميخواستم :

مثلا dbcombobox1 رو به فيلد نام متصل کردم و با يه حلقه مقادير فيلد نام رو دونه دونه توش اضافه کردم.وقتي دکمه insert رو ميزنم مثلا اگه اسم علي قبلا وارد شده بود و ما دوباره اين اسم رو بديم پيغام بده و به کاربر اجازه اضافه کردن اين مقادير تکراري رو نده.

و سوال بعدي هم اينه که وقتي يه مقادير جديد رو به درستي تکميل کردم و به بانک insert شد همون لحظه در ليست آيتم کومبوباکس به طور خودکـــــــار اضافه بشه.(براي نمايش در حالت autocompelete و autodropdown کمبوباکس)
کد حلقه رو براي خوندن از فيلد نام و اضافه کردن اون در کمبو باکس کجا اضافه بکنم؟؟

متشکرم
(آخرین ویرایش در این ارسال: ۲۷-دى-۱۳۸۸, ۱۸:۰۵:۴۱، توسط dcamera.)
۲۷-دى-۱۳۸۸, ۰۳:۴۴:۴۲
ارسال‌ها
پاسخ
dcamera آفلاین
كاربر دو ستاره
**

ارسال‌ها: 68
موضوع‌ها: 9
تاریخ عضویت: مرداد ۱۳۸۸

تشکرها : 16
( 16 تشکر در 10 ارسال )
ارسال: #2
RE: نمايش پيغام در صورت ورود مقادير تکراري + ليست کردن يک فيلد در کمبو باکس1
دوستان کسی نظری داره؟
۲۷-دى-۱۳۸۸, ۱۸:۱۰:۲۰
ارسال‌ها
پاسخ
lord_viper غایب
مدیر کل انجمن
*****

ارسال‌ها: 3,949
موضوع‌ها: 352
تاریخ عضویت: بهمن ۱۳۸۴

تشکرها : 5193
( 9875 تشکر در 2650 ارسال )
ارسال: #3
RE: نمايش پيغام در صورت ورود مقادير تکراري + ليست کردن يک فيلد در کمبو باکس1
جواب1:
شما میتونین یک جستجوگر بنویسین که لیست شما رو پیمایش کنه و در صورت نبود اسم مورد نظر اونو ثبت کنین مثل کد زیر

کد:
function searchcbx(cbx:TComboBox;search:string):Integer;
var
  i:Integer;
begin
  Result:=-1;
for i:=0 to cbx.Items.Count-1 do
begin
   if cbx.Items.Strings[i]=search then
   begin
   Result:=i;
   Break;
   end;
end;
end;

این تابع 2 پارامتر داره اوای اسم Combobox ی که میخواهین درش جستجو رو انام بدین و دومی هم مقداری که میخواهین جستجو کنین

در صورتی که مقدار مورد نظر یافت بشه خروجی تابع مقدار Index اون نام خواهد بود در غیر این صورت مقدار 1- رو برمیگردونه

کد:
procedure TForm1.Button1Click(Sender: TObject);
begin
if searchcbx(ComboBox1,ComboBox1.Text)>=-1 then
Insert
else
ShowMessage('found in list');
end;

جواب 2:
در رویداد OnDropDown شیئ combobox

[تصویر:  xshon.png]
از آن نماز که خود هیچ از آن نمی فهمی خدا چه فایده و بهره اکتساب کند
تفاخری نبود مر خدای عالم را که چون تو ابلهی او را خدا حساب کند
۲۷-دى-۱۳۸۸, ۲۰:۴۴:۳۲
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : dcamera
dcamera آفلاین
كاربر دو ستاره
**

ارسال‌ها: 68
موضوع‌ها: 9
تاریخ عضویت: مرداد ۱۳۸۸

تشکرها : 16
( 16 تشکر در 10 ارسال )
ارسال: #4
RE: نمايش پيغام در صورت ورود مقادير تکراري + ليست کردن يک فيلد در کمبو باکس1
سلام

این کد برای dbcombobox مشکل داره.چون توی تابع کومبو رو معمولی تعریف شده اما با تغییرش

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

استفاده میکنم که اونو همونطوری که گفتین توی dropdown نوشتم ولی اررو میده :
could not convert variant of type (null) into type (string)
با استفاده از vartostr هم الان کدش مشکل داره.

همچنین چون کمبو به فیلد نام متصل است و خودکار همون اول مقدار text این کنترل از بانک خوند

میشه قبل از ارور چندین بار (به تعداد fieldcount) بهش اد میشه.

کد خوندن و اضافه کردن »

کد:
DBCombobox1.Clear;

For i:=1 to adotable1.RecordCount do begin
DBCombobox1.items.add(adotable1['name']);
adotable1.next
end;

کد رو آپلود کردم مشکلش چیه؟؟

در این کد میخام بعد از اد و حذف یک رکورد بلافاصله لیست کامل در آیتم کمبو بیاد. و در صورت که مقادیر تکراری دادیم اضافه نشه.
راستی میشه مستقیم از بانک سرچ کنیم و بررسی کرد و اگه وجود داشت پیغام بده؟

متشکرم


فایل‌(های) پیوست شده
.rar   dCamera TEST.rar (اندازه: 16.38 KB / تعداد دفعات دریافت: 63)
۲۹-دى-۱۳۸۸, ۰۱:۲۷:۳۴
ارسال‌ها
پاسخ
dcamera آفلاین
كاربر دو ستاره
**

ارسال‌ها: 68
موضوع‌ها: 9
تاریخ عضویت: مرداد ۱۳۸۸

تشکرها : 16
( 16 تشکر در 10 ارسال )
ارسال: #5
RE: نمايش پيغام در صورت ورود مقادير تکراري + ليست کردن يک فيلد در کمبو باکس1
دوستان این برنامه مشکلش چیه؟؟
۳۰-دى-۱۳۸۸, ۰۳:۰۱:۲۹
ارسال‌ها
پاسخ
lord_viper غایب
مدیر کل انجمن
*****

ارسال‌ها: 3,949
موضوع‌ها: 352
تاریخ عضویت: بهمن ۱۳۸۴

تشکرها : 5193
( 9875 تشکر در 2650 ارسال )
ارسال: #6
RE: نمايش پيغام در صورت ورود مقادير تکراري + ليست کردن يک فيلد در کمبو باکس1
برای دردسر کمتر بهتره از combobox استفاده کنین

و برای کارایی بیشتر از Adoquery

[تصویر:  xshon.png]
از آن نماز که خود هیچ از آن نمی فهمی خدا چه فایده و بهره اکتساب کند
تفاخری نبود مر خدای عالم را که چون تو ابلهی او را خدا حساب کند
۳۰-دى-۱۳۸۸, ۰۹:۴۶:۰۸
وب سایت ارسال‌ها
پاسخ


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  مشکل در اجراء برنامه به صورت خودکار The.Ghost 6 3,612 ۲۸-فروردین-۱۳۹۵, ۱۴:۱۱:۱۷
آخرین ارسال: The.Ghost
  آموزش دلفی به صورت تصویری و با توضحیحات کامل ( Delphi XE3 ) pr0gramm3r 3 10,558 ۳۰-اردیبهشت-۱۳۹۲, ۰۹:۵۶:۵۰
آخرین ارسال: pop_0098
  برنامه هک یا فعال وغیر فعال کردن ویا پیدا کردن سورس فایل DLL ali2100 6 10,836 ۲۱-آذر-۱۳۸۷, ۱۳:۰۴:۳۸
آخرین ارسال: P.Bayat
  برج هانوی به صورت بازگشتی و گرافیکی giti123 1 3,517 ۲۲-آبان-۱۳۸۷, ۲۲:۵۲:۰۹
آخرین ارسال: lord_viper

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS