PDA

View Full Version : عبارات شرطی در دلفی



Diabolic
چهارشنبه 17 تیر 1388, 19:23 عصر
سلام به همه
کسی کتابی در مورد عبارات شرطی در دلفی داره ؟ یا میتونه کاملا برام توضح بده ؟ البته اگه وقت داره
البته کتاب خیلی بهتره
مثلا :
این کد رو به زبون دلفی بهم بدید :
اگر ایکس مساوی با 10 بود برو به صفحه بعد ، در غیر اینصورت از برنامه خارج شو
ممنون از همه

tdkhakpur
چهارشنبه 17 تیر 1388, 22:31 عصر
سلام
کدام صفحه؟

Diabolic
چهارشنبه 17 تیر 1388, 22:44 عصر
سلام
بالاخره یکی اومد
یعنی چی کدوم صفحه ؟
مثلا اگر کد رو درست در ادیت باکس وارد کرد بره یکی از صفحات و در غیر اینصورت یه پیغام بده یا از برنامه خارج شه

1485159
چهارشنبه 17 تیر 1388, 22:56 عصر
آخه منظور شما فرم هست؟؟
فکر نکنم که صفحه ای باشه؟

Diabolic
چهارشنبه 17 تیر 1388, 23:01 عصر
آره همون فرم
حالا شما چقدر گیر میدید
من یه دلفی کارم که از صفر شروع کردم الان هم 0 هستم
گیر ندید
حالا میگید ؟

Felony
چهارشنبه 17 تیر 1388, 23:15 عصر
if Edit1.Text='123' then ShowMessage('True') else Application.Terminate;

Diabolic
چهارشنبه 17 تیر 1388, 23:44 عصر
دلیل اینکه شما در این کدی که به من دادید علامت ; را بعد از نمایش پیام نگذاشتید چی بود ؟

Diabolic
چهارشنبه 17 تیر 1388, 23:54 عصر
و یه سوال دیگه :
نام متغیر رو از کجا تعیین کنم ؟ یا متغیر همون نام ادیت باکسه ؟

hadiaj168
پنج شنبه 18 تیر 1388, 00:39 صبح
سلام
پیشنهاد من کتاب آقای جعفر نژاد قمی.
ولی pdf زیر که خیلی خیلی مختصر توضیح داده میتونه کارتون رو راه بندازه (درس 6 ساختار های کنترل).

Diabolic
پنج شنبه 18 تیر 1388, 09:53 صبح
حالا کسی نیست جواب سوالهای قبلی منو بده ؟ در مودر نام متغیر و ......... ؟

Tasnim
پنج شنبه 18 تیر 1388, 16:39 عصر
دوست عزیز بهتره شما سوال های خودتو واضح بیان کنی تا سایر دوستان بهتر بتونن کمکتون کنن

Diabolic
پنج شنبه 18 تیر 1388, 19:27 عصر
واضح تر از این که گفتم والا نمیشه
دوباره میگم
چرا آقای تاجیک بعد از نوشتن کد نمایش پیام این علامت رو نذاشت ؟ ( ; )
ممنون

koruir
جمعه 19 تیر 1388, 03:52 صبح
سلام.
چون دستور یک خط بود علامت ; لازم نیست.
Application.Terminate هم چون آخرین خط از دستور شرطی هست؛ توسط ; به پایان میرسه.



if Edit1.Text='123' then
ShowMessage('True')
else
Application.Terminate;


اگه دستور بعد از if چند خط باشه؛ دستورات رو داخل Begin - End مینویسیم و پایان هر خط یک ; میذاریم.



if Edit1.Text = 'pass' then
begin
label1.caption:='Registered';
ShowMessage('True Pass');
end;


متغیرها رو در procedure قبل از Begin مینویسیم.



procedure TForm1.Button1Click(Sender: TObject);
var
s:String;
begin
s := 'salam';
ShowMessage(s);
end;

Diabolic
جمعه 19 تیر 1388, 11:48 صبح
ما درد نکنه برای توضیح خوبتون
الان یه سوال برام پیش اومد :
اگه بعد از نمایش پیام که یک خطه و ششما میگید لازم نیست علامت بذاریم ، من علامت رو بذارم اشکالی نداره ؟ یعنی فرقی نمی کنه ؟
ممنون از همه دوستان

Felony
جمعه 19 تیر 1388, 12:33 عصر
الان یه سوال برام پیش اومد :
اگه بعد از نمایش پیام که یک خطه و ششما میگید لازم نیست علامت بذاریم ، من علامت رو بذارم اشکالی نداره ؟ یعنی فرقی نمی کنه ؟
نه فرقی نمیکنه .

_abiriamir
جمعه 19 تیر 1388, 15:29 عصر
دوست عزیز
به نظر من برای این که بهتر دلفی را یاد بگیرید بهتره که یه معلم داشته باشید
معلم درس ها رو براساس یه نظم خاص میگه ولی (به نظر من) اینجوری که شما یه سوال براتون پیش میاد و اینجا مطرح میکنید درس ها رو طبق نظم یاد نمیگیرید
با این حال اگر سوالی باشد من ( تا آنجایی که بتوانم ) و اساتید بزرگ دلفی که در این سایت عضو هستند مشکلات شما را رفع خواهیم کرد

_abiriamir
جمعه 19 تیر 1388, 15:47 عصر
راجع به showmessage هم که گفتن من یه کد دیگه هم به شما پیشنهاد میکنم:

MessageDlg(your text, dialog type, buttons, help id);
راجع به پارامترهای دستور بالا باید بگویم که پارامتر اول مربوط به متن شما میباشد
پارامتر دوم نوع دیالوگ میباشد که میتوانید مقادیر زیر را بگذارید و امتحان کنید:
mtinformation
mtconfirmation
mtwarning
mterror
که به ترتین مربوط به اطلاعات، پرسش، هشدار و ارور میباشد
پارامتر سوم نیز دکمه های آن میباشد که باید در [] قرار گیرند
[mbok]
[mbcancel]
[mbyes]
[mbno]
[mbretry]
و . . .
که به مرور زمان و براساس نیاز یاد میگیرید
برای داشتن دو یا چند دکمه:
[mbok, mbyes, mbno]
اگر بخواهید شرط بگذارید که کدام دکمه را فشرد:

if messagedlg('Are you sure?', mtConfirmation, [mbYes, mbNo] , 0)=mryes then application.terminate;

پارامتر چهارم نیز مربوط به Help Id هست که فعلا آن را رها کرده و مقدار 0 را برای آن بگذارید

اگر هم بخواهید متن شما دو خطی باشد باید بنویسید:

MessageDlg('Application will be terminated' + #13 + 'Do you accept?', mtconfirmation, [mbYes, mbNo],0);
جریان Chr و Ord را که میدانید:متفکر:
اگر نه که بگویید تا توضیح دهم تا دلیل #13 را بفهمید

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

Diabolic
جمعه 19 تیر 1388, 17:40 عصر
سلام
خوب من باید معلم گیرم درست
اما فعلا نه
کسی میتونه یه ترتیب منظم به من بده که من از روی اون برم دنبال دلفی یاد گرفتن ؟
یعنی یه ترتیب خاص

vcldeveloper
جمعه 19 تیر 1388, 18:43 عصر
کسی میتونه یه ترتیب منظم به من بده که من از روی اون برم دنبال دلفی یاد گرفتن ؟
در هر تاپیک فقط یک موضوع را مطرح کنید. تاپیک را با موضوع عبارات شرطی در دلفی شروع کردید، با چگونگی استفاده از سیماکالن ادامه دادید، و با معرفی مرجع مناسب، و ترتیب یادگیری مطالب در دلفی پیش می برید.

برای هر موضوع یک تاپیک جداگانه در بخش مناسب ایجاد کنید. البته بهتر هست که قبل از ایجاد تاپیک جدید، ابتدا یک کتاب آموزش دلفی مطالعه کنید، و سپس اگر سوالی بود، در تاپیک های قبلی سایت جستجو کنید، و اگر برای آن تاپیکی پیدا نکردید، اینجا تاپیک جدیدی ایجاد کنید.
انجمن هایی مثل اینجا کاربرد رفع اشکال دارند، نه آموزش کامل. پیش فرض کاربران این هست که شما یک حداقلی از دلفی بلد هستید، و حداقل یک کتاب آموزش دلفی یا پاسکال را مطالعه کردید. وگرنه کل این بخش پر میشه از سوالاتی درباره if, for, :=, case, begin end و غیره که همگی در هر کتاب مقدماتی دلفی یا حتی پاسکال که تهیه کنید، پاسخ داده شده اند.

_abiriamir
شنبه 20 تیر 1388, 11:47 صبح
دوست عزیز
اگر مشتاق به یادگیری دلفی و پاسکال هستید باید بگم که من یک جزوه پاسکال دارم که قبلا معلمم برام درست کرده بود
البته چاپ شده
فایل وردشو ندارم
البته مال پاسکال هست نه دلفی
ولی خوب دستورات if, case,... رو توضیح داده
اگه مایل باشید طی هفته های آینه نسخه PDF اون رو میذارم همین جا تا دانلود کنین

_abiriamir
شنبه 20 تیر 1388, 11:50 صبح
راستی نگفتید که جریان chr, ord رو میدونید یا نه

_abiriamir
شنبه 20 تیر 1388, 12:07 عصر
خیلی خوب
پس بذارین تا آنلاینم توضیح بدم
chr یعنی کاراکتر
به طور خلاصه یعنی کد اسکی که از نوع integer هست رو به کاراکتر اون تبدیل میکنه
ord دقیقا برعکس اونه
کاراکتر رو تبدیل به کد اسکی تبدیل میکنه
مثال:

procedure TForm1.Button1KeyPress(Sender: TObject; var Key: Char);
begin
if key = chr(97) then
showmessage('salam');
end;


procedure TForm1.Button1KeyPress(Sender: TObject; var Key: Char);
begin
if key = #97then
showmessage('salam');
end;


procedure TForm1.Button1KeyPress(Sender: TObject; var Key: Char);
begin
if key = char('a') then
showmessage('salam');
end;

هر سه کد بالا یک نتیجه را دارند

ord:


var a : integer;
begin
a:= ord(char('a'));
end;

فقط اشتباه نکنید
چون char با chr فرق میکنه
char در واقع string رو به کاراکتر تبدیل میکنه

در مورد تبدیل ها نیز اگر خواستید بگویید تا توضیح دهم

_abiriamir
شنبه 20 تیر 1388, 12:59 عصر
راستی اگر راجع به حلقه ها هم نمیدانید بگویید تا توضیح دهم:بوس:

در جواب آقای کشاورز هم باید بگم که سخنانشان کاملا صحیح است اما به نظر من اینگونه که در یک تاپیک مباحث اولیه دلفی بیان شده باشد هم از شلوغی سایت برای این مسائل ساده جلوگیری میشود و هم منبع خوبی برای دلفی کاران واقع در نقطه 0 خواهد بود
اما باز هم هر جور که آقای کشاورز صلاح میدونن

vcldeveloper
شنبه 20 تیر 1388, 19:24 عصر
اما به نظر من اینگونه که در یک تاپیک مباحث اولیه دلفی بیان شده باشد هم از شلوغی سایت برای این مسائل ساده جلوگیری میشود و هم منبع خوبی برای دلفی کاران واقع در نقطه 0 خواهد بود
اینطوری جستجو برای کاربران سایت مشکل میشه. و تاپیک انسجام خودش را از دست میده.

_abiriamir
یک شنبه 21 تیر 1388, 19:30 عصر
گفتم که
هر جور شما صلاح میدونید