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

Вниз

Как определить что под курсором находится ссылка ?   Найти похожие ветки 

 
Кириешки ©   (2004-11-21 08:44) [0]

Помогите очень нужно.


 
Piter ©   (2004-11-21 11:11) [1]

какая ссылка? Формулируй вопросы нормально...


 
Palladin ©   (2004-11-21 11:21) [2]

Хм... а как определить что на 2 сантиметра больше?


 
Piter ©   (2004-11-21 11:40) [3]

пять балов :)


 
Кириешки ©   (2004-11-21 11:49) [4]

Не надо издеваться.
Ну что непонятного в вопросе "КАК ОПРЕДЕЛИТЬ ЧТО ПОД КУРСОРОМ НАХОДИТСЯ ССЫЛКА?". Поясню - ИНТЕРНЕТ ССЫЛКА. ССЫЛКА НА ЧТО_ТО В ИНТЕРНЕТЕ. Понятно?


 
uny ©   (2004-11-21 11:54) [5]

где эта ссылка, если в чём то похожем на ричэдит, то компонент такой есть, ссылка даже high что то - ну загорается она при наведении


 
Piter ©   (2004-11-21 12:07) [6]

Кириешки ©   (21.11.04 11:49) [4]
Не надо издеваться.


а кто издевается?
Может, надо правильно формулировать вопросы?

Поясню - ИНТЕРНЕТ ССЫЛКА. ССЫЛКА НА ЧТО_ТО В ИНТЕРНЕТЕ. Понятно?

будешь таким тоном разговаривать - ответа не получишь.

А если у меня в программе "Справка-О программе" есть TLabel разукрашенный в синий цвет, при наведении на него курсор имеет вид ладошки, при нажатии открывается мой сайт - это интернет ссылка?


 
Кириешки ©   (2004-11-21 12:15) [7]

Нет -это  TLabel разукрашенный в синий цвет.


 
Новичек   (2004-11-21 12:22) [8]


> Кириешки
Иными словами, необходимо проверить действительность ссылки в инете, подсказанной TLabel?


 
Кириешки ©   (2004-11-21 12:31) [9]

Новичек   (21.11.04 12:22) [8].

Нет.

Вот представте. При наведении мыши на заголовок формы вы проверяете действительно ли это заголовок, так? А меня интересует как при наведении мыши на какую-нибудь строку (вообще а не в моей программе) ПРОВЕРИТЬ содержит ли эта строка html адрес. Вот. Ну не знаю как еще более понятно объяснить...


 
Новичек   (2004-11-21 12:41) [10]

В таком случае придется анализировать содержимое полученной строки, и, c большой степенью вероятности, именовать ссылкой последовательность слов, начинающуюся с "http://" или "ftp://" и разделенных точкой.


 
Кириешки ©   (2004-11-21 12:56) [11]

Бесспорно. Но меня интересует как проверить что под курсором именно  строка? Вот в чем фактически проблема.


 
Новичек   (2004-11-21 13:01) [12]

Единственное, что приходит в голову, - это обрабатывать события мыши при передвижении её над потомками TControl.


 
Ihor Osov'yak ©   (2004-11-21 13:08) [13]

2 Кириешки

>А меня интересует как при наведении мыши на какую-нибудь строку (вообще а не в моей программе) ПРОВЕРИТЬ содержит ли эта строка html адрес. Вот. Ну не знаю как еще более понятно объяснить...

Так все же интересует общий случай или частний, например, ссылку в окне IE или активИхс от ИЕ?
Для примера три случая:
1. в окне блокнота написало http://www.blabla.net - это ссылка в вашем понимании?
2. Картинка, отображается в  Paint, там теми же пикселями нарисовано http://www.blabla.net - что это?
3. В окне ие есть линк.. Вероятнее всего, Вы имеете ввиди такой случай. Но вот неясно, только он, или еще в допорление 1, а может и 2?

Зы. вариант 3 решается с помошью штатных средств и довольно просто.
1 - решаем в большинсве случаев (даже для случаев, если соотв. объект хранит партизанское молчание в ответ на WM_GETTEXT и GetWindowText)
2 - вероятнее всего, приемлемых на практике вариантов решения нет.


 
GuAV ©   (2004-11-21 13:18) [14]

Ihor Osov"yak ©   (21.11.04 13:08) [13]
даже для случаев, если соотв. объект хранит партизанское молчание в ответ на WM_GETTEXT и GetWindowText


Как ?

Имеем TLabel или канву TPaintBox с урлой.  Как реализовать сабж ?


 
Кириешки ©   (2004-11-21 13:28) [15]

Ihor Osov"yak ©   (21.11.04 13:08) [13]

>... меня интересует как проверить что под курсором именно строка?


 
Shadow-st   (2004-11-21 13:52) [16]

Научись задавать вопрос правильно порусски, а непиши здесь какие-то обрывки


 
Ihor Osov'yak ©   (2004-11-21 13:56) [17]

2 [14] GuAV ©  

Методом перехвата апишных функций, выводящих текст и последующим форсированием перерисовки соотв. региона. Я не говорил, что это тривиальная задача.

2 [15] Кириешки ©   (21.11.04 13:28)

Читать 1, 13. До просветления.


 
Piter ©   (2004-11-21 13:57) [18]

Кириешки ©   (21.11.04 13:28) [15]
меня интересует как проверить что под курсором именно строка?


а TLabel это в твоем понимании не "строка"?

И тебе еще один вопрос задали - в блокноте написано http://www.blabla.net - это строка или как?


 
Ihor Osov'yak ©   (2004-11-21 13:58) [19]

в дополненеие к 17 для Кириешки.
Также дайте определение, что такое строка в Вашем понимании.


 
Piter ©   (2004-11-21 14:20) [20]

Новичек   (21.11.04 13:01) [12]
Единственное, что приходит в голову, - это обрабатывать события мыши при передвижении её над потомками TControl


хм. Ты считаешь, что все windows программы написаны на Дельфи, да еще с применением VCL?


 
Новичек   (2004-11-21 14:23) [21]


> Piter
Думаю, у автора вопроса именно такая ситуация. В противном случае придется лопатить API :-)


 
Piter ©   (2004-11-21 14:45) [22]

Новичек   (21.11.04 14:23) [21]
Думаю, у автора вопроса именно такая ситуация


да? А значит если TControl, то API лопатить не придется? И как же называется функция в VCL, которая реализовывает данный функционал?


 
KilkennyCat ©   (2004-11-21 15:24) [23]

Решение, отвечающее большинству требований от Ihor Osov"yak ©   (21.11.04 13:08) [13] :
Поскольку, в конечном итоге на экране мы видим обыкновенный растр, то пофиг, строка сие или не строка (вообще, под строкой можно называть нарисованные буквы, к которым можно применить хотя бы функцию копирования, но это чисто мое опредление). Отлавливаем скриншот экрана под курсором в области, достаточно превышающей стандартную для этого приложения высоту шрифта и ширину нескольких букв. И пытаемся распознать. Получилось распознование - строка. Не получилось - значит, возможно, не строка.


 
Кириешки ©   (2004-11-21 16:44) [24]

Мда..


 
Ihor Osov'yak ©   (2004-11-21 17:01) [25]

2 [23] KilkennyCat ©   (21.11.04 15:24)
это, собственно, п2. - и ОСR, собственно, одна из наиболее существенных составляющих. Когда в одном проекте нужно было решить похожую задачу -  пошел по пути перехвата апи. Решение не работало только для акроридера (из тех программ, с которыми экспериментировал) - наверное акроридер хитро делает вывод текста. Но, собственно, акроридер не входил в число обязательно перехватываемых приложений согласно ТЗ.


 
KilkennyCat ©   (2004-11-21 17:31) [26]


> Ihor Osov"yak ©   (21.11.04 17:01) [25]

да, с акроридером я тоже мучался...
на самом деле, я такую проблему решал именно ОСRом, но поскольку необходимость отлова текста была только для одного приложения, использующего всегда один и тот же набор символов, без возможности их изменения, то распознование шло просто и 100%. Хотя, конечно, со скоростью в способе перехвата апи даже не стоит и сравнивать...



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

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

Наверх





Память: 0.51 MB
Время: 0.145 c
1-1101198790
Jann
2004-11-23 11:33
2004.12.05
Нужна прога


14-1100688607
_none_
2004-11-17 13:50
2004.12.05
подскажите, пожалуйста, компоненты для работы с...


3-1099465219
Алексей
2004-11-03 10:00
2004.12.05
Структура БД InterBase


1-1100703753
Yanis
2004-11-17 18:02
2004.12.05
Переносы


8-1094471202
L@rs
2004-09-06 15:46
2004.12.05
BINK32W.DLL





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