PDA

View Full Version : عدم Select در Edit



Pr0grammer
شنبه 11 آبان 1387, 14:44 عصر
چطوری میتونم کاری کنم که کاربر اصلاً نتونه متن توی Edit رو انتخاب کنه!؟ منظورم AutoSelect نیست، کلاً نتونه با موس متن رو انتخاب کنه! ممنون میشم اگه کسی راهنمائیم کنه.

vcldeveloper
شنبه 11 آبان 1387, 21:35 عصر
چه Editایی؟ Editایی که خودتان ساختید؟ اگر خودتان یک کنترل جدید ساختید، می تونید پیام های WM_SETSEL را Handle کنید تا این پیام به کنترل Edit نرسه، و در نتیجه متنی انتخاب نشه. درباره چگونگی اش هم قبلا توضیح داده شده --> message handlers

اصغر (پآچ)
یک شنبه 12 آبان 1387, 08:51 صبح
سلام دوستان

اگه Edit رو Disable کنن امکان انتخاب متن حتی کلیک روی اون از گرفته نمیشه؟
فرق این روش با Handel کردن Edit چیه؟

موفق و موید باشی

Pr0grammer
یک شنبه 12 آبان 1387, 11:58 صبح
سلام دوستان

اگه Edit رو Disable کنن امکان انتخاب متن حتی کلیک روی اون از گرفته نمیشه؟

میشه! اما تفاوتش در متنش هست که مثه حالت Enable نیست!

حمیدرضاصادقیان
یک شنبه 12 آبان 1387, 12:03 عصر
سلام.شما میتونی Readonly اونو true کنی که هم رنگ متن درست هست هم کاربر نمیتونه اونو انتخاب کنه.

Pr0grammer
یک شنبه 12 آبان 1387, 13:38 عصر
سلام.شما میتونی Readonly اونو true کنی که هم رنگ متن درست هست هم کاربر نمیتونه اونو انتخاب کنه.

جناب صادقیان ممنون از توجهتون ، اما اگه خودتون یه بار چک میکردید، متوجه می شدید که اگه ReadOnly رو True کنم تنها امکان ویرایش رو از کاربر می گیرم و متن توی Edit به راحتی Select میشه!

شاید من منظورم رو بد رسونده باشم، من می خوام اگه مثلاً توی یه Edit واژه ای مثل Salam نوشته شده بود کاربر نتونه کل متن یا بخشی از اونو (مثل lam) رو انتخاب کنه!

Pr0grammer
یک شنبه 12 آبان 1387, 13:43 عصر
چه Editایی؟ Editایی که خودتان ساختید؟ اگر خودتان یک کنترل جدید ساختید، می تونید پیام های WM_SETSEL را Handle کنید تا این پیام به کنترل Edit نرسه، و در نتیجه متنی انتخاب نشه. درباره چگونگی اش هم قبلا توضیح داده شده --> message handlers

آقای کشاورز عزیز، منظورتون از چه Editیی؟ رو متوجه نشدم! :متفکر: خب یه Edit ساده که از تب Standard روی فرم گذاشتم! و من editیی نساختم! :افسرده:

در مورد کار با Handle هم کلی وقت گذاشتم و توی سایت سرچ کردم، اما ارتباط چندانی با موضوع من نداشتند ، اما خدایی چیزهای زیادی یاد گرفتم ... و چون دلیله سرچ کردنم توصیه شما بود ازتون ممنونم :قلب:

هنوز منتظر راهنائیتون هستم و خودم هم دارم روش کار می کنم، اگه به نتیجه رسیدم م گم، یا علی

as13851365
یک شنبه 12 آبان 1387, 17:42 عصر
به نظر من شما باید کنترل رو از این ادیت بگیری یعنی کار کنی که کنترل برنامه به داخل این edit نره

مثلا :
form1.perform(wm_nextdialog,0,0)
فکر کنم باید یه همچین چیزی باشه حالا شما این کد رو در رویداد های onclick و .... وارد می کنید و بعد از این هر وقت که کاربر خواست Edit رو انتخاب کنه کنترل برنامه به شئ دیگه ای منتقل می شه

vcldeveloper
یک شنبه 12 آبان 1387, 17:44 عصر
من نگفتم Handle، گفتم Message Handler!

منظورتون از چه Editیی؟ رو متوجه نشدم! :متفکر: خب یه Edit ساده که از تب Standard روی فرم گذاشتم! و من editیی نساختم!



TMyEdit = class(TEdit);
private
procedure WmSetSel(var Msg: TMessage); message WM_SETSEL;
end;

.............

procedure TMyEdit.WmSetSel(var Msg: TMessage);
begin
//Do nothing
end;

Hamid.Kad
دوشنبه 13 آبان 1387, 10:36 صبح
جناب رضا
منظور آقاي كشاورز اينه كه يا بايد edit رو بصورت ديناميك يعني در زمان اجرا بنويسيد و اين روال رو بنويسيد، يا يه كامپوننت درست كنيد كه از كلاس TEdit مشتق بشه و اين Message Handler رو براش در نظر بگيريد.

mafazel
دوشنبه 13 آبان 1387, 15:29 عصر
کاری نداره که :لبخند:
توی Edit1.OnMouseMove بنویس Edit1.SelLength := 0

ghasemshami
یک شنبه 19 آبان 1387, 11:12 صبح
مثلا دو تا Edit داری و توی ادیت اولت توی خاصیت OnEnter بنویس
Edit2.SetFocus;

merced
دوشنبه 20 آبان 1387, 18:04 عصر
procedure TForm1.Edit1Enter(Sender: TObject);
begin
SelectNext(Edit1,True,True);
end;



البته حداقل دو تا کامپوننت قابل select شدن داشته باشي

Pr0grammer
دوشنبه 20 آبان 1387, 19:12 عصر
دوست عزیز اولاً ممنون ازتوجهتون!
اما من خیلی وقته به نتیجه رسیدم (پاسخ mafazel) .... تاپیک رو هم که جزء تاپیک های به نتیجه رسیده هم قرار دادم!

موفق باشید