Форум
Написать нам
  • Страница 1 из 1
  • 1
Модератор форума: as-master  
EditBox - как запретить редактирование?
serjik008Дата: Понедельник, 16 Ноября 2009, 19:14 | Сообщение # 1
Новый участник
Группа: Пользователи
Сообщений: 13
Репутация: 0
Награды: 0
Статус: Offline
Всем доброго времени суток)) подскажите, пожалуйста, можно ли как-то для объекта EditBox (Эдитбокс) запретить любое редактирование текста (текста по умолчанию) КРОМЕ выделения и копирования?? заранее спасибо;))
 
YURIYДата: Понедельник, 16 Ноября 2009, 19:29 | Сообщение # 2
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
Нет, EditBox не поддерживает режим ReadOnly.

Советую воспользоваться плагином. Например, этим.



Вечная память Андрею Сергееву!
 
serjik008Дата: Понедельник, 16 Ноября 2009, 21:00 | Сообщение # 3
Новый участник
Группа: Пользователи
Сообщений: 13
Репутация: 0
Награды: 0
Статус: Offline
замечательно) а как же этим плагином пользоваться-то?
 
YURIYДата: Понедельник, 16 Ноября 2009, 21:02 | Сообщение # 4
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
Смотреть проект, который идёт в архиве, разбираться. И также добавить в свою программу.

Сложного ничего там нет.



Вечная память Андрею Сергееву!
 
serjik008Дата: Понедельник, 16 Ноября 2009, 21:44 | Сообщение # 5
Новый участник
Группа: Пользователи
Сообщений: 13
Репутация: 0
Награды: 0
Статус: Offline
не знаю... можт я чего-то не догоняю, поскольку это мой первый опыт общения с плагинами. пример посмотрел. там в слева расположен объект 'Плагин', а справа кнопки, при нажатии на которые выполняются различные скрипты. запускаю пример, набиваю в левом поле текст, нажимаю кнопку 'Рид онли'. да, действительно теперь набранный мною текст нельзя редактировать, НО (!) его можно выделить и удалить. так не годится :(

кроме того я не понял самого главного: как навесить этот плагин на EditBox. мне ведь надо, чтобы изнчально набранный мною текст после компиляции проекта нельзя было редактировать. а в примере текст вводится в уже запущенном проекте.

 
YURIYДата: Понедельник, 16 Ноября 2009, 21:52 | Сообщение # 6
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
Инструкция. Если коротко.

1. В списке объектов в примере найти Plugin и зайти в его свойства.
2. Указать путь к dll файлу (плагину) из архива, и на запрос о внедрении файла в проект нажать Yes.

Запустить проект и насладиться работой плагина :)



Вечная память Андрею Сергееву!
 
Alex3AДата: Понедельник, 16 Ноября 2009, 22:03 | Сообщение # 7
Друг клуба ММВ
Группа: Проверенные
Сообщений: 2646
Репутация: 39
Награды: 11
Статус: Offline
Quote (YURIY)
Нет, EditBox не поддерживает режим ReadOnly

Но если ну очень нужно, то можно :D
Прикрепления: noedit.zip (0.5 Kb)
 
YURIYДата: Понедельник, 16 Ноября 2009, 22:05 | Сообщение # 8
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
Я думал о таком методе, но мне показалось, что будут какие-то визуальные тормоза :(

Кстати, намного правильнее использовать DisplayValue вместо LoadText в твоём проекте.



Вечная память Андрею Сергееву!
 
Alex3AДата: Понедельник, 16 Ноября 2009, 22:12 | Сообщение # 9
Друг клуба ММВ
Группа: Проверенные
Сообщений: 2646
Репутация: 39
Награды: 11
Статус: Offline
Quote (YURIY)
Кстати, намного правильнее

А это уж как душе угодно будет :D
Помню что когда то с чем то были непонятки то ли с лоадом то ли с валуем,
непонятным образом куда то что то пропадало.
 
YURIYДата: Понедельник, 16 Ноября 2009, 22:14 | Сообщение # 10
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
Ой, да ну их на фиг, если честно. Ерунду тогда как начали нести :)


Вечная память Андрею Сергееву!
 
Alex3AДата: Понедельник, 16 Ноября 2009, 22:48 | Сообщение # 11
Друг клуба ММВ
Группа: Проверенные
Сообщений: 2646
Репутация: 39
Награды: 11
Статус: Offline
 
serjik008Дата: Вторник, 17 Ноября 2009, 21:38 | Сообщение # 12
Новый участник
Группа: Пользователи
Сообщений: 13
Репутация: 0
Награды: 0
Статус: Offline
Quote (Alex3A)
Но если ну очень нужно, то можно
Прикрепления: noedit.zip(1Kb)

во!! это именно то, о чём я мечтал))) спасибо огромное, Alex3A!

Добавлено (17 Ноябрь 2009, 21:38)
---------------------------------------------
ещё маленький вопросик: в ММВ из EditBox копировать можно только через Ctli+C. а можно ли каким-нибудь скриптом приравнять Ctli+C к Ctli+Insert ?

Сообщение отредактировал serjik008 - Вторник, 17 Ноября 2009, 21:37
 
YURIYДата: Вторник, 17 Ноября 2009, 22:00 | Сообщение # 13
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
Если вопрос не относится к теме - нужно создать новую. Это на будущее.

Quote (serjik008)
а можно ли каким-нибудь скриптом приравнять Ctli+C к Ctli+Insert

И да, и нет.

Отключаем меню в свойствах EditBox. Создаём объект Script, в его свойствах назначаем горячую клавишу CTRL + Insert. В сценарии указываем:

Code
Clipboard("SEND","EditBox$")

где EditBox$ - переменная, содержащая текст EditBox'a (задаётся в его свойствах).

Внимательный читатель заметит, что при такой работе копируется весь текст, а не только выделенный.



Вечная память Андрею Сергееву!
 
serjik008Дата: Вторник, 17 Ноября 2009, 23:15 | Сообщение # 14
Новый участник
Группа: Пользователи
Сообщений: 13
Репутация: 0
Награды: 0
Статус: Offline
ок) спасибо! сорри, если оффтоп, но я думал это плавное продолжение темы... :)
но мне такой вариант, к сожалению, не подходит - мне надо, чтоб копировался только выделенный текст :(


Сообщение отредактировал serjik008 - Вторник, 17 Ноября 2009, 23:22
 
Alex3AДата: Среда, 18 Ноября 2009, 02:25 | Сообщение # 15
Друг клуба ММВ
Группа: Проверенные
Сообщений: 2646
Репутация: 39
Награды: 11
Статус: Offline
Quote (serjik008)
не подходит - мне надо

А подумать?
Ладно....

Добавлено (18 Ноябрь 2009, 02:25)
---------------------------------------------
А чето не то прочитал, тебе по кнопкам надо.

Прикрепления: 8063856.zip (0.5 Kb)
 
YURIYДата: Среда, 18 Ноября 2009, 02:54 | Сообщение # 16
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
Quote (serjik008)
но мне такой вариант, к сожалению, не подходит - мне надо, чтоб копировался только выделенный текст

Тогда другой выход из ситуации. На сайте лежит прекрасный модуль Rush'a - Editbox.dll. С ним можно реализовать копирование выделенного текста в буфер (см. справку в архиве) по той системе, что я написал выше (задание горячей клавиши) через такой сценарий:

Code
SendCommand("Binder","0,12")

На всякий случай отмечу, что не вижу у модуля задания свойства ReadOnly :(



Вечная память Андрею Сергееву!
 
serjik008Дата: Среда, 18 Ноября 2009, 12:14 | Сообщение # 17
Новый участник
Группа: Пользователи
Сообщений: 13
Репутация: 0
Награды: 0
Статус: Offline
Quote (YURIY)
лежит прекрасный модуль Rush'a - Editbox.dll

по етой ссылке сейчас нету Editbox.dll - есть тока InputBox.dll. это одно и тоже?

и как им польоваться? я создаю плагин InputBox.dll. далее я в самом этом плагине должен прописать скрипт SendCommand("Binder","0,12") ?... но тогда там нет выбора сочетания клавиш, запускающих скрипт. следовательно я должен создать отдельно от плагина объект 'Скрипт' и в нём уже прописать SendCommand("Binder","0,12"). но тогда как в плагине сделать ссылку на выполнение данного скрипта?...

Сообщение отредактировал serjik008 - Среда, 18 Ноября 2009, 12:15
 
Alex3AДата: Среда, 18 Ноября 2009, 12:56 | Сообщение # 18
Друг клуба ММВ
Группа: Проверенные
Сообщений: 2646
Репутация: 39
Награды: 11
Статус: Offline
Давай сначала поймем, что же тебе надо.
У тебя уже есть едит который не позволяет изменять текст, при этом позволяя
копировать текст, как полностью так и частично, выделив необходимую часть.
Скопировать можно с помощью меню, вызваного правой кнопкой мышки, или стрл+с,
в принципе стандартный метод. Или он тебя не устраивает, и тебе нужно какое
то "хитрое" копирование, что б никто не знал как?
 
YURIYДата: Среда, 18 Ноября 2009, 14:18 | Сообщение # 19
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
Как это по ссылке нет? Я вчера скачал оттуда, проверил все и написал сюда!
Алекс, не нужно ничего выдумывать. Обьясни человеку, как пользоваться модулем и все. Я сейчас не могу, с телефона. Буду лишь вечером.



Вечная память Андрею Сергееву!
 
Alex3AДата: Среда, 18 Ноября 2009, 14:46 | Сообщение # 20
Друг клуба ММВ
Группа: Проверенные
Сообщений: 2646
Репутация: 39
Награды: 11
Статус: Offline
Что можно сказать по "хитрому" копированию, можно сделать копирование выделенной
части в пределах проекта-выделяем копируем стрл+с или с помощью меню, потом по нажатию
заранее определенной комбинации это копируется в заранее определенный объект проекта,
при этом в буфере обмена ничего не будет, и следовательно в другую прогу не скопируеш.
Второй вариант, с возможностью копировать во вне, копируем как и прежде, нажимаем
комбинацию (стрл+q, в примере) и в течении установленного времени (смотри коментарий
в скрипте) у нас имеется возможность скопировать выделенный ранее фрагмент во внешнюю
прогу.

Добавлено (18 Ноябрь 2009, 14:42)
---------------------------------------------
Пы.СЫ.
Второй вариант имеет оригинальный эхвект фикции :D
Пока проект работает, любое коприрование в системе возможно только
определенным в проекте, извращенным способом,причем активацию,
нажатие стрл+q, делать только в окне проекта :D
Оченно зловредная фича :D

Добавлено (18 Ноябрь 2009, 14:46)
---------------------------------------------
Все скопированное в буфер обмена из иной проги, в первом варианте, по нажатию
стрл+q окажется в объекте проекта.
Ну и конечно в других прогах копирование работать не будет.

Прикрепления: noedit1-2.zip (1.6 Kb)


Сообщение отредактировал Alex3A - Среда, 18 Ноября 2009, 14:48
 
Alex3AДата: Среда, 18 Ноября 2009, 15:31 | Сообщение # 21
Друг клуба ММВ
Группа: Проверенные
Сообщений: 2646
Репутация: 39
Награды: 11
Статус: Offline
Эти эффекты можно сделать относительно локальными, ограничив их действие координатами окна, при выходе мыши за координаты окна, они отменяются.
При возвращении мышки в координаты окна проекта, эфекты востанавливаються,
в не зависимости от того видно окно в данный момент или нет.
Локализация эфектов показана на основе примера 1, аналогично можно доработать
и пример 2.
Данные испражнения предназначены для искателей чего то необычного и эксклюзивного,
возможно вы найдете в этом что то интересное, для себя.
На этом свои извращения считаю закончеными.
Прикрепления: noedit3.zip (1.0 Kb)
 
YURIYДата: Среда, 18 Ноября 2009, 18:39 | Сообщение # 22
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
Quote (Alex3A)
У тебя уже есть едит который не позволяет изменять текст

Не обязательно это может относиться к данной теме. Он мог задать уже совсем другой вопрос. Относительно другого, полностью доступного Edit'a.

Quote (serjik008)
и как им польоваться?

Взять из архива файл InputBox.dll (и не нужно говорить, что его там нет. Что это ещё за новости?).
Создать в проекте объект Binding Object, в свойствах выбрать нашу dll'ку.

Далее.

Quote (YURIY)
Создаём объект Script, в его свойствах назначаем горячую клавишу CTRL + Insert. В сценарии указываем:

Code
SendCommand("Binder","0,12")

Вот и всё. Далее читаем справку и настраиваем внешний вид Edit'a по своему вкусу.



Вечная память Андрею Сергееву!
 
serjik008Дата: Среда, 02 Декабря 2009, 21:37 | Сообщение # 23
Новый участник
Группа: Пользователи
Сообщений: 13
Репутация: 0
Награды: 0
Статус: Offline
Всем привет :)) извиняюсь, что долго не отвечал (был завал на работе :( сейчас немного подразгрёбся и вернулся к изучению данного вопроса)

Quote (YURIY)
Взять из архива файл InputBox.dll (и не нужно говорить, что его там нет. Что это ещё за новости?)

вот и я про то же - в архиве лежит файл 'InputBox.dll' а файла 'Editbox.dll' там нету. поэтому я и спросил: InputBox.dll и Editbox.dll это одно и тоже?

попоробовал сделать как ты сказал: создал объект Binding, зашёл в его свойства, нажал обзор, нашёл и выбрал модуль InputBox.dll. но вот не задача: Binding работает только с exe файлами а не с dll !! как быть? и потом, как применить внесённые изменения - кнопка 'Ok' (или чё-то типа того) в свойствах объекта Binding отсутствует :(

и потом, хотелось бы всё-таки знать, как при твоём способе реализовать функцию ReadOnly ?

 
YURIYДата: Среда, 02 Декабря 2009, 21:49 | Сообщение # 24
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
Quote (serjik008)
InputBox.dll и Editbox.dll это одно и тоже?

Да, я ошибься в названии. Конечно же, нужен файл InputBox.

Quote (serjik008)
Binding работает только с exe файлами а не с dll

При открытии файла формат другой выбрать.

Quote (serjik008)
и потом, как применить внесённые изменения - кнопка 'Ok' (или чё-то типа того) в свойствах объекта Binding отсутствует

А это что такое?

Quote (serjik008)
и потом, хотелось бы всё-таки знать, как при твоём способе реализовать функцию ReadOnly ?

Я же выше всё написал. Блин, что за приколы такие? Я в пустоту пишу всё что ли? :(

Quote (YURIY)
На всякий случай отмечу, что не вижу у модуля задания свойства ReadOnly :(
Прикрепления: 4786789.png (16.9 Kb)



Вечная память Андрею Сергееву!
 
serjik008Дата: Среда, 02 Декабря 2009, 22:00 | Сообщение # 25
Новый участник
Группа: Пользователи
Сообщений: 13
Репутация: 0
Награды: 0
Статус: Offline
Quote (Alex3A)
У тебя уже есть едит который не позволяет изменять текст, при этом позволяя копировать текст, как полностью так и частично, выделив необходимую часть. Скопировать можно с помощью меню, вызваного правой кнопкой мышки, или стрл+с, в принципе стандартный метод. Или он тебя не устраивает, и тебе нужно какое то "хитрое" копирование, что б никто не знал как?

абсолютно верно! thumbs_up только надо это не для "хитрого" копирования - я левша и мне удобней копировать через ctrl+Ins

посмотрел твой пример noedit3.zip. чёй-то он у меня не робит: выделяю фрагмент, нажимаю ctrl+q, загорается bufer$ (тобишь информация, как я понимаю, скопировалась в буфер обмена) но вот вставляться никуда категорически не хочет (хоть в приделах окна проекта курсор находится, хоть за его приделами...)

с таймером ваще не понял... это так надо или это типа такая изошрённая фича? мне лично таймер не нужен.

также не понял ещё один момент. в примере Scrit вводит в Editbox значение параметра а$; Scrit1 - загружает выделенный фагмент в буфер; Scrit2 - осуществляет, собственно сам процесс; Scrit3 - работает с координатами курсора, но нигде я не нашёл строчки, в которой программа обращалась бы к Scrit3... это для меня непонятно...

Добавлено (02 Декабрь 2009, 22:00)
---------------------------------------------

Quote (serjik008)
А это что такое?

не поверишь!! у меня нет ни ОК ни ОТМЕНА!!! (щас скрин сделаю)

Quote (YURIY)
Я же в сообщении выше всё написал. Блин, что за приколы такие? Я в пустоту пишу всё что ли?

ты писал ЭТО:

Quote (YURIY)
а всякий случай отмечу, что не вижу у модуля задания свойства ReadOnly
 
serjik008Дата: Среда, 02 Декабря 2009, 22:03 | Сообщение # 26
Новый участник
Группа: Пользователи
Сообщений: 13
Репутация: 0
Награды: 0
Статус: Offline
вот: :(
Прикрепления: 9488274.jpg (36.4 Kb)
 
YURIYДата: Среда, 02 Декабря 2009, 22:06 | Сообщение # 27
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
Quote (serjik008)
ты писал ЭТО:

Если я писал "это", то какие ещё могут быть вопросы? wall Можно подождать появления на форуме автора модуля и спросить у него, как быть. Если никак - попросить добавить эту функцию.

Добавлено (02 Декабрь 2009, 22:06)
---------------------------------------------

Quote (serjik008)
вот:

гм, прикольно Bron отрусифицировал MMB scratch Тогда просто нажать Enter - вот и вся аналогия OK.



Вечная память Андрею Сергееву!
 
serjik008Дата: Среда, 02 Декабря 2009, 22:10 | Сообщение # 28
Новый участник
Группа: Пользователи
Сообщений: 13
Репутация: 0
Награды: 0
Статус: Offline
ладно, понятно, спс. пробовать не буду - без ReadOnly мне он все-рно нафик не нужен...
 
Alex3AДата: Среда, 02 Декабря 2009, 23:18 | Сообщение # 29
Друг клуба ММВ
Группа: Проверенные
Сообщений: 2646
Репутация: 39
Награды: 11
Статус: Offline
serjik008, ты так долго думал, что я уже все забыл :D
Запускаем пример, мышом или стрл+с копируем выделенный текст, по нажатию
стрл+q он вставится во второе поле ввода, комбинация кнопок для вставки текста
в скрипте Script1. А вставляется только приа ктивном окне проекта.
Также можеш скопировать текст в другом окне, активировать окно проекта, при этом
в буфере исчезнет то что ты копировал, но по нажатию стрл+q, при активном окне проекта, вставится в проект.
Quote (serjik008)
но нигде я не нашёл строчки, в которой программа обращалась бы к Scrit3... это для меня непонятно...

Плохо смотрел, посмотри в свойствах страницы, он там запускается :D
Quote (serjik008)
с таймером ваще не понял... это так надо или это типа такая изошрённая фича?

А таймер просто периодически вызывает скрипты, вот ты и имееш возможность все время
наблюдать координаты мыша, с помощью таймеров, прога как бы выполняет одновременно
несколько задач, и координаты показывает и чего то там еще копирует и вставляет :D
Quote (serjik008)
я левша и мне удобней копировать через ctrl+Ins

А мне удобней копировать мышом :D А мыша мона и под левшу заточить.
Quote (serjik008)
без ReadOnly мне он все-рно нафик не нужен...

И на фиг я так извращался :D
 
serjik008Дата: Четверг, 03 Декабря 2009, 17:51 | Сообщение # 30
Новый участник
Группа: Пользователи
Сообщений: 13
Репутация: 0
Награды: 0
Статус: Offline
Alex3A, но ведь в твоём примере ReadOnly выполняется для выделяемого и копируемого текста!

Quote (Alex3A)
по нажатию стрл+q он вставится во второе поле ввода

но я таки хотел совсем не енто... я хотел чтоб выделенный кусок при копировании через ctrl+Ins мона было вставить во внешнее приложение.

Quote (Alex3A)
А мне удобней копировать мышом А мыша мона и под левшу заточить.

абсолютно согласен! :D это я уж так просто, для удобства... а основная задача - поле с ReadOnly и возможностью копирования кусками - выполнена. ;)

 
  • Страница 1 из 1
  • 1
Поиск: