| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > VB6 > Текст: Как "снять" слово с текста на метке |
| Автор: Сувор 23.10.2004, 13:44 |
| Label1.Caption =длинный текст Я хочу щелкнуть на каком-то слове и получить его. Как? - Я конечно могу снять координаты мыши, но ширина-то букв разная и, кроме того, автоматические переносы! -С ума свихнешся пересчитывать! С другой стороны очень многие программы это умеют. Нет ли для этого какой спец.функции? Спасиба! |
| Автор: -Mikle- 23.10.2004, 19:14 |
| Вряд ли они это делают с Label'ом... лучше использовать для этого TextBox... Тебе для какой цели надо это? Объясни, найдем чего-нить... |
| Автор: Сувор 24.10.2004, 11:19 |
| TextBox так TextBox! Просто я где-то читал что при отсутствии нужды всегда лучше пользовать label. А цель -показать перевод или, может, установить плеер на это место. |
| Автор: -Mikle- 24.10.2004, 12:35 | ||
Конечно лучше! Label ведь менее ресурсоемкий, чем TextBox. Но ведь нужда в использовании TextBox есть, с ним это сделать проще... Ну или можешь пересчитывать все положения слов в Label |
| Автор: Guest 24.10.2004, 16:54 |
| Конечно ,если постараться можно и гвоздь забить в стену шляпкой вперед. |
| Автор: ~FoX~ 25.10.2004, 13:13 | ||
| 1. Определять координаты каждого слова, как предложил -Mikle- 2. Опять же как предложил -Mikle- сипользовать текстбокс или мемо 3. Разбивать строку на слова и каждое слово запихивать в отдельный лэйбл (естственно лэблы строить run-time).
В этих программах слова (сокрее всего) есть отделтные компаненты со своими свойствами, методами и событиями. Более того в большенстве программ слово, строка, обзац и т.д. есть также объекты не имеющие ни какого отношения к лэблам! |
| Автор: Сувор 26.10.2004, 09:54 |
| Ничего не имею против перехода к TextBox! (про label я просто так к слову вякнул) -- Но, как сделать-то? С текстбоксом? А про программы -я имел в виду переводчик Stylus в частности. Там открываешь текст из любого документа (ну правда конвертацию он делает вроде бы) и при подводе мышки появляется перевод. Как-то я был бы резко удивлен если бы каждое слово или даже строка были отдельными обьектами! |
| Автор: ~FoX~ 26.10.2004, 10:10 |
| Сувор А ты попробуй покодить на ВБА в ворде и поймешь, что к чему - там обзац - объект, слово - объек, даже буква объект. По сабжу: Split тебе поможет аминь |
| Автор: Staruha 26.10.2004, 19:39 |
| Может тебе просто ListBox нужен? |
| Автор: -Mikle- 26.10.2004, 20:06 | ||||
точно... я как-то давно писал свой контрол, который выводил текст в форматированом виде, и делал без объектов, в массиве хранил структуру параметров слова... потом потом попытался добавить туда всплывающие подсказки, при наведении на определенное слово, потом захотел сделать события, которые возникают при нажатии на слово, потом мне захотелось чтобы каждое слово имело свой индент... и короче получился такой запутанный код, что уследить за его логикой даже мне было уже сложно
Просто ты представляешь себе это как нечто большое, жрущее ресурсы и громоздкое На самом деле все намного компактнее... PS: Ой... что-то я кажется уже флейм пишу... пива напился блин... сорри... |
| Автор: -Mikle- 26.10.2004, 20:52 | ||||
Например так:
|
| Автор: Staruha 26.10.2004, 21:56 | ||
А может попроще ,а?
Здесь выделенное ручками слово отражается в другом Text2. Остается выделить программно типа сосчитать сколько символов от курсора до пробела. |
| Автор: -Mikle- 27.10.2004, 06:59 | ||
| а не то же самое сделал что ли? просто не выделяю, а работаю с переменной... зачем выделять? для этого есть ф-ия Mid$
ты кинь сюда свой вариант, который считает все это, при этом разделитель может быть не только пробел, как в моем варианте, и позиция курсора может оказаться внутри подрят идущих разделителей ("Hello!!!!!" между восклицательными знаками например). В этой ф-ии я учел все варианты положения курсора, также когда слово последнее, и после него не идет никаких разделителей... или первое, перед ним нет разделителей не думаю что твой вариант будет меньше по кол-ву строк |
| Автор: -Mikle- 27.10.2004, 07:09 | ||||||
PS: перед тем как использовать
|
| Автор: Сувор 27.10.2004, 10:34 |
| Mikle! I thank you very much! И твой код великолепен! Хотя можно было передо мной бисер и не метать, а просто ткнуть меня носом в атрибут .selstart -кстати какого дьявола его нет в панели свойств ? (а следовательно и его расшифровки)! Но код великолепен! Thank you once more! Кстати интересно- при просмотре on line я увидел только начало твоего кода (четыре строчки) а после сохранения на диск проявилось остальное! Это так и надо? Или это баг какой? |
| Автор: -Mikle- 27.10.2004, 14:11 | ||||||
незачто, было не трудно
Естественно... как ты будешь управлять этим свойством в дизайн-тайме?
если я правильно тебя понял, то баг какой-то... |