PDA

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 صبح
سلام

اينم نمونه