powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Как отобразить Tooltip программно?
9 сообщений из 9, страница 1 из 1
Как отобразить Tooltip программно?
    #36910427
Guest_Dima
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброе время суток. Может кто-то делал подскажите пожалуйста. Использую я объект который взял здесь http://sql.ru/forum/actualthread.aspx?tid=455737 . По умолчанию подсказка показывается только когда я на вожу мышкой на элемент. Мне нужно в коде вызвать отображение подсказки элемента для которого я задал. пробовал вызов функции n_ToolTip.of_relaymsg(ado_object) - не работает ((
...
Рейтинг: 0 / 0
Как отобразить Tooltip программно?
    #36913362
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А Tooltipы не для этого...
...
Рейтинг: 0 / 0
Как отобразить Tooltip программно?
    #36913883
Guest_Dima
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я понимаю, просто я хотел этим реализовать систему напоминаний. Например если включен Caps Lock при вводе пароля и т.д. Может кто-то подскажет как можно это реализовать по другому? Выводить messagebox или в sle писать не подходит. Для sle нужно место на форме выделять(ну и как то оно не красиво если делать Visible true/false), ну а messagebox прерывает процесс ввода.
...
Рейтинг: 0 / 0
Как отобразить Tooltip программно?
    #36913956
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Guest_DimaЯ понимаю, просто я хотел этим реализовать систему напоминаний. Например если включен Caps Lock при вводе пароля и т.д. Может кто-то подскажет как можно это реализовать по другому? Выводить messagebox или в sle писать не подходит. Для sle нужно место на форме выделять(ну и как то оно не красиво если делать Visible true/false), ну а messagebox прерывает процесс ввода.
Тривиальнее всего сделать sle (ну или специальный объект разработать) в котором сделать по наступлению события visible = true, и запустить таймер который через определенное время сделает visible = false
...
Рейтинг: 0 / 0
Как отобразить Tooltip программно?
    #36914188
AIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Guest_DimaДоброе время суток. Может кто-то делал подскажите пожалуйста. Использую я объект который взял здесь http://sql.ru/forum/actualthread.aspx?tid=455737 . По умолчанию подсказка показывается только когда я на вожу мышкой на элемент. Мне нужно в коде вызвать отображение подсказки элемента для которого я задал. пробовал вызов функции n_ToolTip.of_relaymsg(ado_object) - не работает ((
А вообще, выбранный Вами объект (n_ToolTip) под мышкой работает?
Если - да, то скопируйте ключевой функционал вызова функции показа "подсказки" из события "ue_mousemove" (или как он там у Вас называется) и вставьте его в событие "getfocus", добавив перед стартом "подсказки" необходимую проверку. И ещё установите таймеры задержки и длительности показа "подсказки".
Где-то так. ;)
...
Рейтинг: 0 / 0
Как отобразить Tooltip программно?
    #36914822
Guest_Dima
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Под мышкой работает. Проблема в том что там используются API функции. И привязка подсказки с объектом выполняется с помощью функции Function integer ToolTipMsg(long hWnd, long uMsg, long wParam, REF TOOLINFO ToolInfo) library "user32.dll" Alias For "SendMessageA"
...
Рейтинг: 0 / 0
Как отобразить Tooltip программно?
    #36914947
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Guest_DimaПод мышкой работает. Проблема в том что там используются API функции. И привязка подсказки с объектом выполняется с помощью функции Function integer ToolTipMsg(long hWnd, long uMsg, long wParam, REF TOOLINFO ToolInfo) library "user32.dll" Alias For "SendMessageA"
А почему вы считаете, что то, что используются API функции - проблема?
В чем именно проблема?
...
Рейтинг: 0 / 0
Как отобразить Tooltip программно?
    #36915113
Guest_Dima
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Anatoly Moskovsky,

Значит смотрите, при открытии окна я прописываю для каждого элемента подсказку
n_ToolTip inv_TooltipDelayTimes
inv_TooltipDelayTimes.of_AddTool( sle_1, "Текст подсказки", inv_TooltipDelayTimes.ttf_subclass )

После при наведении мыши на этот элемент все работает(всплывает подсказка).
А мне нужно что бы эта подсказка всплывала не в тот момент когда навожу мышку, а например когда пришел фокус в этот элемент и выполнилось какое-то условие.

Текст функции n_ToolTip.of_AddTool(DragObject ado_Object, String as_TipText, Integer ai_Flags)

Instance Variables:
Constant long TTM_ADDTOOL = 1028

Local External Functions:
Function long LocalFree(long MemHandle) library "kernel32.dll"
Function integer ToolTipMsg(long hWnd, long uMsg, long wParam, REF TOOLINFO ToolInfo) library "user32.dll" Alias For "SendMessageA"
Function long lstrcpy(long Destination, string Source) library "kernel32.dll"
Function long LocalAlloc(long Flags, long Bytes) library "kernel32.dll"

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
/*****************************************************************************

	Function:		of_AddTool

	Description:	Registers a control within the tooltip control

	Returns:			(none)

	Arguments:		
                        DragObject  ado_Object	Object to register within the tooltip control
			String 	 as_TipText	        Tooltip Text
			Integer	 ai_Flags		Tool creation flags

	Use:				Call from mousemove-event for control

******************************************************************************/

TOOLINFO ToolInfo
Integer	li_Width, li_Height

ToolInfo.cbSize 	=  40 
ToolInfo.uFlags 	= TTF_SUBCLASS	//Flags 
ToolInfo.hWnd		= Handle( ado_Object )
ToolInfo.hInstance=  0  // Not used 
ToolInfo.uID		= ToolID
iul_Handle[ToolID] = ToolInfo.hWnd
ToolID++
ToolInfo.lpszText	= LocalAlloc(  0 ,  120  )
POST LocalFree( ToolInfo.lpszText ) // Free Allocated Memory
lStrCpy( ToolInfo.lpszText, Left( as_tiptext,  120  ) )

//	Define the object as a rectangle
ToolInfo.Rect.Left	=  0 
ToolInfo.Rect.Top 	=  0 
ToolInfo.Rect.Right	= UnitsToPixels( ado_Object.Width, XUnitsToPixels! )
ToolInfo.Rect.Bottom	= UnitsToPixels( ado_Object.Height, YUnitsToPixels! )

If ToolTipMsg( hWndTT, TTM_ADDTOOL,  0 , ToolInfo ) =  0  Then
	MessageBox( "Error", "Cannot register object in the toolwindow control!", StopSign!, Ok! )
	Return( - 1  )
End If

Return ( ToolID -  1  )
...
Рейтинг: 0 / 0
Как отобразить Tooltip программно?
    #36915403
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почитайте про работу с тултипами http://msdn.microsoft.com/en-us/library/bb760250%28v=VS.85%29.aspx
Может придумаете какой-то обходной маневр.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Как отобразить Tooltip программно?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]