Автор | Сообщение |
|
| |
Пост N: 3301
Зарегистрирован: 17.05.05
|
|
Отправлено: 12.07.13 16:24. Заголовок: снова Memoedit
Казалось бы простая задача , но.... 1. Нужен счетчик набранных символов 2. При достижении кол-ва набранных символов блочить дальнейший ввод. Есть у кого то наработки ? Спасибо !
|
|
|
Ответов - 10
[только новые]
|
|
|
| Администратор
|
Пост N: 2928
Зарегистрирован: 23.05.05
|
|
Отправлено: 12.07.13 16:42. Заголовок: Вместо memoedit можн..
Вместо memoedit можно напрямую использовать класс HBEditor. MemoEdit - это рудимент из summer'87, по недоразумению унаследованный clipper 5. Вместо dbedit тогда дали нормальный класс tbrowse, а с заменой memoedit поленились. Но это дела давно минувших дней, а что касаемо наших баранов, то надо делать примерно так: oEd := HBEditor():New( cText, nTop, nLeft, nBottom, nRight, .f., nLen, nTab ) oEd:RefreshWindow() while ! oEd:ExitState() nKey := Inkey(0, 255) if bUser # nil nKey := Eval(bUser, nKey, oEd) endif // здесь можно проверить nKey - сделать счетчик и блокировать дальнейший ввод oEd:Edit( nKey ) enddo
|
|
|
|
| |
Пост N: 3302
Зарегистрирован: 17.05.05
|
|
Отправлено: 12.07.13 16:51. Заголовок: Pasha Спасибо попро..
Pasha Спасибо попробую !
|
|
|
|
| |
Пост N: 3303
Зарегистрирован: 17.05.05
|
|
Отправлено: 12.07.13 17:54. Заголовок: Pasha пишет: if bUs..
Pasha пишет: Пример блока кода bUser можешь привести а то мозК размяк от жары.... Сенкс.
|
|
|
|
| Администратор
|
Пост N: 2929
Зарегистрирован: 23.05.05
|
|
Отправлено: 12.07.13 18:29. Заголовок: Я его использую к пр..
Я его использую к примеру для записи текста в файл. В xharbour можно сделать поиск в тексте (в Harbour - нет) Можно в word текст скинуть. Не знаю что там еще может понадобится А пример - просто проверка клавиши и какое-то действие if nKey == K_... ... Можно кстати bUser для того же счетчика использовать
|
|
|
|
| |
Пост N: 3304
Зарегистрирован: 17.05.05
|
|
Отправлено: 12.07.13 18:37. Заголовок: А подскажи как ну ск..
А подскажи как ну скажем по нажатию F2 сохранить изменения в cText и выйти , пробовал не получилось.......
|
|
|
|
| Администратор
|
Пост N: 2930
Зарегистрирован: 23.05.05
|
|
Отправлено: 12.07.13 18:45. Заголовок: можно примерно так: ..
можно примерно так: if nKey == K_F2 nKey := K_ALT_W lWrite := .t. // установить какую-то переменную endif после выхода ее проверить: if lWrite запись в файл
|
|
|
|
| |
Пост N: 3305
Зарегистрирован: 17.05.05
|
|
Отправлено: 12.07.13 21:30. Заголовок: Для подсчета символо..
Для подсчета символов заюзал метод GetText() , вроде верно пашет. Его же и для записи если нужно oed:GetText() , хотя по началу пытался поймать cText
|
|
|
|
| |
Пост N: 3306
Зарегистрирован: 17.05.05
|
|
Отправлено: 13.07.13 08:54. Заголовок: Вот что получилось ...
Вот что получилось . Ограничиваем ввод текста длиной не более 20 #include "inkey.ch" proc main local oed local ctext:="" local nkey local lsave:=.f. setcolor("n/n") cls setcolor("n/w") oEd := HBEditor():New( cText, 10, 10, 20, 30, .t., 19,) oed:InsertState(.t.) oEd:RefreshWindow() while ! oEd:ExitState() nKey := Inkey(0) hb_DispOutAt(0,0,len(oed:GetText()),"n/w") if nkey==K_F2 nKey := K_ALT_W lsave:=.t. endif if (nkey>=32 .and. nkey<=255 .or. nkey==13 .or. nkey==9 ) .and. len(oed:GetText())>=20 loop endif oEd:Edit( nKey ) hb_DispOutAt(0,0,len(oed:GetText()),"n/w") enddo cls setcolor("n/w") if lsave .and. !empty(alltrim(memotran(oed:GetText()," "," "))) @ 0,0 say oed:GetText() color "gr+/r" inkey(0) endif return Вроде все правильно.
|
|
|
|
| |
Пост N: 4568
Зарегистрирован: 17.05.05
|
|
Отправлено: 01.03.15 14:31. Заголовок: Косяки в последнем M..
Косяки в последнем Memoedit и HBEditor. При наборе текста и достижении правой границы курсор не переходит на следующую строку и наборка продолжается с начала текущей строки. Получается полная каша...... Вернулся на последнюю версию с SVN ($Id: teditor.prg 18903 2013-03-07 11:39:47Z vszakats $)
|
|
|
|
| |
Пост N: 4604
Зарегистрирован: 17.05.05
|
|
Отправлено: 19.03.15 10:24. Заголовок: Dima пишет: Косяки..
Dima пишет: цитата: | Косяки в последнем Memoedit и HBEditor. |
| Починили 2015-03-18 13:25 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl) * src/rtl/teditor.prg ! resize missing text on line wrapping (issue #92)
|
|
|
|