View Full Version : سوال: سؤال در مورد CommonDialog
Hassan2500
پنج شنبه 30 شهریور 1391, 18:00 عصر
سلام
از دوستان ميخوام اين سورس زير که براي عکس گرفتن از پنجره باز شده در ويندوز است اين چيزهائي رو که ميخوام بهش اضافه کنيد
1- اگر در اون مکاني که ميخوايم الآن فايل رو ذخيره کنيم اين فايل با اين نام وجود داره بعدش اين پيام ظاهر بشه
MsgBox "فايل وجود دارد.نام ديگري را انتخاب کنيد"
و همچنين در سمت راست قسمت آبي بالاي MsgBox نوشته شود "فايل تکراري"
2- وقتي File name پر است و دکمه ضرب در يا Cansel پنجره CommonDialog زده ميشه فايل را خودش ذخيره ميکنه من فقط ميخوام وقتي دکمه Save رو زدم فايل ذخيره بشه
93154
vbhamed
دوشنبه 03 مهر 1391, 14:55 عصر
دوست عزیز میخوای توضیحات کل پروژه رو بنویس بده بچه ها واست بنویسن و یه مبلغی بده
ولی اینکه بدون اینکه قصدت بادگیری باشه هی میای را جع به بخش های مختلف برنامت سوال میپرسی و کد تحویل میگیری فکر نمیکنم درست باشه
پست هاتونم هی میکشید بالا! خب کسی بخواد جواب بده میده دیگه چرا هی میاری بالا؟
سلام
arenaw (http://barnamenevis.org/member.php?203395-arenaw) عزيز
فكر نكنم دوستمون چيز نامناسبي پرسيده باشن، برنامه رو نوشتن فقط مشكلشون رو پرسيدن نه كل برنامه رو
اينم كد دكمه ذخيره شما :
Private Sub Command1_Click()
On Error Resume Next
Do
CommonDialog1.CancelError = True
Err.Clear
CommonDialog1.ShowSave
If Err = 32755 Then Exit Do
DoEvents
If Dir$(CommonDialog1.FileName) <> "" Then
MsgBox "فايل وجود دارد.نام ديگري را انتخاب کنيد", , "فايل تكراري"
Else
SavePicture GetScreenBitmap(True), CommonDialog1.FileName
Exit Do
End If
Loop
End Sub
Hassan2500
سه شنبه 04 مهر 1391, 01:14 صبح
سلام
جناب vbhamed کدی که در پست5 نوشتید عالیه براتون یه زحمت دیگه دارم اون چیزائی رو که در پست1 خواستم اگه زحمتتون نمیشه روی این سورس زیر هم اعمال کنید و این سورس کارش اینه که متن Text رو داخل Word یا Notepad ذخیره میکنه راستش خودم هر کاری کردم و این کدی رو که نوشتید رو برای این سورس هم بکار بردم اما نشد و برنامه کار نمیکنه کدش باید چطوری نوشته بشه در ضمن اینم برام درست کنید وقتی متن Text داخل Word ذخیره میشه و بعد فایل ذخیره شده Word رو باز میکنم نوشته ها سریع ظاهر نمیشن و این پیام زیر ظاهر میشه و این در حالتیه که زبان ویندوز هم فارسی است چکار کنم برطرف بشه اگه مشکل از کدشه کدش رو برام اصلاح کنید ممنون میشم
93228
93227
vbhamed
سه شنبه 04 مهر 1391, 07:06 صبح
سلام
كد زير براي تغييرات CommonDialog، ولي دليل اينكه تو Word اون پنجره مياد اينه كه شما يك فايل متني رو با پسوند Doc ذخيره كرديد و خب اين فايل فرمت فايلهاي واقعي Word رو نداره و Word هم اين رو تشخيص ميده، بايد با فرمت خود Word بنويسيد كه براي اين كار بايد راجع به OLE تحقيق كنيد، براي راهنمايي در جعبه ابزار VB يك آيكون به نام OLE وجود داره
Private Sub Command1_Click()
On Error Resume Next
Do
With cd1
CommonDialog1.CancelError = True
Err.Clear
CommonDialog1.ShowSave
.FileName = ""
.ShowSave
If Err = 32755 Then Exit Sub
If Dir$(cd1.FileName) <> "" Then
MsgBox "فايل وجود دارد.نام ديگري را انتخاب کنيد", , "فايل تكراري"
Else
Exit Do
End If
End With
Loop
FilePach = cd1.FileName
Dim Ins1 As String
Inst1 = Text1
Open FilePach For Output As #1
Print #1, Inst1
Close 1
h = FilePach
End Sub
Hassan2500
سه شنبه 04 مهر 1391, 11:59 صبح
سلام
ولي دليل اينكه تو Word اون پنجره مياد اينه كه شما يك فايل متني رو با پسوند Doc ذخيره كرديد و خب اين فايل فرمت فايلهاي واقعي Word رو نداره و Word هم اين رو تشخيص ميده، بايد با فرمت خود Word بنويسيد كه براي اين كار بايد راجع به OLE تحقيق كنيد، براي راهنمايي در جعبه ابزار VB يك آيكون به نام OLE وجود داره
جناب vbhamed من برنامه نویسی ام ضعیفه و نمیدونم باید چکار کنم یعنی دقیقا در قسمت Filter بجای *.doc|*.doc چه چیزی رو بنویسم مگه Word 2003 فرمتش doc نیست اگه میشه کامل توضیح بدید که این مشکل هم برطرف شه
Hassan2500
چهارشنبه 05 مهر 1391, 19:08 عصر
از دوستان میخام که به پست5 جواب بدید
Hassan2500
پنج شنبه 06 مهر 1391, 19:11 عصر
از دوستان کسی نیست پاسخ بده
vbhamed
جمعه 07 مهر 1391, 09:51 صبح
سلام
Dim x As Object
Set x = CreateObject("Word.Application")
x.Documents.Add
With x.Selection
.TypeText "this is a test": .LtrPara: .TypeParagraph
.TypeText "this is a test": .LtrPara: .TypeParagraph
.TypeText "اين يك تست است": .RtlPara: .TypeParagraph
.TypeText "اين يك تست است": .RtlPara: .TypeParagraph
End With
x.ActiveDocument.SaveAs "c:\test.doc", 0, False, "", True, "", False, False, False, False, False
x.Quit
فايل در درايو C با نام Test.doc ذخيره ميشه
براي اطلاعات بيشتر بايد با VBA كار كنين، در محيط Word از منوي Tools گزينه Macros آيتم Record New Marco رو بزنيد بعدش يك سري كار مثل تايپ و ذخيره و جديد و ... انجام بديد و بعد ضبط رو خاتمه بدين، حالا كليد Alt+F11 رو بزنين، تا كد ماكرو به زبان VBA رو ببينيد
Hassan2500
جمعه 07 مهر 1391, 10:11 صبح
جناب vbhamed من میخوام دست به کدنویسی خود برنامه نخوره فقط اون پیام در ورد ظاهر نشه ولی این کدی که گذاشتید میره فایل ذخیره شده رو تو درایو C میندازه یعنی CommonDialog از کار می افته و یه تایپیک جدید ایجاد میکنم که منظورم رو بهتر متوجه بشید
vbhamed
جمعه 07 مهر 1391, 11:07 صبح
سلام
قبلا گفتم فايلي كه به اين روش ايجاد ميشه شما به فرمت Word نيست بنابراين اون پنجره ظاهر ميشه چون بايد كسب تكليف كنه
ضمنا در كد بالا كافيه به جاي نام فايل(C:\Test.doc) بزاريد CommonDialog.FileName
Hassan2500
جمعه 07 مهر 1391, 11:23 صبح
الآن فایل ذخیره شده وقتی CommonDialog1.FileName رو جایگزین کردم در دسکتاپ یا هر جائی دیگه که بخوام ظاهر میشه اما نوشته های تکست1 رو ذخیره نمیکنه و بعد پیام میده آیا میخاید ذخیره بشه یا نه خودتون زحمت بکشید و این کدتون رو به سورسی که دادم اضافه کنید طبق این چیزایی که میخوام
1- نوشته های تکست1 ذخیره بشه
2- مستقیما نوشته های تکست1 ذخیره بشه و بعدش پیامی به نمایش درنیاد یعنی دوباره پیام داده نشه که میخواید ذخیره بشه یا نه
vbhamed
شنبه 08 مهر 1391, 09:36 صبح
سلام
اينم نمونه
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.