Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.10.22;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.052 c
1-1158052079
Моновар
2006-09-12 13:07
2006.10.22
Вопрос по TreeView


2-1160134583
Korneley
2006-10-06 15:36
2006.10.22
Удаленное управление задачами


4-1149436267
susergey
2006-06-04 19:51
2006.10.22
Как создавать новую папку с названием, заранее определенным


1-1157757381
tio
2006-09-09 03:16
2006.10.22
сделать невидимым процесс своей программы в XP


15-1159548125
ArtemESC
2006-09-29 20:42
2006.10.22
Латинско-русский словарь...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский