![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Zero |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2169 Регистрация: 23.10.2004 Где: Россия, г. Рязань Репутация: 8 Всего: 24 |
Вообщем у меня есть база данных, в которой таблица с полем Memo, и нужно вывести текст, но так чтобы его было нельзя редактировать, и смотрелся чтобы он как картинка.
Ну как у нас посты на форуме. Вообщем нужны только советы, как сделать лучше. Добавлено @ 00:24 Впринципе пока хватило мыслей, выводить всё в Memo, с установкой сво-ва ReadOnly + BirderStyle=bsNone. Но тут продолжает мигать курсор, бесящий меня... |
|||
|
||||
| Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 48 Всего: 207 |
Компонент называется Lable
-------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
| Zero |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2169 Регистрация: 23.10.2004 Где: Россия, г. Рязань Репутация: 8 Всего: 24 |
Vit и какже ты интересно выведеш в него много текста, да чтобы он перескакивал на следующую строку где надо?
Добавлено @ 01:20 Впринципе Memo наверно подходит, только скажите мне, как сделать чтобы курсор в нём не мигал, или ещё лучше чтобы компонент не мог получать вообще фокус ввода никогда. |
|||
|
||||
| Alex |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4147 Регистрация: 25.3.2002 Где: Москва Репутация: 80 Всего: 162 |
Zero, Vit как раз сделает без проблем.
Поставит AutoSize = False, а WordWrap = True, растянет label на столько сколько хочет и загрузит в него текст. -------------------- Написать можно все - главное четко представлять, что ты хочешь получить в конце. |
|||
|
||||
| Georg4 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 961 Регистрация: 2.11.2002 Репутация: 0 Всего: 10 |
Странно, а чего он у тебя в мемо мигает???
Ну вообще можно сделать так, чтобы просто компонента другая была активной при старте и при клике на этот лейбл другая компонента становилась активной, тогда курсора точно там не будет (но и не выделишь ничего) -------------------- Никто и никогда не должен решать одну проблему дважды |
|||
|
||||
| Zero |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2169 Регистрация: 23.10.2004 Где: Россия, г. Рязань Репутация: 8 Всего: 24 |
Alex а точно + плюс ещё динамически изменять ширену ты забыл сказать...
Вообщем спасибо вам с Витом большое, вопрос закрыт. |
|||
|
||||
| Петрович |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1000 Регистрация: 2.12.2003 Где: Москва Репутация: 25 Всего: 55 |
А на будущее, у мемо как и у большинства компонент есть такое свойство Enable. Так вот, если оно False, то такой компонент не сможет получть фокус ввода, а соответственно, и курсора там никогда не будет, следовательно и мигать будет некому
-------------------- Все знать невозможно, но хочется |
|||
|
||||
| Alex |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4147 Регистрация: 25.3.2002 Где: Москва Репутация: 80 Всего: 162 |
Текст только серым будет, а так все нормально -------------------- Написать можно все - главное четко представлять, что ты хочешь получить в конце. |
|||
|
||||
| ДЫМ |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 224 Регистрация: 6.1.2004 Репутация: 8 Всего: 8 |
Попробуй HideCaret(Memo1.Handle);
|
|||
|
||||
| ДЫМ |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 224 Регистрация: 6.1.2004 Репутация: 8 Всего: 8 |
Не раз встречал вопрос как скрыть каретку в элементах редактирования.
В DRKB советуют для этого создать потомка с соответствующими обработчиками, в которых вызывать HideCaret(Handle) А вот как это можно сделать не создавая потомка. Надо перехватить оконную процедуру элемента редактирования (edit, Memo и т. д.).
|
|||
|
||||
| Zero |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2169 Регистрация: 23.10.2004 Где: Россия, г. Рязань Репутация: 8 Всего: 24 |
ДЫМ а чтобы не мучится можно сделать так:
Добавлено @ 18:13 Ну всмысле для Label |
|||
|
||||
| ДЫМ |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 224 Регистрация: 6.1.2004 Репутация: 8 Всего: 8 |
Во-первых, в Label не выведешь форматированный цветной текскт, во-вторых нельзя выделить текст мышью и сохранить в буфер. |
|||
|
||||
| Zero |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2169 Регистрация: 23.10.2004 Где: Россия, г. Рязань Репутация: 8 Всего: 24 |
|
|||
|
||||
| Alex |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4147 Регистрация: 25.3.2002 Где: Москва Репутация: 80 Всего: 162 |
Интересно, а в memo ты как его выводить собрался? -------------------- Написать можно все - главное четко представлять, что ты хочешь получить в конце. |
|||
|
||||
| Alex |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4147 Регистрация: 25.3.2002 Где: Москва Репутация: 80 Всего: 162 |
-------------------- Написать можно все - главное четко представлять, что ты хочешь получить в конце. |
|||
|
||||
| Bacardi |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 134 Регистрация: 8.3.2005 Где: Москва Репутация: нет Всего: 1 |
Народ, а почему ж тут никто ничего не сказал про StaticText?! Это тот же мемо, только как лейбл (многострочный)... помойму он никак лучше подходит тут. или я не прав?
--------------------
Необычная смесь. Болтать, но не мешать.http://www.livejournal.com/users/__bacardi__/ |
|||
|
||||
| Alex |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4147 Регистрация: 25.3.2002 Где: Москва Репутация: 80 Всего: 162 |
Прав. -------------------- Написать можно все - главное четко представлять, что ты хочешь получить в конце. |
|||
|
||||
| Bacardi |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 134 Регистрация: 8.3.2005 Где: Москва Репутация: нет Всего: 1 |
--------------------
Необычная смесь. Болтать, но не мешать.http://www.livejournal.com/users/__bacardi__/ |
|||
|
||||
| Zero |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2169 Регистрация: 23.10.2004 Где: Россия, г. Рязань Репутация: 8 Всего: 24 |
Alex а как тогда выделять текст из него и копировать в буфер обмена? Я прочитал в Фаронове про него, там написано что он одним из отличий имеет в свой-ве BorderStyle значение sbsSunken, делает рамку а все остальные сво-ва и методы типа совпадаёт с Label, но в реальности я ненахожу даже свойства WordWrap. И почему все привязались к Label-подобным компонентам, чем всем Memo не нарвится? |
|||
|
||||
| Alex |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4147 Регистрация: 25.3.2002 Где: Москва Репутация: 80 Всего: 162 |
Никак. Изначально ты не ставил задачи копировать текст в буффер.
Можно считать, что оно установлено в True. PS: Что ты переживаешь тебе подойдет пример Дым'а с мемо. -------------------- Написать можно все - главное четко представлять, что ты хочешь получить в конце. |
||||
|
|||||
| Zero |
|
||||||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2169 Регистрация: 23.10.2004 Где: Россия, г. Рязань Репутация: 8 Всего: 24 |
Ну а тут хотел рассмотреть всякие предложения, и выбрать лучшее...
Не работает, уже проверял и проверил ещё раз, вот пример посмотри в прикреплёном файле.
Тогда не тотже. Присоединённый файл ( Кол-во скачиваний: 1 )
Пример.zip |
||||||||||
|
|||||||||||
| Zero |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2169 Регистрация: 23.10.2004 Где: Россия, г. Рязань Репутация: 8 Всего: 24 |
Эх.. Рано я обрадывался, на счёт снятися указателя с Memo. В реальном моём приложении, я Memo, создаю динамически. И там не работает код:
|
|||
|
||||
| Bacardi |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 134 Регистрация: 8.3.2005 Где: Москва Репутация: нет Всего: 1 |
не, слух... ты хочешь копировать содержимое, но не хочешь указателя в мемо... как одно без другого?! выбирай или - или...
и неужели не работает Memo1.Enabled:=False?! может где повесишь кнопку... или popupmenu с пунктом "копировать содержимое в буффер" или что-то в этом плане? --------------------
Необычная смесь. Болтать, но не мешать.http://www.livejournal.com/users/__bacardi__/ |
|||
|
||||
| Zero |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2169 Регистрация: 23.10.2004 Где: Россия, г. Рязань Репутация: 8 Всего: 24 |
Я не хочу выбирать, мне нужно всё... и это возможно, покрайней мере статически работает, а при динамическом создании глючит.
Нет. Серый текст+нельзя выделять, тогда уж лучше будет Label.
<CTRL>+<C> |
||||||
|
|||||||
| ДЫМ |
|
||||||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 224 Регистрация: 6.1.2004 Репутация: 8 Всего: 8 |
Не в Memo, конечно, я имел в виду RichEdit.
Конечно, не будет работать, ведь ты меняешь адрес оконной процедуры для контрола, который еще не создан. Перенеси строчку
Код будет выглядеть так:
А вообще, зачем ты создаешь объекты динамически? Экономишь память? Я всегда в таких случаях кидаю Memo на форму, устанавливаю минимальные размеры и отодвигаю куда-нибудь в уголок, чтобы не мешался, ставлю Visible:=False, а в нужном месте программы нужно лишь передвинуть Memo куда надо, установить нужные размеры и Visible:=True. Если позволишь, несколько советов. Как я понял ты делаешь что-то вроде форума и хочешь, чтобы все выглядело соответственно (похожим на HTML-страницу в броузере). Вот некоторые говорят - зачем скрывать курсор? А вы видели мигающий курсор на HTML-странице (кроме полей ввода)? Тем не менее на ней можно выделить текст. Идеальным решением для твоей задачи было бы использование TWebBrowser, но раз ты не хочешь разбираться с HTML-кодом, то бросай Memo и используй RichEdit. Тогда ты сможешь вывести красивый текст, если напряжешься - то и таблицы, если же использовать RxRichEdit, можно также вставить картинки, например аватары или смайлы (в DRKB написано как это сделать). Причем, в переход с Memo на RichEdit не вызовет никакаих трудностей (по крайней мере курсор скрывается тем же способом). Желаю удачи. Это сообщение отредактировал(а) ДЫМ - 20.3.2005, 03:11 |
||||||||
|
|||||||||
| Zero |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2169 Регистрация: 23.10.2004 Где: Россия, г. Рязань Репутация: 8 Всего: 24 |
Блин, опять я не всё сказал, насамом деле я их создаю в некотрос кол-ве, и там работает только одна, остальные глючат. И при выходе из программы тоже глюк выдаётся.
Добавлено @ 10:27
Просто их кол-во заранее не известно. Ну т.е. это содержимое постов.
Можно конечно и RichEdit, но там гемора больше... а по скольку у меня цель ─ научится работать с БД на данный момент а не Delphi, то и Memo пойдёт. |
||||||
|
|||||||
| ДЫМ |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 224 Регистрация: 6.1.2004 Репутация: 8 Всего: 8 |
Видимо для каждого контрола нужна "персональная" оконная процедура...
Ну ничего, прорвемся! Делать нечего - воспользуемся советом из DRKB и создадим потомка TMemo с соответствующими обработчиками.
Слушай, а зачем для каждого поста создавать Memo, не проще ли их поместить в одно окно? |
|||
|
||||
| Bacardi |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 134 Регистрация: 8.3.2005 Где: Москва Репутация: нет Всего: 1 |
народ, а можно вас попросить вставлять в исходники комментарии?
--------------------
Необычная смесь. Болтать, но не мешать.http://www.livejournal.com/users/__bacardi__/ |
|||
|
||||
| Zero |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2169 Регистрация: 23.10.2004 Где: Россия, г. Рязань Репутация: 8 Всего: 24 |
Спасибо большое ДЫМ, очень помог...
|
||||
|
|||||
| Bacardi |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 134 Регистрация: 8.3.2005 Где: Москва Репутация: нет Всего: 1 |
А еще момент... может тебе попробывать для 1 поста использовать РичЭдит и пихать туда отформатированные уже заголовки, темы, текст, ссылки и еще чего... допустим... Это сообщение отредактировал(а) Bacardi - 22.3.2005, 09:24 --------------------
Необычная смесь. Болтать, но не мешать.http://www.livejournal.com/users/__bacardi__/ |
|||
|
||||
| Zero |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2169 Регистрация: 23.10.2004 Где: Россия, г. Рязань Репутация: 8 Всего: 24 |
Да и вообще я уже всё это сделал, переделывать не имеет смысла. |
|||
|
||||
| Bacardi |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 134 Регистрация: 8.3.2005 Где: Москва Репутация: нет Всего: 1 |
я полностью солидарен с тобой!
--------------------
Необычная смесь. Болтать, но не мешать.http://www.livejournal.com/users/__bacardi__/ |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |