PDA

نسخه کامل مشاهده نسخه کامل : random‌در دلفي



sara_she
23-08-2007, 09:17
سلام

مي خوام تو دلفي به ازاي هر كاربري كه وارد نرم افزار حسابداري مي شه يك عدد تصادفي براي اين كاربر تو بانك ثبت بشه

توليد عدد تصادفي تو دلفي با چه تابعي انجام مي شه و مقدار برگشتي از اين تابع از چه نوعي هست؟

مرد مباح
23-08-2007, 09:43
اول باید کلمه کلیدی Randomize رو بنویسی تا تمام احتمالات رو هم شانس کنه.
بعد بسته به میران مورد نظر x از تابع Random(x) استفاده کن. البته خروجی یک عدد اعشاری بین صفر و عدد x خواهد بود و اگه بخوای میتونی روند کنیش.

sara_she
23-08-2007, 10:24
اگه يه نمونه كد بذارين ممنون مي شم

مرد مباح
23-08-2007, 12:08
اینو توی بخش OnFormShow بزارین.

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

برای مثلا هم این کد رو توی OnClick یک دکمه بنویسید :

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

وقتی دکمه رو فشار بدین توی لیبل یک عدد تصادفی بین 0 تا 99 ایجاد میشه.
اگه بخواید 1 تا 100 باشه باید به مقدار اون عدد یک رو اضافه کنید.

موفق باشی.

afshinaghasi
24-08-2007, 08:36
سلام خوبی
بهتره از هیچ کدوم این کارها استفاده نکنی
بهترین کار اینه که اگر از بانک اطلاعاتی access استفاده میکنی جنس اون فیلدت رو autonumber بگیری وprimarykey هم روش انجام بدی تا یه کد دیگه مثل اون ایجاد نشه .این کار باعث میشه که هر وقت رکوردی به بامکت اضافه کردی این فیلد خودش به صورت اتوماتیک یک دونه بهش اضافه بشه. تازه اگر بخواهی یه عدد تصادفی ایجاد کنی شاید 2تاش یا بیشتر مثله هم درست بشه .بهتره این کارا رو روی بانکت انجام بدی .بای بای

soldier
25-08-2007, 09:05
سلام

خوب حالا برای اینکه با تابع Random آشنا بشی با اجازه مردمباح کد ها رو کمی ویرایش کنم...

دستور Randomize بهتره توی OnCreate باشه... که هیچ مشکلی پیش نیاد.... دلیل خواستید ، بگید...

برای دستور Random

از 1 تا 50


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

از 0 تا 50


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

از 50 تا 100


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

و برای منفی بودن هم میتونید بجای + منفی رو قرار بدید....

اما برای دیتابیس بستگی به امکانات دیتابیس داره... بعضی از دیتابیس ها امکاناتی مثل

Primary Key و AutoInc... (اینها رو برای نمونه گفتم)

اگر دیتابیس شما امکان Random رو داشت ، نیازی به این دستورات ندارید.

اما بهتره با این تابع آشنا بشی چون بعد ها بدرد میخوره...

موفق باشید

sara_she
25-08-2007, 10:34
سلام
از همكاري دوستان ممنونم

من متوجه نشدم كه چرا بايد randomize فقط يكبار اجرا بشه و در روال formcreate باشه

و در مورد بانك هم از interbase استفاده مي كنم كه زياد به امكاناتي كه داره وارد نيستم

من به جاي استفاده از range كد رو به صورت زير نوشتم:


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

soldier
25-08-2007, 12:43
خوب اگر دستور Randomize استفاده نشه

هر بار که برنامه اجرا شد یک روال همیشگی برای random میمونه...

یعنی هر بار که برنامه اجرا شد و random استفاده کردی با بار اول که برنامه اجرا شده یکی در میاد...

امیدوارم منظورم رو خوب رسونده باشم...

sara_she
27-08-2007, 11:54
مرسي از راهنمايي هاي دوستان