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

Вниз

выделение текста в TLabel   Найти похожие ветки 

 
ghg   (2003-05-07 10:19) [0]

Что надо сделать чтобы текст, написанный в Label, можно было выделить и потом, например скопировать в буфер?


 
VAleksey   (2003-05-07 10:26) [1]

Воспользоваться TEdit, закрасив его под цвет фона и установить ReadOnly = true.


 
Юрий Зотов   (2003-05-07 10:34) [2]

> ghg © (07.05.03 10:19)

Дело в том, что в TLabel на самом деле нет никакого текста. TLabel - это просто рисунок. Нарисованный текст. Windows о нем ничего не знает (мало ли, кто там где-то что-то нарисовал) и, соответственно, Clipboard тоже.

А вот TEdit - это совсем другое дело. Это стандартный системный контрол и о нем Windows и Clipboard знают все, что им нужно для работы с его текстом. Поэтому - убирайте 3D-рамку, ставьте цвет и Read-only. И все.


 
Anatoly Podgoretsky   (2003-05-07 10:52) [3]

TStaticText


 
MalkoLinge   (2003-05-07 11:47) [4]

Согласен на все 100 с Юрием Зотовым %)
Однако вопрос стоял как скопировать из Тлебла.
С учетом того, что лейбл обрабатывает сообщения (на самом деле не он но его родитель, но с точки зрения разработчика - всетаки он :)) ) тогда скорее можно модифицировать лейбл для таких операций.
Ведь выше было очень тонко подмечено, что это всего лишь рисунок, следовательно и выделение тоже можно нарисоватьб, более того, на определенное событие ( а если создать свой лебли то на его контроллер) можно повесить метод записи Кепшна в буфер.. Будет время - напишу компонент :))))


 
REA   (2003-05-07 12:17) [5]

Не надо ничего писать. Присоединяюсь к А.П.


 
ghg   (2003-05-07 12:39) [6]

Сделал с Edit"ами
Теперь маленькая проблемка
Как убрать мигающий курсор, чтобы видно его не было?
Это конечно мелочь, но все-таки.


 
Andrews   (2003-05-07 13:01) [7]

Может так?

HideCaret(Edit1.Handle);


 
ghg   (2003-05-07 15:23) [8]

Для решения задачи надо чтобы при каждом получении фокуса Edit"ом, делался DestroyCaret. Я делаю так:

Tedit_focus = class (Tedit)
public
procedure Focus(var a : TWMSetFocus); message en_SETFOCUS;
end;

procedure Tedit_focus.Focus(var a : TWMSetFocus);
begin
DestroyCaret;
a.Result:=0;
end;


Понятное дело это не работает. Так вот почему и как сделать правильнее?


 
pusrg   (2003-05-07 15:47) [9]

Попробуй использовать Enherited перед строкой DestroyCaret;
в процедуре Focus, это вызов такого же родительского метода.

Не уверен что поможет, но все равно если ты перекрываешь сообщения желательно вызывать соответствующий метод родительского класса, конечно если ситуация не требует полного переопределения поведения дочернего метода.


 
ghg   (2003-05-07 16:06) [10]

>Попробуй использовать Enherited перед строкой DestroyCaret;
да до этого можно было и самому дойти :)

Всем спасибо, все работает.



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

Форум: "Основная";
Текущий архив: 2003.05.19;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.007 c
1-59733
SiJack
2003-05-06 08:30
2003.05.19
Как получить из делфи список всех листов в документе Excel ?


8-59803
vladislav80
2003-02-06 13:44
2003.05.19
Поворот TBitmap на 90 градусов


3-59566
Sergant
2003-04-26 15:06
2003.05.19
Мониторинг обновления БД и Timer


1-59669
AndrewVolkov
2003-05-07 11:53
2003.05.19
Quick Report и Конверты (210 на 110)


1-59802
bkv
2003-05-07 10:21
2003.05.19
Мастера, обьясните что такое Visibroker и с чем его едят?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский