Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.10.22;
Скачать: CL | DM;

Вниз

TPanel с возможностью копирования текста   Найти похожие ветки 

 
Alex_C ©   (2006-10-03 14:19) [0]

Что нужно изменить в стандартном компоненте TPanel, чтобы текст с него можно было копировать как с обычного TMemo? Т.е. выделить текст на панели - правая кнопка мыши -> меню Copy.


 
Джо ©   (2006-10-03 14:20) [1]

А почему нельзя использовать TMemo?


 
Alex_C ©   (2006-10-03 14:22) [2]

По некоторым соображениям :)
Ну в общем я видел, что такие компоненты Panel есть на torry.ru, но они очень большие и разобраться именно в этом куске не получились.


 
Ketmar ©   (2006-10-03 14:24) [3]

а просто редактор тоже нельзя? который TEdit и ReadOnly?


 
Джо ©   (2006-10-03 14:25) [4]

Значит так, делаем следующее.
1. Кладем на форму TPanel.
2. Убираем у нее Caption.
3. На панель кладем TMemo.
4. Ему, по вкусу: Color := Panel1.Color; ReadOnly := True; Alignment := taCenter.
Наслаждаемся.


 
Джо ©   (2006-10-03 14:26) [5]

> [4] Джо ©   (03.10.06 14:25)

+BorderStyle := bsNone


 
Alex_C ©   (2006-10-03 14:39) [6]

Этот вариант конечно понятен, но сейчас объясню, почему не использую мемо: хочу создать следующий в общем простой элемент, но только не соображу как сделать:
нужно от устройства выводить текстовую информацию в окошко без возможности редактирования (тут вроде все как просто - memo+ReadOnly), однако надо чтобы оператор мог выделять и копировать с него текст (тут вроде тоже все просто - с мемо текст копировать.) Но вот в чем проблема - данные с ус-ва идут достаточно быстро раз в 1-2 секунды, и когда данные мемо обновляются методом Text := Text + intext или же SelText := intext, то выделение естетсвенно сбрасывается. При попытке сохранять, а потом восстанавливать выделение происходит сильное мелькание выделенного куска (то сбрасывается, то восстанавливается выделение). Вот и думаю, как это все можно реализовать без мелькания.


 
Джо ©   (2006-10-03 14:42) [7]

> Вот и думаю, как это все можно реализовать без мелькания.

Memo1.Lines.BeginUpdate;
try
 // тут много-много меняем
 // и много-много добавляем
finally
 Memo1.Lines.EndUpdate;
end


 
Alex_C ©   (2006-10-03 14:42) [8]

Ди и еще необходимо, чтобы при добавлении текста из ус-ва выделение не сбрасывалось. Т.е. текст далее добавляяется, а пользователь выделять продолжает, пока не выделит весь кусок текста что ему нужен.


 
Alex_C ©   (2006-10-03 14:51) [9]

То Джо: Большое спасибо! Вроде то что надо!


 
Alex_C ©   (2006-10-03 17:02) [10]

Сейчас попробовал в реальной программе описанный выше метод. Мерцание стало конечно меньше, но все равно осталось. Причем причиной мерцания как я понимаю является то, что мемо при добавлении строк полностью очащает все видимое поле, заполняя его фоном, а затем выводит строки. Как этого избежать?
ControlStyle:= ControlStyle + [csOpaque]; - не помогает


 
Korneley ©   (2006-10-04 10:04) [11]

Может
 Memo1.DoubleBuffered := true;
поможет?


 
Alex_C ©   (2006-10-04 16:02) [12]


> Может
>  Memo1.DoubleBuffered := true;
> поможет?


Да вот так помогает!
Но только для Memo, жалко  что на RichEdit это не действует...


 
Korneley ©   (2006-10-04 16:43) [13]

К сведению: совместное применение DoubleBuffered := true и Begin/EndUpdate на некоторых компонентах приводит к некоторой своеобразности поведения компонента. Например: TListView мерцать перестал, но заголовок (ListView1.ViewStyle := vsReport) мигает уверено. Если убрать Begin/EndUpdate мигание пропадает, но скорость обновления, соответственно ... :(


 
guav ©   (2006-10-04 16:53) [14]

LockWindowUpdate - и ничего вообще не перерисовывается. Не забыть только потом убрать.


 
MsGuns ©   (2006-10-04 17:07) [15]

А почему бы Мемо, "смутно" распознающее строки, не заменить на TListView или стрингрид без заголовка ?



Страницы: 1 вся ветка

Текущий архив: 2006.10.22;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.03 c
4-1149681830
Foks2003
2006-06-07 16:03
2006.10.22
По поводу окон Windows


2-1159858909
DevilDevil
2006-10-03 11:01
2006.10.22
OnClick() VS OnDblClick()


1-1157693465
_Guest_
2006-09-08 09:31
2006.10.22
повторяющееся событие MouseWheel


2-1159509009
balepa
2006-09-29 09:50
2006.10.22
Есть две проги одна складывает данные в...


2-1159770747
mfender
2006-10-02 10:32
2006.10.22
IHTMLDOMNode. nodeType?