PDA

View Full Version : سوال: مشکل با case



Mask
شنبه 20 فروردین 1390, 12:15 عصر
با سلام
چرا دلفی اجازه استفاده از این دستور رو نمیده.

var i:integer;
begin
I:=ComboBox1.Items.IndexOf(ComboBox1.Text);
case ComboBox1.ItemIndex of
I:begin
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Append('select * from Table1 where (Name like ''%'+ComboBox1.Text+'%'')');
ADOQuery1.Open;
end;
end;
اگه این محدودیت این دستوره .... چه راه حلی رو پیشنهاد میکنید.؟

SAASTN
شنبه 20 فروردین 1390, 14:40 عصر
چرا دلفی اجازه استفاده از این دستور رو نمیده.
چون هریک از حالات Case باید با یه عبارت ثابت معرفی بشن، در صورتی که شما از متغیر استفاده کردید.

اگه این محدودیت این دستوره .... چه راه حلی رو پیشنهاد میکنید.؟
والا من هرچی نگاه می کنم نمی فهمم منظور شما از نوشتن این کد چیه. شما اول اومدی I رو برابر یه عبارتی قرار دادی بعد Case بستی رو همون عبارت که اگه برابر I بود فلان... خوب I بی شک برابر اون مقدار هست دیگه . Case بستن برای چیه؟:متفکر:
اگه می خوای توی QueryStringت ComboBox1.Text حتما مقدار داشته باشه، باید یکی از دو شرط زیر رو چک کنی:

ComboBox1.ItemIndex > -1
ComboBox1.Text <> ''

a_mosavian
شنبه 20 فروردین 1390, 19:08 عصر
والا منم نفهمیدم منظور از این کد چی بوده! ممکنه مثال بهتری ارائه کن.

Mask
یک شنبه 21 فروردین 1390, 23:25 عصر
ممنون از دوستان
شرمنده نتونستم زود جواب بدم.
مشكلم اين بود كه if رو يادم رفته بود.
مشكلم حل شد.