PDA

View Full Version : کامپایل نشدن بعضی از کدها!!!!!



حمیدرضاصادقیان
دوشنبه 03 مهر 1385, 14:21 عصر
سلام دوستان.میخواستم ببینم چرا در کد زیر تیکه سوم داخل حلقه کامپایل نمیشه.ولی وقتی متغیر رو عمومی تعرییف میکنی اونو کامپایل میکنه.


For i:=0 to 11 do
begin
j:=1;
Sql.Add('And substring(dat,4,5)='+inttostr(j)+' and Substring(dat,7,8)>=01' );
j:=j+1;
end;

قسمتی که داره یک واحد به j اضافه میکنه کامپایل نمیشه.

Mahyaa
دوشنبه 03 مهر 1385, 14:26 عصر
فکر کنم چون در این قسمت دیگه از j استفاده نمیشه , کد Optimize شده و این خط Compile نمیشه .
به hint ها در پیغامهای کامپایل که توجه کنید ، کمک زیادی میکنه .

البته اگر بخواهید میتونید امکان Optimize کردن کد توسط دلفی رو غیر فعال کنید.

حمیدرضاصادقیان
دوشنبه 03 مهر 1385, 14:40 عصر
خوب الان من که دارم از این متغیر استفاده میکنم.پس چرا اونو کامپایل نمیکنه.بعد اگر به صورت عمومی تعریف بشه این کد رو کامپایل میکنه.

Mahyaa
دوشنبه 03 مهر 1385, 14:49 عصر
نمیدونم در ادامه کد به چه شکلی از J استفاده کردید ، حتما یک اشتباه کوچکی در کدتون وجود داره ! من مشکل مشابه داشتم و برای پیدا کردنش هم خیلی وقتم گرفته شد . اگر وقتتون فعلا اجازه نمیده تا اشکال رو پیدا کنید می تونید امکان Optimize کردن رو غیر فعال کنید .(البته کار چندان درستی نیست.)

dkhatibi
دوشنبه 03 مهر 1385, 15:17 عصر
خوب حتما یک واحد اضافه می شه اما وقتی دوباره حلقه شروع شد اون مقدار 1 می شه
یعنی مقدار قابل استفاده برای شما همیشه یک است.برای اینکه بخواهید منظور خود را برسانید احتمالا باید J را در بیرون از حلقه مقدار دهی کنید.

حمیدرضاصادقیان
سه شنبه 04 مهر 1385, 07:28 صبح
واقعا ممنون. سوتی خیلی ابتدایی دادم!!!!!!!

dkhatibi
سه شنبه 04 مهر 1385, 14:22 عصر
بعضی وقتها با تجربه ها هم اشتباهات ابتدایی می کنن. نه؟!!!

حمیدرضاصادقیان
سه شنبه 04 مهر 1385, 14:32 عصر
البته من که باتجربه نیستم ولی دقیقا همینطوره