![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
![]() Доброго времени суток.
Подскажите пожалуйста, как в RichEdit реализовать механизм, как в редакторе кода. То есть я пишу например SEL нажимаю Ctrl+Space и появляется список с возможными продолжениями SELECT допустим, я вибираю пункт списка и вместо SEL появляется в тексте SELECT. Заранее спасибо! |
#2
|
||||
|
||||
![]() Вы хотите именно реализовать сами это действо или вам важен результат?
Если второе, то просто воспользуйтесь готовыми компонентами, например такой сервис реализован в TMS-компонентах Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#3
|
|||
|
|||
![]() в событии онкейдаун отлавливаешь контрол+пробел
узнаешь позицию каретки получаешь слово перед кареткой до первого не буквенного символа заполняешь листбокс его значениями делаешь листбоксу визибле в трю в событии ончендж листбокса делаешь ему фальш в ричедит вставляешь с заменой текст из листбокса |
#4
|
||||
|
||||
![]() [offtop]Эйнштейн, твою дивизию! Честно, заколебал писать не просто английские, а "программерские" слова на русской раскладке.[/offtop]
Voron, занимался я подобным. Ничего сложного нету, но в паре мест очень любопытные загвоздки бывают. Если любитель, то не советую лезть, юзай готовые решения, а если уже считаешь себя профессионалом - берись, тут поможем, если запутаешься. Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj |
#5
|
|||
|
|||
![]() можно посмотреть открытые ide типа pyscripter или rde
в первом используются компоненты вокруг tsynedit ещё есть какой-то synedit в lazarus и там он на первый взгляд по-мощнее Последний раз редактировалось Pyro, 05.09.2011 в 08:41. |
#6
|
||||
|
||||
![]() Pyro, во-первых, SynEdit это редактор с поддержкой подсветки синтаксиса и кучей дополнительных фич, однако того, что хочет ТС, я в нём не видел.
Во-вторых, Lazarus, если на то пошло - аналог Delphi под Linux. И тут он всяко никаким боком. Так что не путай тут никого... Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj |
#7
|
||||
|
||||
![]() Цитата:
|
#8
|
||||
|
||||
![]() В общем примерно так:
Код:
procedure TForm1.RichEdit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); var Coords: TPoint; begin if (Shift = [ssCtrl]) and (Key = VK_SPACE) then begin RichEdit1.Perform(EM_POSFROMCHAR, WPARAM(@Coords), RichEdit1.SelStart); ListBox1.Left := RichEdit1.Left + Coords.X; ListBox1.Top := RichEdit1.Top + Coords.Y; ListBox1.Show; ListBox1.SetFocus end; end; procedure TForm1.ListBox1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin case Key of VK_ESCAPE: ; VK_RETURN: RichEdit1.SelText := ListBox1.Items[ListBox1.ItemIndex]; else Exit; end; ListBox1.Visible := False; RichEdit1.SetFocus; end;. Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. Последний раз редактировалось Страдалецъ, 07.09.2011 в 15:43. |
#9
|
||||
|
||||
![]() Цитата:
Благодарю!!! |