Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Организация ввода/вывода, Большого кол-ва текста 
:(
    Опции темы
Zero
Дата 15.3.2005, 00:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2169
Регистрация: 23.10.2004
Где: Россия, г. Рязань

Репутация: 8
Всего: 24



Вообщем у меня есть база данных, в которой таблица с полем Memo, и нужно вывести текст, но так чтобы его было нельзя редактировать, и смотрелся чтобы он как картинка.
Ну как у нас посты на форуме.
Вообщем нужны только советы, как сделать лучше.
Добавлено @ 00:24
Впринципе пока хватило мыслей, выводить всё в Memo, с установкой сво-ва ReadOnly + BirderStyle=bsNone. Но тут продолжает мигать курсор, бесящий меня... smile
PM MAIL ICQ   Вверх
Vit
Дата 15.3.2005, 00:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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
PM MAIL WWW ICQ   Вверх
Zero
Дата 15.3.2005, 01:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2169
Регистрация: 23.10.2004
Где: Россия, г. Рязань

Репутация: 8
Всего: 24



Vit и какже ты интересно выведеш в него много текста, да чтобы он перескакивал на следующую строку где надо? smile
Добавлено @ 01:20
Впринципе Memo наверно подходит, только скажите мне, как сделать чтобы курсор в нём не мигал, или ещё лучше чтобы компонент не мог получать вообще фокус ввода никогда.
PM MAIL ICQ   Вверх
Alex
Дата 15.3.2005, 01:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 80
Всего: 162



Zero, Vit как раз сделает без проблем.

Поставит AutoSize = False, а WordWrap = True, растянет label на столько сколько хочет и загрузит в него текст.


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
Georg4
Дата 15.3.2005, 01:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 961
Регистрация: 2.11.2002

Репутация: 0
Всего: 10



Странно, а чего он у тебя в мемо мигает???
Ну вообще можно сделать так, чтобы просто компонента другая была активной при старте и при клике на этот лейбл другая компонента становилась активной, тогда курсора точно там не будет (но и не выделишь ничего)


--------------------
Никто и никогда не должен решать одну проблему дважды
PM MAIL ICQ   Вверх
Zero
Дата 15.3.2005, 01:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2169
Регистрация: 23.10.2004
Где: Россия, г. Рязань

Репутация: 8
Всего: 24



Alex а точно + плюс ещё динамически изменять ширену ты забыл сказать...
Вообщем спасибо вам с Витом большое, вопрос закрыт. smile
PM MAIL ICQ   Вверх
Петрович
Дата 15.3.2005, 01:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1000
Регистрация: 2.12.2003
Где: Москва

Репутация: 25
Всего: 55



А на будущее, у мемо как и у большинства компонент есть такое свойство Enable. Так вот, если оно False, то такой компонент не сможет получть фокус ввода, а соответственно, и курсора там никогда не будет, следовательно и мигать будет некому smile.


--------------------
Все знать невозможно, но хочется
PM ICQ   Вверх
Alex
Дата 15.3.2005, 02:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 80
Всего: 162



Цитата
А на будущее, у мемо как и у большинства компонент есть такое свойство Enable. Так вот, если оно False, то такой компонент не сможет получть фокус ввода, а соответственно, и курсора там никогда не будет, следовательно и мигать будет некому .

Текст только серым будет, а так все нормально smile


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
ДЫМ
Дата 15.3.2005, 03:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 224
Регистрация: 6.1.2004

Репутация: 8
Всего: 8



Попробуй HideCaret(Memo1.Handle);
PM MAIL WWW   Вверх
ДЫМ
Дата 17.3.2005, 02:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 224
Регистрация: 6.1.2004

Репутация: 8
Всего: 8



Не раз встречал вопрос как скрыть каретку в элементах редактирования.


В DRKB советуют для этого создать потомка с соответствующими обработчиками, в которых вызывать HideCaret(Handle)
А вот как это можно сделать не создавая потомка.


Надо перехватить оконную процедуру элемента редактирования (edit, Memo и т. д.).


Код

...
type
  TForm1 = class(TForm)
    Memo1: TMemo;
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    OldEditsWindowProc: Pointer;
  end;

...
implementation 

// новая оконная процедура
function NewWindowProc(WindowHandle: hWnd; TheMessage: LongInt; ParamW: LongInt;  ParamL: LongInt): LongInt stdcall;
begin
   NewWindowProc := CallWindowProc(Form1.OldEditsWindowProc, WindowHandle,
   TheMessage, ParamW, ParamL);
   HideCaret(WindowHandle);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 OldEditsWindowProc := Pointer(SetWindowLong(Memo1.Handle, GWL_WNDPROC,
 LongInt(@NewWindowProc)));
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
 // необязательно
 SetWindowLong(Memo1.Handle, GWL_WNDPROC, LongInt(OldEditsWindowProc));
end;




PM MAIL WWW   Вверх
Zero
Дата 17.3.2005, 18:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2169
Регистрация: 23.10.2004
Где: Россия, г. Рязань

Репутация: 8
Всего: 24



ДЫМ а чтобы не мучится можно сделать так: smile
Цитата(Alex @ 15.3.2005, 01:37)
AutoSize = False, а WordWrap = True


Добавлено @ 18:13
Ну всмысле для Label
PM MAIL ICQ   Вверх
ДЫМ
Дата 18.3.2005, 03:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 224
Регистрация: 6.1.2004

Репутация: 8
Всего: 8



Цитата
Ну всмысле для Label


Во-первых, в Label не выведешь форматированный цветной текскт, во-вторых нельзя выделить текст мышью и сохранить в буфер.
PM MAIL WWW   Вверх
Zero
Дата 18.3.2005, 07:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2169
Регистрация: 23.10.2004
Где: Россия, г. Рязань

Репутация: 8
Всего: 24



Цитата
нельзя выделить текст мышью и сохранить в буфер
Хотя наверное ты прав, лучше подайдёт всётаки Memo, хотя конечно помучится побольше придётся, но ничего страшного. smile
PM MAIL ICQ   Вверх
Alex
Дата 18.3.2005, 09:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 80
Всего: 162



Цитата
в Label не выведешь форматированный цветной текскт

Интересно, а в memo ты как его выводить собрался?


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
Alex
Дата 18.3.2005, 09:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 80
Всего: 162





--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
Страницы: (3) Все [1] 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0579 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.