چطوری میتونم کاری کنم که کاربر اصلاً نتونه متن توی Edit رو انتخاب کنه!؟ منظورم AutoSelect نیست، کلاً نتونه با موس متن رو انتخاب کنه! ممنون میشم اگه کسی راهنمائیم کنه.
چطوری میتونم کاری کنم که کاربر اصلاً نتونه متن توی Edit رو انتخاب کنه!؟ منظورم AutoSelect نیست، کلاً نتونه با موس متن رو انتخاب کنه! ممنون میشم اگه کسی راهنمائیم کنه.
چه Editایی؟ Editایی که خودتان ساختید؟ اگر خودتان یک کنترل جدید ساختید، می تونید پیام های WM_SETSEL را Handle کنید تا این پیام به کنترل Edit نرسه، و در نتیجه متنی انتخاب نشه. درباره چگونگی اش هم قبلا توضیح داده شده --> message handlers
وَ سَيَعْلَمُ الَّذِينَ ظَلَمُوا [آل محمد حقهم] أَيَّ مُنْقَلَبٍ يَنْقَلِبُونَ - الشعراء (227)
و ظالمین [حق آل محمد (ص) ] به زودی خواهند دانست که به کدام بازگشتگاه بازخواهند گشت.
سلام دوستان
اگه Edit رو Disable کنن امکان انتخاب متن حتی کلیک روی اون از گرفته نمیشه؟
فرق این روش با Handel کردن Edit چیه؟
موفق و موید باشی
سلام.شما میتونی Readonly اونو true کنی که هم رنگ متن درست هست هم کاربر نمیتونه اونو انتخاب کنه.
جناب صادقیان ممنون از توجهتون ، اما اگه خودتون یه بار چک میکردید، متوجه می شدید که اگه ReadOnly رو True کنم تنها امکان ویرایش رو از کاربر می گیرم و متن توی Edit به راحتی Select میشه!
شاید من منظورم رو بد رسونده باشم، من می خوام اگه مثلاً توی یه Edit واژه ای مثل Salam نوشته شده بود کاربر نتونه کل متن یا بخشی از اونو (مثل lam) رو انتخاب کنه!
آقای کشاورز عزیز، منظورتون از چه Editیی؟ رو متوجه نشدم! خب یه Edit ساده که از تب Standard روی فرم گذاشتم! و من editیی نساختم!
در مورد کار با Handle هم کلی وقت گذاشتم و توی سایت سرچ کردم، اما ارتباط چندانی با موضوع من نداشتند ، اما خدایی چیزهای زیادی یاد گرفتم ... و چون دلیله سرچ کردنم توصیه شما بود ازتون ممنونم
هنوز منتظر راهنائیتون هستم و خودم هم دارم روش کار می کنم، اگه به نتیجه رسیدم م گم، یا علی
به نظر من شما باید کنترل رو از این ادیت بگیری یعنی کار کنی که کنترل برنامه به داخل این edit نره
مثلا :
form1.perform(wm_nextdialog,0,0)
فکر کنم باید یه همچین چیزی باشه حالا شما این کد رو در رویداد های onclick و .... وارد می کنید و بعد از این هر وقت که کاربر خواست Edit رو انتخاب کنه کنترل برنامه به شئ دیگه ای منتقل می شه
من نگفتم 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;
وَ سَيَعْلَمُ الَّذِينَ ظَلَمُوا [آل محمد حقهم] أَيَّ مُنْقَلَبٍ يَنْقَلِبُونَ - الشعراء (227)
و ظالمین [حق آل محمد (ص) ] به زودی خواهند دانست که به کدام بازگشتگاه بازخواهند گشت.
جناب رضا
منظور آقاي كشاورز اينه كه يا بايد edit رو بصورت ديناميك يعني در زمان اجرا بنويسيد و اين روال رو بنويسيد، يا يه كامپوننت درست كنيد كه از كلاس TEdit مشتق بشه و اين Message Handler رو براش در نظر بگيريد.
کاری نداره که
توی Edit1.OnMouseMove بنویس Edit1.SelLength := 0
مثلا دو تا Edit داری و توی ادیت اولت توی خاصیت OnEnter بنویس
Edit2.SetFocus;
procedure TForm1.Edit1Enter(Sender: TObject);
begin
SelectNext(Edit1,True,True);
end;
البته حداقل دو تا کامپوننت قابل select شدن داشته باشي
دوست عزیز اولاً ممنون ازتوجهتون!
اما من خیلی وقته به نتیجه رسیدم (پاسخ mafazel) .... تاپیک رو هم که جزء تاپیک های به نتیجه رسیده هم قرار دادم!
موفق باشید