PDA

View Full Version : پاسخ دادن به مسیج باکس از طریق کد ؟



barbazoo
سه شنبه 24 آبان 1384, 12:41 عصر
با سلام

چطور میتوان از طریق کد نویسی یک پنجره باز شده مسیج باکس را اوکی کرد ؟

یعنی فرض کنید شما دستور زیر را نوشته اید:
showmessage('test
;
و برنامه منتظر تایید کاربر است .
حالا من میخواهم برنامه منتظر تایید کاربر نشود و از طریق کد پیغام مربوطه تایید شود .

راه حل چیست؟

----------------------------------------------------------------------------------------------------------------------
با تشکر از همه اعضا محترم

Touska
سه شنبه 24 آبان 1384, 15:33 عصر
IF MessageDlg() = mrOk Then
Begin
....
End;

اَرژنگ
سه شنبه 24 آبان 1384, 15:40 عصر
برنامه Send Keys را که با دلفی میاد استفاده کن که یا Space or Enter را به بالاترین پنجره بفرسته.
منتها این سوال عجیب و غریبی هست، اگر سورس برنامه دسدان هست چرا از
SendMessage استفاده میکنید؟ من که سر در نمیارم!:گیج:

mzjahromi
سه شنبه 24 آبان 1384, 15:40 عصر
منظور دوستمون اینه که عملیات Ok کردن کاربر رو شبیه سازی کنیم

barbazoo
چهارشنبه 25 آبان 1384, 08:52 صبح
با تشکر از آقای ذوالقدر که منظور منو بهتر بیان کردند :
اما من منظور ارژنگ رو متوجه نشدم - اگه ممکنه واضح تر توضیح بدین - ممنون میشم .

من اینکار رو برای این لازم دارم که : در برنامه ام از یه کامپوننت shareware استفاد ه کرده ام وبه همین خاطر در ابتدای اجرای برنامه یه پیغام مربوط به اون کاتمپوننت نمایش داده میشه - بنابراین من میخوام پیغام مورد نظر خودبخود OK بشه .

حالا فکر کنم راحتتر بتونید به من کمک کنید ! :-)

با تشکر از همه

m-khorsandi
چهارشنبه 25 آبان 1384, 10:45 صبح
میشه بفرمائید چه کامپوننتی هست؟

اَرژنگ
چهارشنبه 25 آبان 1384, 14:46 عصر
درسی دی دلفی یک برنامه به نام Send Keys هست.
نشان میده که چطوری شرایط بازسازی فشار دادن به یک کلید را بازسازی کرد.
شما میتونید قبل از اینکه OK Dialig Box ضهور پیدا کنه، در یک thread دیگر یا برنامه دیگه سعی کنید که کلید Enter یا Space را به برنامه بفرستید.
در برنامه اصلی میتوانید برنامه‌ای را که فشار دادن کلیدها را تمثیل میکند پایان دهید.

Hamid_PaK
پنج شنبه 26 آبان 1384, 06:55 صبح
از SendMessage استفاده کنید
سادست باید Handle دکمه را ابتدا پیدا کنید ، که اون نیاز به Handle فرمی داره که دکمه درون اون هست ...
FindWindow مک می کنه Handle فرم و FindWindowEx به Handle شی های درون فرم ...
در انتها باید از Message مربوط به دکمه ها استفاده کنید ( BM_CLICK ) :


SendMessage(Button1.Handle,BM_CLICK,0,0);


باعث کلیک بروی دکمه Button1 می شه حالا جای Handle دکمه مورد نظر رو قرار بدهید ...

یا حق !!!

barbazoo
پنج شنبه 26 آبان 1384, 07:45 صبح
کامپوننت مورد نظر IMG DATA NAVIGATOR است .

vcldeveloper
جمعه 27 آبان 1384, 02:53 صبح
MessageBox ها بصورت Modal فراخوانی میشند و اجرای برنامه تا بسته شدن MessageBox متوقف میشه، پس دستور SendMessage تا زمانی که MessageBox باز هست، ارسال نمیشه!

Naficy
شنبه 28 آبان 1384, 20:59 عصر
...مگر اینکه همونطور که گفتند در یک Thread جدا نوشته بشه.
به نظر من کرک کامپوننته رو پیدا کنین خیییلی بهتره.