Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.048 c
2-1160140411
Xtreme
2006-10-06 17:13
2006.10.22
Delphi.Begin3


2-1160387648
Steep[on work]
2006-10-09 13:54
2006.10.22
Ссылка


6-1148616135
vfb
2006-05-26 08:02
2006.10.22
TClientSocket в неблокирующем режиме


15-1159772330
Knight
2006-10-02 10:58
2006.10.22
Кто-нибудь встречал страницу где описаны все типы слотов...


3-1156510745
PEAKTOP
2006-08-25 16:59
2006.10.22
EXECUTE BLOCK




   Наверх