Добро пожаловать к нам в гости! Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
В объекте "TextEntry" нет возможности отключить редактирования текста с возможностью выбора вкл/откл выделения самого текста(например чтобы скопировать). В объекте "Text" нет скрола для больших текст-данных при маленьком размере объекта. У меня вопрос или даже просьба, не сочтите за наглость, можно сделать компонент, который бы добовлял эти функции, или же еще один объект с такими функциями в НБ. Думаю, не у меня одного будет такая просьба, а многих кто пользуется НБ
компонент, который бы добовлял эти функции, или же еще один объект с такими функциями в НБ.
Объекты создаются из компонентов. Не совсем понятно какая именно функциональность требуется. Например, через плагин можно реализовать ещё один, похожий на штатный необушный, компонент Мемо, но с ограничениями на копирование и т.п. См. вложение. Но как я понимаю, в идеале нужен компонент, аналогичный ММВ-шному "Параграфу" (т.к. он имеет свойство прозрачности), а сделать его не так-то просто.
Добавлено (05 Октябрь 2009, 14:07) --------------------------------------------- Кстати, подобный компонент-объект вполне возможно сделать средствами самой NeoBook: например, объект "Надпись /Текст" помещаем в контейнер, ту да же и полосу прокрутки, которую делаем из слайдера, а эффект прокрутки получаем командой MoveObject, размеры объекта и максимальное значение регулировки "прокрутки" получаем в зависимости от характеристик (объема, шрифта) текста. И прозрачность сохраняется. Собственно, все очень просто!
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
вот в этом и дело, сначала пытался расчитывать, но если шрифт больше размером или применено жирность, то расчеты уже не точны. Нескажу, что это выход с большими текст. данными
В штатном делфийском "Мемо" отсутствуют методы отключения копирования, поэтому компонет приходится "дорабатывать", и пока(?) он получился немного глючный. К тому же для лиц, комплексующих по поводу размеров, такой плагин не в кайф, т.к. вес его будет этак 160-180кб, а функционально он почти продублирует штатный необушный Мемо. Не разумно это... Можно, конечно, и на WinAPI написать (ради маленького размера), но это - к садомазохистам! Тут уж если делать что-то новое, так действительно стОящее и полезное.
Quote (sp3d)
но если шрифт больше размером или применено жирность, то расчеты уже не точны.
Между прочим, существует такая вещь как "поправка". Атрибуты применяемых шрифтов прекрасно известны заранее, и что мешает рассчитать и внести соответствующие поправки в вычисления?
Quote (sp3d)
Нескажу, что это выход с большими текст. данными
А какая разница? Кстати, если не путаю, в стандартный Мемо (необушный в том числе) более 64 кб текста не впихнуть! - А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Хреново все делать впопыхах, да и ещё без сигареты....
Quote (Alex3A)
В onContextPopup Handled:=true; это отключит меню
Про это совсем забыл!
Quote (Alex3A)
В onMouseMove Memo.SelLength:=0; это снимет выделение текста.
Тоже думал куда впихнуть SelLength? Действительно - в ОnMouseMove. Правда, все это "отключит" мышь, но как быть с клавиатурой? Придеться по-любому дополнительно делать обработчики событий клавы, а точнее WM_COPY, WM_PASTE и т.д. Вопрос: стОит ли вся эта игра свеч?
Quote (Alex3A)
Memo.Lines.Capacity:=сколь надо.
Гм... А вот об этом впервые слышу, что можно так... Чего ж народ тогда изголяется? Помниться мне даже где-то встречал мемо с емкостью 8 Мб? Короче, надо изучать матчасть!
Quote (Alex3A)
В вцэле не добавлял, а в коле приходилось
Возьмем на заметку, потом проверим... - А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
А он просто не в теме, я сам об этом ранее не подозревал Но столкнулся с ограничением с компоненте листбокс в сях(8 строк), там и увидел свойство Capacity Ограничение стоит для економии памяти, ибо при запуске она резервируется под установленный объем.
А он просто не в теме, я сам об этом ранее не подозревал Но столкнулся с ограничением с компоненте листбокс в сях(8 строк), там и увидел свойство Capacity Ограничение стоит для економии памяти, ибо при запуске она резервируется под установленный объем.
Интересная вещь получается: Мемо наследует Capacity от TStrings, а в делфийской справке по TStrings сказано:
Quote
Indicates the number of strings the TStrings object can hold.
И чуть далее:
Quote
For the TStrings object, reading Capacity returns the Count property,
Т.е. мы получаем количество строк! Но ведь строка может содержать произвольное (непостоянное) количество символов, а текст может содержать произвольное количество строк. В свою очередь свойство Text:
Quote
Lists the strings in the TStrings object as a single string with the individual strings delimited by carriage returns and line feeds.
... Гм...
Чего-то я запутался в конец. Надо будет обдумать на досуге... Правда, а на фига оно надо? - А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Да не заморачивайся, тем более вникать в буржуинскую логику... Просто под каждую фичу нужна память, да и строка - понятие растяжимое И тут даже не идет речь о собственно строке как таковой, а наверное об месте для ее описания.
вот в этом и дело, сначала пытался расчитывать, но если шрифт больше размером или применено жирность, то расчеты уже не точны. Нескажу, что это выход с большими текст. данными
Я как-то делал проектик, где применил эту самодельную полосу прокрутки, сделанную из слайдера, причем прокрутка была универсальной, т.е. кол-во текста было заранее не известно, он (текст) добавлялся уже в самой программе. Я вот только никак ни могу понять вас! Зачем вам учитывать размер и жирность шрифта? А вообще настоятельно не рекомендую использовать такую импровизированную прокрутку, потому что при прокручивании происходит масса различных глюков, например если слишком быстро дернуть слайдер, то скрипт не успевает исполниться и прокречиваемый текст остается на месте...
Bodi, а вы самостоятельно попробуйте на практике в ходе работы программы изменить атрибуты шрифта, увидите результат - поймете!
Quote (Bodi)
А вообще настоятельно не рекомендую
А есть альтернатива? А если её нет? Ждать "доброго дядю" с каким-нибудь плагином?
Quote (Bodi)
если слишком быстро дернуть слайдер,
Есть такая поговорка: "С дуру можно и ... сломать!"
Quote (Bodi)
то скрипт не успевает исполниться
Это смотря в какое событие слайдера и какой скрипт вписать. Не все так уж безнадежно.... - А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Bodi, а вы самостоятельно попробуйте на практике в ходе работы программы изменить атрибуты шрифта, увидите результат - поймете!
Ну ладно, сделаю маленький проект-пример с использованием самодельной полосы прокрутки, тогда поймете и вы меня Но все же расскажу как я делал:
Quote (Peter)
Кстати, подобный компонент-объект вполне возможно сделать средствами самой NeoBook: например, объект "Надпись /Текст" помещаем в контейнер, ту да же и полосу прокрутки, которую делаем из слайдера, а эффект прокрутки получаем командой MoveObject, размеры объекта и максимальное значение регулировки "прокрутки" получаем в зависимости от характеристик (объема, шрифта) текста.
да, все почти так, но не пойму зачем нужно учитывать характеристики шрифта, если проще отталкиваться от размера самого объекта, в который помещен текст, т.е. объект "Надпись /Текст".
, если проще отталкиваться от размера самого объекта, в который помещен текст, т.е. объект "Надпись /Текст".
и сколько надо будет скролить текст по твоим расчетам?! допустим один груженный текст содержит 10 строк: (Arial 12тч. нормал), второй тоже содержит 10 строк: (Arial Black 18тч. болд), но естественно мы не знаем какой формат. текста и сколько строк.
sp3d, давай сначала разберемся, чтобы не было недопониманий! 1. Текст, который нужно прокручивать находится в объекте "Надпись /Текст"? 2. Текст можно изменять\добавлять в самой программе? 3. Форматирование текста можно изменять в самой программе?
груженный текст содержит 10 строк: (Arial 12тч. нормал), второй тоже содержит 10 строк: (Arial Black 18тч. болд), но естественно мы не знаем какой формат. текста и сколько строк.
ОТКУДА должен грузиться текст? - А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
2. Текст можно изменять\добавлять в самой программе? 3. Форматирование текста можно изменять в самой программе?
нет
Quote (Peter)
ОТКУДА должен грузиться текст?
БД, Инет и т.д.
если вопрос для моих целей, то у меня грузится из БД, БД на сервере, в БД инфу добовляют разные юзеры и с разным размером и фоматированием, но самапальный скрол не выход, уже делал. очень много мелких багов, один из них, если пройтись по списку то на последнем выборе применяется скрол предшествующему в списке. Об этом мне сказали двое, у кого эта программа.
Добавлено (08 Октябрь 2009, 18:21) --------------------------------------------- И все таки идея с запретом на редактирование\копирование "Memo" не плохая
Сообщение отредактировано sp3d - Чт, 08 Октября 2009, 05:33
Ну если редактирование+копирование, то это вообще просто, поставить Enable в false. Те заморочки, которые я описывал, позволяют редактировать но запрещают копирование.
У необушного "Мемо" нет свойства "ReadOnly"! Если предполагается вставлять текст из файла (а не из переменной), то все необходимые свойства есть, на блюдечке с голубой каёмочкой, в необушном объекте "Текстовой файл". - А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Так это надо целый необушный компонент (через плагин) делать, а тут работы не на пять минут. А что б нормально сделать, обкатать - и отнюдь не на один вечер. Набросать пробный экзешник в делфях и сделать плагин (особливо - хороший) совсем не одно и то же! К сожалению, у меня сечас забот хватает! Может, в будущем.... Вроде как мелькнул тут на форуме NB один знаток дэлфей и с++. Вот ему и работенка - ничего заумного в этом плагине нет, так-что...
Добавлено (09 Октябрь 2009, 00:22) --------------------------------------------- Да, кстати, Алекс, а без сигареты у меня вообще нифига не получится!
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Изучая один плагин, вспомнил про эту тему. Тем более что этот вопрос уже затрагивался ранее и чтоб он не остался не решенным решил написать... Плагин hpwColorMemo позволяет сделать "Мемо" с функцией "ReadOnly". Также там есть еще много всяких полезных функций, например подсветка синтаксиса с возможностью создания своих схем
В плагине не сложно разобраться, но если что-то будет непонятно, спрашивайте у меня
В заявленных опциях плагина я этого не нашел, но если "позволяет", то и слава Богу! Одним потенциальным геморром меньше!...
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Плагин hpwColorMemo позволяет сделать "Мемо" с функцией "ReadOnly".
не позволяет, хотя команда похожая есть(hpwColorMemoSetVar "[hpwMemoReadOnly]" "0"), но она не работает, либо она запрещает изменять просто цвет текста И еще плаг, не работает с объектом TextEntry, он создает свой в Rectangle что не всегда удобно Bodi, если у тебя получилось использовать ReadOnly, поделись примером... сабж открыт
Добавлено (24 Март 2010, 08:42) ---------------------------------------------
В объекте "TextEntry" нет возможности отключить редактирования текста
Рискую быть закиданным камнями, но подниму вопрос темы Знакомлюсь с плагином NeoBookDBPro. Создал форму, где разместил несколько объектов TextEntry. В них, при открытии таблицы, вывожу значения соответствующих полей (таблицы). Теперь ближе к данной теме: допустим, необходимо реализовать два режима: "просмотр данных " (без возможности внесения изменений) и "редактирование данных". С первым режимом все просто - при редактировании значения в TextEntry они "на лету" меняются в таблице БД. По второму режиму пока приходит на ум только: 1. Использовать для объекта TextEntry команду DisableObject. Но при этом "теряется контрастность" значения поля в объекте. 2. При переходе из режима "редактирования" в режим "просмотра" подменять объект TextEntry на Text. 3...?
Сообщение отредактировано Necronomicon - Пн, 11 Апреля 2011, 20:08
Дык она, если не ошибаюсь, дает запрет на редактирование (Read Only) при работе с сеткой. А я пытаюсь сделать запрет на редактирование TextEntry при работе с формой.
пытаюсь сделать запрет на редактирование TextEntry при работе с формой
Можно на вкладке Text Change объекта TextEntry просто прописать условие - мол если такая-то переменная равна такому-то значению, то восстанавливать содержимое и выводить сообщение пользователю: "не трогай меня" :), а если переменная равна другому значению, то позволить изменение данных. Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)
Necronomicon, я давненько ищу способ, но пока нет варианта, чтоб назначить Read Only для TextEntry. Может когда нибудь появится плагин с такой возможностью....