راهنمایی خواص richedit در دلفی
سلام خدمت اساتید
میخوام یه برنامه مثل ++notepad بنویسم اما چند جاش گیر کردم حسابی
اولی اینکه میخوام قسمتی از متن رنگی شه اونم هوشمند یعنی وقتی تگ باز میشه و تازمانی که بسته میشه رنگش متفاوت باشه مثلا <html>
دومی هم میخوام وقتی اول تگ رو مینویسم پیشنهاد بده حالا مهم اون پیشنهاده نیست مهم موقعیت پاپ اپ منو هس که میخوام با دو کلید کنترل و اسپیس ظاهر بشه در همون موقعیت نوشتن
یعنی سوالم دوتاس اول اینکه چجوری با دو کلید کنترل و اسپیس ظاهر بشه
دوم موقعیتش در جایی که داری مینویسی
دوستان خیلی خیلی سرچ کردم دو یا سه هفتس اگه راهنمایی کنین ممنون میشم
نقل قول: راهنمایی خواص richedit در دلفی
برای همچین برنامه ای بهتره از مجموعه SynEdit استفاده کنید، هم Editor مناسبی داره و هم Syntax Highlighter برای زبانهای مختلف
کامپوننتش Open Source هستش، با کمی جستجو لینک دانلودش رو پیدا می کنید
توی رویداد OnKeyDown ، با دستور Perform می تونید مختصات اشاره گر رو بگیرید و با دستور Popup هم می تونید PopupMenu رو نمایش بدید، مثال :
procedure TForm1.RichEdit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var
P : TPoint;
Msg : TMsg;
begin
if (Key = VK_SPACE) and (Shift = [ssCtrl]) then
begin
PeekMessage(Msg, 0, WM_CHAR, WM_CHAR, PM_REMOVE);
RichEdit1.Perform(EM_POSFROMCHAR, WPARAM(@P), RichEdit1.SelStart);
P := RichEdit1.ClientToScreen(P);
PopupMenu1.Popup(P.X, P.Y + 15);
end;
end;
دستور ClientToScreen مختصات داخلی RichEdit رو به کل صفحه Screen تعمیم میده
دستور PeekMessage برای حذف صدای "دینگ" ای هستش که بعد از زدن کلید ها پخش میشه
مقدار Y رو هم به اضافه 15 کردم که منو زیر خط فعلی باز بشه
ترکیب کلیدهای Enter و Space ترکیب درستی نیست، با زدن کلید Enter اشاره گر به خط پایین میره !
توی مثال بالا از کلیدهای Ctrl + Space استفاده شده
نقل قول: راهنمایی خواص richedit در دلفی
اقا محمد ممنون ازت خیلی توضیحاتت عالی بود زنده باشی کارمو راه انداختی ....فقط واسه سوال اولم راهی نداری؟