|
|
|
Autocomplete
|
|||
|---|---|---|---|
|
#18+
Привет всем. Нужно в апликацию, в редакторе кода встроить Autocomplete. Типо написал Begin, нажал Enter и в следуюшеи строке впыхивается End; Или тож самое про Try...Finally..End; Мож у кого то какои то готовыи кусок кода наидётся или ткните от куда скопировать, мож какие то компоненты такие есть от куда код выдрать? ... WBR Janex ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2020, 15:44 |
|
||
|
Autocomplete
|
|||
|---|---|---|---|
|
#18+
Janex, А в SynEdit нет готового? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2020, 16:55 |
|
||
|
Autocomplete
|
|||
|---|---|---|---|
|
#18+
если вопрос ТОЛЬКО в таких автодополнениях - то оно элементарно делается, OnKeyPress если Enter - то получать слово до предыдущего пробела, если подходит под шаблон - заменять его нужным блоком. Другой вопрос, что с этого обычно все только начинается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2020, 17:07 |
|
||
|
Autocomplete
|
|||
|---|---|---|---|
|
#18+
Vizit0r если вопрос ТОЛЬКО в таких автодополнениях - то оно элементарно делается, OnKeyPress если Enter - то получать слово до предыдущего пробела, если подходит под шаблон - заменять его нужным блоком. Другой вопрос, что с этого обычно все только начинается. Да, с OnKeyPress только всё начинается :) Написал Begin a Enter (#13) нажимаеш через 100 строчек, и по середине куча begin..end, try..finally..end, case .. end и шас начинаем парсить - над end впыхивать там или не ... Уже пробовал, геморои конкретныи :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2020, 17:32 |
|
||
|
Autocomplete
|
|||
|---|---|---|---|
|
#18+
Janex Vizit0r если вопрос ТОЛЬКО в таких автодополнениях - то оно элементарно делается, OnKeyPress если Enter - то получать слово до предыдущего пробела, если подходит под шаблон - заменять его нужным блоком. Другой вопрос, что с этого обычно все только начинается. Да, с OnKeyPress только всё начинается :) Написал Begin a Enter (#13) нажимаеш через 100 строчек, и по середине куча begin..end, try..finally..end, case .. end и шас начинаем парсить - над end впыхивать там или не ... Уже пробовал, геморои конкретныи :) autocomplete так не работает набрал begin, нажал enter, получил begin end; то же самое с try Вот эти все "а если enter через 100500 строк, а если..." - неправильны по определению. Или сразу enter после слова, или игнор. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2020, 17:42 |
|
||
|
Autocomplete
|
|||
|---|---|---|---|
|
#18+
Vizit0r, А в дельфе так оно работает, и очень удобно кстати ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2020, 18:04 |
|
||
|
Autocomplete
|
|||
|---|---|---|---|
|
#18+
Janex, так тебе парсер придется писать, если так сложно хочешь. Посмотри исходники Лазаруса, можно начать отсюда https://svn.freepascal.org/svn/lazarus/trunk/components/codetools/pascalparsertool.pas ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2020, 18:07 |
|
||
|
Autocomplete
|
|||
|---|---|---|---|
|
#18+
Janex, ты уже давно на форуме, я уже писал про быстрый ввод begin-end, ты наверно тот пост пропустил, повторяю. Добавь в шаблоны 2 файла: Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. Сделай их первыми в списке, тогда что бы ввести begin end нужно нажать Ctrl+J, потом Enter. Для конструкции Код: pascal 1. 2. 3. 4. 5. нужно нажать последовательность: Ctrl+J, стрелку вниз, потом Enter и все. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2020, 22:56 |
|
||
|
Autocomplete
|
|||
|---|---|---|---|
|
#18+
AWSVladimir, Спасибо, но мне ето надо встроить в свою апликацию, пользуюст там AdvMemo от TMS Software. Подсветка им там есть, а вот етих наваротов нету :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2020, 07:55 |
|
||
|
Autocomplete
|
|||
|---|---|---|---|
|
#18+
Janex, AdvMemo не пользовался, сорри по нему не подскажу. Там же типа редактор со строками типа TStrings ? Если сделать по хоткею или на KeyDown/Up: add('begin'); add(''); add('end;'); ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2020, 14:55 |
|
||
|
Autocomplete
|
|||
|---|---|---|---|
|
#18+
Ну не Add() конечно, но смысл то понятен. Где курсор стоит там и вставляем наши строки. В твоем компоненте есть же возможность использовать Find/Replace? Ну и сделай по аналогии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2020, 16:19 |
|
||
|
Autocomplete
|
|||
|---|---|---|---|
|
#18+
AWSVladimir, Да мои вопрос не по теме "как поставить картинку на кнопку" :) add('end;') - да ето и коню ясно :) Там нужен маленькии "искуственныи интелект" которыи анализирует код и решает ставить тут End или нет ... Наверно самому придётся напряч мозги и писать ето всё ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2020, 12:46 |
|
||
|
Autocomplete
|
|||
|---|---|---|---|
|
#18+
Janex, ну если написать ИИ-движек проще. А заглянуть в AdvMemo.pas - сложнее. Пишите ИИ. Успехов Есть там такой классс как TAutoCompletion (стр. 940), а у TAdvMemo огромный список свойств: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. А еще демо-пример: TMSAdvMemoDemo01.dpr В качестве благодарности, приму ИИ-движек, конечно если мой совет поможет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2020, 06:40 |
|
||
|
Autocomplete
|
|||
|---|---|---|---|
|
#18+
kapas Janex, ну если написать ИИ-движек проще. А заглянуть в AdvMemo.pas - сложнее. Пишите ИИ. Успехов Есть там такой классс как TAutoCompletion (стр. 940), а у TAdvMemo огромный список свойств: А еще демо-пример: TMSAdvMemoDemo01.dpr В качестве благодарности, приму ИИ-движек, конечно если мой совет поможет. ты прям с козырей зашел. Еще бы предложил мануал по AdVMemo почитать :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2020, 08:25 |
|
||
|
Autocomplete
|
|||
|---|---|---|---|
|
#18+
Vizit0r, зачем мучить Janex? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2020, 09:22 |
|
||
|
Autocomplete
|
|||
|---|---|---|---|
|
#18+
kapas, AutoCompletion в AdvMemo не соовсем то о чём писал в самом конце, то есть не то что пытаюсь дабытся. Пишеш код - написал 10 строчек и решил их всех поместить в Try...Finally. В делъфе - перед первои строкои написал Try, переходиш в 11 стрику и нажымаеш Enter и обана - там появляется Finally..End. В AdvMemo такого нету :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2020, 07:47 |
|
||
|
Autocomplete
|
|||
|---|---|---|---|
|
#18+
Janex В делъфе - перед первои строкои написал Try, переходиш в 11 стрику и нажымаеш Enter и обана - там появляется Finally..End. Вот только не работает только это куда чаще, чем работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2020, 08:00 |
|
||
|
Autocomplete
|
|||
|---|---|---|---|
|
#18+
Vizit0r Janex В делъфе - перед первои строкои написал Try, переходиш в 11 стрику и нажымаеш Enter и обана - там появляется Finally..End. Вот только не работает только это куда чаще, чем работает. Мне значит везёт, пока такое чтоб несработало не наблюдал :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2020, 08:04 |
|
||
|
Autocomplete
|
|||
|---|---|---|---|
|
#18+
Janex, это только ручками, подключая при необходимости головной мозг, с использованием например AST. Но, конечно, и без AutoComplete не обойтись. Если есть кусок выделенного текста для которого необходимо вставить "обкладки" типа скобок, комментария, блока (begin ... end; try except|finally end), то это намного проще... Что-то вроде Код: pascal 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2020, 08:28 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39993068&tid=2038032]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
72ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
68ms |
get tp. blocked users: |
2ms |
| others: | 240ms |
| total: | 422ms |

| 0 / 0 |
