PDA

View Full Version : کپی کردن متن!!!؟؟



svs-vhs
یک شنبه 13 آبان 1386, 12:55 عصر
واقعا از دوستانی که مشکلات رو حل میکنن ممنونم.:لبخندساده::بامزه:

من می خواهم که با زدن دکمه (command button) , متنی که داخل یه textbox نوشتم.کپی بشه.!!!:لبخندساده:
من از طریق clipboard این کار رو انجام دادم ولی من میخواهم که این متن کپی شده رو تو word یا جای دیگه past کنم که clipboard فقط مخصوص خود وبی هست و خارج از اون کار نمیکنه .!!!:متفکر::ناراحت:
دوستان از چه راهی این کار رو بکنم.
یه سوال دیگه هم دارم که بعد از جواب این سوال ازتون می پرسم.!!:چشمک:

Mbt925
یک شنبه 13 آبان 1386, 13:08 عصر
دوست عزیز شما از روش زیر استفاده کن :




Text1.SetFocus
SendKeys "{Home} + {End}"
SendKeys "^C"


توی این روش ما خیلی راحت از یه ترفند استفاده می کنیم.
توی خط دوم کلید Home رو می زنیم بعد Shift + End رو می زنیم تا متن داخل TextBox انتخاب بشه و بعد کلید Ctrl + C رو می زنیم تا اون متن کپی بشه .
اگه بخواین قسمتی از متن کپی بشه ، باید بجای کل متن ، همون قسمت از متن رو انتخاب کنین.

+ : Shift

^ : Ctrl

svs-vhs
یک شنبه 13 آبان 1386, 13:39 عصر
خب حالا میرسیم به سوال بعد.
البته دوست عزیز باید به اطلاع شما برسونم که من این کار رو بلد بودم . اما با این گفته جدید دیگه کپی نمیشه.
گفته ی جدید: من طبق گفته ی دوستان برای قرار دادن عکس متحرک از ANIGIF استفاده
کردم.حالا که به برنامه این کامونت رو اضافه کردم دیگه این دستور کارنمیکنه.
من برای دکمه ام هم اون دستور رو نوشتم و هم anigif1.play رو .
مشکلش چیه که دیگه کپی نمیکنه؟؟؟؟؟!!!!
حالا باید چیکار کنم.!!!؟؟
!!! من خیلی بهش احتباج دارم دوستان !!!

__siavash__
یک شنبه 13 آبان 1386, 14:52 عصر
با SendMessage و WM_COPY هم کپی نمیشه ؟

svs-vhs
یک شنبه 13 آبان 1386, 16:50 عصر
من طریقه کار با این ها رو بلد نیستم.!!!!! که !!! ):

__siavash__
یک شنبه 13 آبان 1386, 19:24 عصر
اینو یه تست بکن !!!


private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Private Const WM_COPY = &H301

Private Sub Command1_Click()
Dim RetVal As Integer
With Text1
.SetFocus
.SelStart = 0
.SelLength = Len(.Text)
End With
RetVal = SendMessage(Text1.hwnd, WM_COPY, 0&, ByVal 0&)
End Sub


RetVal هم تعداد کارکتر های کپی شده هستش!

ali_habibi1384
دوشنبه 14 آبان 1386, 08:49 صبح
لطفا اگه جواب گرفتین گفتگوی مفید رو کلیک کنین که ما بدونیم

svs-vhs
دوشنبه 14 آبان 1386, 15:48 عصر
اینو یه تست بکن !!!


private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Private Const WM_COPY = &H301

Private Sub Command1_Click()
Dim RetVal As Integer
With Text1
.SetFocus
.SelStart = 0
.SelLength = Len(.Text)
End With
RetVal = SendMessage(Text1.hwnd, WM_COPY, 0&, ByVal 0&)
End Sub


RetVal هم تعداد کارکتر های کپی شده هستش!

آفا سیاوش وقعا کارت درسته!!:تشویق: یه آموزشی هم به ما بده!!:لبخند:
من با این دستور نوشتم و خوب کار کرده.
اما آیا کسی میدونه چرا با اون دستور کار نکرد!!؟؟؟ اولش کار میکرد اما همین با گذاشتن تصویر متحرک خراب شد!!!

کیوان معینی
سه شنبه 15 آبان 1386, 01:23 صبح
هیچ ارتباطی به AnimateGif نداره ، کد ClipBoard رو به این راحتی بنویس :متفکر:


Private Sub Command1_Click()
' ...

Clipboard.Clear
Clipboard.SetText (Text1.Text)

' ...
End Sub

r_o_o_z_y
سه شنبه 15 آبان 1386, 10:46 صبح
بهترین و ساده ترین راه اینه :

call Clipboard.SetText (Text1.Text)

svs-vhs
پنج شنبه 17 آبان 1386, 15:51 عصر
اما این راه ها تو خود vb کار میکنه فکر کنم .و خارج از اون کار نمی کنه (past نمی شه)!!!