ورود

View Full Version : انتقال نوشته قبل از جدید در تکست در یک تکست جدید



xrezax
شنبه 09 مهر 1390, 13:09 عصر
دوستان یک تکست باکس دارم. که توش یک سری اسم می نویسم.
می خوام قتی اسم عوض شد برنامه اسم قبلی رو توی تکست 2 منتقل کنه. همینجور الی آخر.

مثلاً اگه بنویسم. رضا بعد بنویسم محمد برنامه اسم رضا رو منتقل کنه. اگه نوشتم
امیر
امیر
امیر
محمد
باز برنامه اسم قبلی که امیر هست رو ببره توی تکست 2. (یعنی یه طوری باشه اسم قبلی با جدید مقایسه بشه.)
ممنون میشم اگه راه حلی دارید بزارید :قلب:

xrezax
دوشنبه 11 مهر 1390, 20:09 عصر
کسی راه حلی نداره ؟؟؟

Mohamad ghorbani
سه شنبه 12 مهر 1390, 00:11 صبح
کافیه شما یه متغیر تعریف کنی و مقدار تکس اول رو توی اون بریزی
بعد از اینکه اسم بعدی رو وارد کردی مقدار جدید با مقدار متغیر مقایسه شه.

xrezax
سه شنبه 12 مهر 1390, 08:56 صبح
کافیه شما یه متغیر تعریف کنی و مقدار تکس اول رو توی اون بریزی
بعد از اینکه اسم بعدی رو وارد کردی مقدار جدید با مقدار متغیر مقایسه شه.

میشه یه سورسی واسم بزاری؟؟؟ ممنونت میشم

just4froum
سه شنبه 12 مهر 1390, 20:11 عصر
دوستان یک تکست باکس دارم. که توش یک سری اسم می نویسم.
می خوام قتی اسم عوض شد برنامه اسم قبلی رو توی تکست 2 منتقل کنه. همینجور الی آخر.

مثلاً اگه بنویسم. رضا بعد بنویسم محمد برنامه اسم رضا رو منتقل کنه. اگه نوشتم
امیر
امیر
امیر
محمد
باز برنامه اسم قبلی که امیر هست رو ببره توی تکست 2. (یعنی یه طوری باشه اسم قبلی با جدید مقایسه بشه.)
ممنون میشم اگه راه حلی دارید بزارید :قلب:

میشه یکم واضح تر بگی ؟!؟

البته شما خوب توضیح دادین من نفهمیدم

xrezax
سه شنبه 12 مهر 1390, 21:13 عصر
می خوام توی یک تکست بزنم رضا و زمانی که اسم تغییر کرد مثلاً زدم علی برنامه اسم رضارو بفرستی توی یک تکست دیگه (زمانی جابجا بشه که اسم تغییر کنه)

xrezax
چهارشنبه 13 مهر 1390, 21:33 عصر
دوستان کسی کمکی نداره ؟؟

xrezax
جمعه 15 مهر 1390, 17:13 عصر
کسی کمکی نداره ؟؟????????????

محسن واژدی
جمعه 15 مهر 1390, 17:31 عصر
سلام علیکم
کدهای زیر را بررسی کنید:

Option Explicit

Private Sub Text1_GotFocus()
If Text1 > "" Then Text1.Tag = Text1
End Sub

Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = vbKeyEscape Then Text1 = Text1.Tag: Text1.Tag = ""
End Sub

Private Sub Text1_LostFocus()
If Text1 <> Text1.Tag And Text1.Tag > "" Then Text2 = Text1.Tag
End Sub



موفق باشید

xrezax
سه شنبه 19 مهر 1390, 11:04 صبح
راه ساده تری نسیت ؟؟؟

محسن واژدی
سه شنبه 19 مهر 1390, 11:42 صبح
کدهای پیچیده ای نیستند
در زیر بجز کدهای لازم مابقی حذف شده اند:

Dim bkup$
Private Sub Text1_GotFocus()
If Text1 > "" Then bkup$ = Text1
End Sub

Private Sub Text1_LostFocus()
If Text1 <> bkup$ Then Text2 = bkup$
End Sub



موفق باشید

xrezax
چهارشنبه 20 مهر 1390, 19:48 عصر
کار نکرد :متفکر: میشه با پروژه وی بی برام مثال بزنی ؟؟؟؟؟؟؟؟؟؟؟؟

محسن واژدی
پنج شنبه 21 مهر 1390, 17:01 عصر
سلام
دو TextBox با نام های Text1,2 را بر روی فرم قرار بدهید، و کدهای زیر را جایگزین کدهای فرم کنید

برای تست عملکرد هم کافیست نام جدید را در text1 نوشته سپس فوکوس را از روی آن بردارید، که پس از برداشته شدن فوکوس از روی آن، نام قبلی به text2 منتقل میشود

موفق باشید

xrezax
پنج شنبه 21 مهر 1390, 21:12 عصر
تست کردم خیلی کند و اشتباهش بالاست.
راهی نداره با استفاده از Text1_Change این کارو کرد ؟؟؟ دستورات توی Text1_Change باشه که حتماً تغییر کنه

arenaw
پنج شنبه 21 مهر 1390, 21:45 عصر
سلام، میشه؛ کافیه بعد وارد کردن هر اسم یه بار space رو بزنی (کد مربوط به text1_change(

If Right(Text1, 1) = " " Then
Text2 = RTrim(Text1)
Text1 = ""
End If

محسن واژدی
پنج شنبه 21 مهر 1390, 21:46 عصر
سلام علیکم
کد زیر را جایگزین قبلی کنید:

Dim bkup$
Dim mGetOldNamBkup As Boolean
Private Sub Text1_Change()
If mGetOldNamBkup Then
If Text1 <> bkup$ Then
Text2 = bkup$
mGetOldNamBkup = False
End If
End If
End Sub

Private Sub Text1_GotFocus()
If Text1 > "" Then bkup$ = Text1
mGetOldNamBkup = True
End Sub

Private Sub Text1_LostFocus()
mGetOldNamBkup = False
End Sub

البته منظورتان را از کندی و بالا بودن اشتباه متوجه نشدم

موفق باشید

xrezax
جمعه 22 مهر 1390, 00:54 صبح
کار نمیکنه .... ضریب خطاش خیلی بالاست

محسن واژدی
جمعه 22 مهر 1390, 07:54 صبح
کار نمیکنه .... ضریب خطاش خیلی بالاست




پیش بنده مشکلی ندارد، و اگر ممکن است در مورد خطای موجود در آن بیشتر توضیح دهید، چون خطایی نمیدهد

xrezax
جمعه 22 مهر 1390, 10:32 صبح
سورس ضمینه را ببنید. (کارش اینه اسم صفحه جاری توی یک تکست باکس می نویسه)
اگه ممکنه ایدیتش کنید ممنون میشم.

محسن واژدی
جمعه 22 مهر 1390, 12:09 عصر
سلام
کاملا" متوجه مشکل سورس نشدم، اما آنچه را که احتمال دادم مشکل باشد، عدم اجازه تایمر به تایپ در textbox باشد،
همچنین یک listbox هم اضافه کردم، که نام های قبلی که در listbox وجود ندارند را به آن اضافه میکند

http://up9.iranblog.com/images/k0izxpj14513zf7eoj.zip

موفق باشید

xrezax
جمعه 22 مهر 1390, 13:26 عصر
چیزی که من می خوام نیست.
من می خوام اسم اولی و دومی مقایسه بشه همین. و اسم قبلی اگه تکراری نبود بره توی تکست2

vbhamed
شنبه 23 مهر 1390, 08:52 صبح
سلام

Private Sub Text1_Change()

If Right$(Text1, 1) = " " Then
If InStr(Text1, " ") > 0 And InStr(Text1, " ") <> Len(Text1) Then
Dim t() As String
t = Split(Text1, " ")
If UBound(t) > 0 Then
If t(UBound(t) - 1) <> Text2 Then
Text2 = t(UBound(t) - 1)
End If
End If
End If
End If

End Sub


فقط اگر از TextBox چند خطي استفاده مي‌كنيد و اينتر مي‌زنيد و اسم ها رو مي‌نويسيد، تو كد با هر جا عبارت " " رو مي‌بينيد به جاش vbCrLf بزاريد (گيومه ها رو هم حذف كنيد)، ضمنا خط اول هم اين شكلي ميشه
If Right$(Text1, 2) = vbCrLf Then

xrezax
شنبه 23 مهر 1390, 13:21 عصر
بازم کار نداد.
فایل ضمیمه ای که توی پست 19 همین تایپیک گذاشتمو ببینید.