PDA

View Full Version : Common Dialog



vg6688
جمعه 04 مهر 1382, 11:35 صبح
با سلام .

می خواستم بدانم از کجا میتوان فهمید که در Common Dialog کاربر دکمه Cancel را فشار داده است ؟ (در قسمت Print)

لطفا مرا راهنمایی کنید

(سیدشریفی)
شنبه 05 مهر 1382, 12:02 عصر
شما قبل از اینکه جعبه پرینتر را باز کنید باید چند سطر کد زیر را اضافه نمایید این کار باعث خواهد شد موقع فشار دادن کلید انصراف برنامه به خط <span dir=ltr>ErrHandler</span> رجوع نماید

CommonDialog1.CancelError = True
On Error GoTo ErrHandler
CommonDialog1.ShowPrinter

به جای استفاده از <span dir=ltr>On Error GoTo ErrHandler</span> نیز میتوانید کارهای دیگری انجام دهید .
:roll:

mr_esmaily
شنبه 05 مهر 1382, 16:18 عصر
سلام
می بخشید ولی در این کدی که شما(سیدشریفی) ارائه دادین چه کلید انصراف و چه کلید تایید رو بزنیم ErrHandler فراخوانی میشه!
:wink:
چه جوری میشه ، هنگامی که فقط کلید انصراف زده میشه کدی رو به اجرا در آورد یا برعکس؟

روح اله معینی زاده
شنبه 05 مهر 1382, 17:45 عصر
سلام دوست گرامی
مثال زیر رو اجرا کن ببین چطوره
فقط یک کلید و یک CommonDialog روی فرمت قرار بده (برای آزمایش) و کدهای زیر رو در روال کلیک کلید. ببین درست کار می کنه یا نه. اگه درست بود، بعد به برنامه اصلیت انتقالش بده.


Private Sub Command1_Click&#40;&#41;
On Error GoTo eh&#58;
CommonDialog1.ShowOpen
Exit Sub
eh&#58;
If Err = cdlCancel Then MsgBox "Cancel Pressed"
End Sub


با احترام- خدانگهدار.

vg6688
شنبه 05 مهر 1382, 18:25 عصر
با سلام

ببخشید آقای معینی زاده :D
کدی را که شما نوشتید نیز در هیچ زمانی :eh را اجرا نمی‌کند چه زمانی که Open را فشار دهیم چه زمانی که Cancel را بزنیم . :x

با تشکر

روح اله معینی زاده
یک شنبه 06 مهر 1382, 07:28 صبح
سلام دوست گرامی

من کدی رو که نوشتم آزمایش کردم و بعد فرستادم، بنابراین مطمئن بودم که اینجا نوشتم.

شما از چه نسخه ای استفاده می کنید؟ این کدی رو که نوشتم توی وی بی 6 که به ترتیب سرویس پک های 3 و 4 و 5 رو روش نصب کردم آزمایش کردم.

شما ببیند که وقتی کنترل Common Dialog رو اضافه کردید در قسمت مشخصات اون گزینه CancelError رو به True تبدیل کرده اید یا نه؟ من همون مثال رو الان بدون تغییر گزینه CancelError به True یعنی در حالت False اجرا کردم و جواب نداد، یعنی همون حرف شما اتفاق افتاد ولی وقتی اون رو True کردم درست جواب داد. مجدد آزمایش کنید و اگه نشد بگید تا ببینیم مشکل ممکنه از کجا باشه.

با احترام- خدانگهدار

(سیدشریفی)
یک شنبه 06 مهر 1382, 11:16 صبح
مثالی را که در بالا نوشته بودم برنامه اش را در اینجا قرار میدهم
لطفا توجه کنید اگر بعد از باز شدن جعبه پرینتر کلید پرینت را بزنید پیغامی نمایش داده خواهد شد ولی اگر کلید انصراف را بزنید هیچ پیغامی نمایش داده نمیشود و برنامه از تابع مورد نظر خارج خواهد شد

vg6688
دوشنبه 07 مهر 1382, 20:18 عصر
با سلام

ببخشید آقای روح الله
اشکال از من بود که خصوصیت CancelError را True نکرده بودم . :wink:
به هر حال از کمک شما ممنونم.

آقای سید شریفی
برنامه شما را هم امتحان کردم و درست بود ولی نمی‌دانم چرا وقتی کد در Forum را نوشتم ، جواب نداد .
از شما هم به خاطر راهنمایی‌تان تشکر میکنم