Çíàþ ÷òî ïîäîáíûå òåìû óæå áûëè (è ÿ èõ â ìåðó ñâîåãî ïîíèìàíèÿ ïåðåëîïàòèë), íî òàêè íå âñå ïîíÿòíî, ïîýòîìó ñîçäàþ ýòó.
Èòàê çàäà÷à - èìååòñÿ íåêîòîðàÿ ïîä÷èíåííàÿ ôîðìà íà êîòîðîé ïðåäñòàâëåíû äàííûå â
òàáëè÷íîì âèäå. Äëèíû ïîëåé ôèêñèðîâàíû - à â íåêîòîðûõ ïîëÿõ òàêè ïîíàïèñàíî äî ïîëóòîðà ñîòåí ñèìâîëîâ. Íåîáõîäèìî ÷òî áû ïðè çàäåðæêå ìûøêè íàä ïîëåì âûâîäèëàñü "ïîäñêàçêà" â êîòîðîé áûëî áû âèäíî ñîäåðæàíèå âñåãî ïîëÿ. Ïðè ýòîì õîòåëîñü áû ÷òî áû ýòî áûëî äîñòàòî÷íî ïðîñòî (à òî åñòü òàêèå âàðèàíòû (î÷åíü êðàñèâûå êîíå÷íî, íî...) â êîòîðûõ ìîæíî ìåñÿö ðàçáèðàòüñÿ êàê ýòî ðàáîòàåò. È åùå ìåñÿö ýòî ïðîãðàììèðîâàòü. Íàäî ïðîñòî, òóïî, êâàäðàòíî.
×òî áûëî ñäåëàíî. Ñîçäàíà âñïëûâàþùàÿ ôîðìà hfrmTipText â ìîäóëå êîòîðîé (â ñîîòâåòñòâèè ñ îäíèì èç ïðèìåðîâ äëÿ ïîÿâëåíèÿ ôîðìû ðîâíî òàì êóäà óêàçûâàåò ìûøêà (÷òî òîæå íå ñóïåð ëó÷øå áûëî áû íåïîñðåäñòâåííî ïîä ïîëåì - íî è òàê ñîéäåò)) âíåñ:
Option Compare Database
Option Explicit
Private Declare Function MoveWindow Lib "user32.dll" (ByVal hwnd As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal bRepaint As Long) As Long
Private Declare Function GetCursorPos Lib "user32.dll" (lpPoint As POINT_TYPE) As Long
Private Declare Function GetWindowRect Lib "user32.dll" (ByVal hwnd As Long, lpRect As Rect) As Long
Private Type POINT_TYPE
X As Long
Y As Long
End Type
Private Type Rect
left As Long
top As Long
right As Long
bottom As Long
End Type
Private Sub Form_Open(Cancel As Integer)
Dim coord As POINT_TYPE ' êîîðäèíàòû êóðñîðà
Dim retval As Long ' âîçâðàùàåìîå çíà÷åíèå
Dim r As Rect ' ðàçìåðû îêíà
retval = GetCursorPos(coord) ' ñ÷èòûâàåì ïîçèöèþ êóðñîðà
retval = GetWindowRect(Me.hwnd, r) ' ñ÷èòûâàåì ðàçìåðû òåêóùåãî îêíà
' Ïåðåìåùàåì îêíî ôîðìû ïî ïîçèöèè êóðñîðà
retval = MoveWindow(Me.hwnd, coord.X, coord.Y + 10, r.right - r.left, r.bottom - r.top, 1)
End Sub
Ó ôîðìû íåò íè êíîïîê, íè ãðàíèö. Ïðîñòî êâàäðàòíàÿ ïàíåëüêà ñ ëåéáëîì.
Ïî ñîáûòèþ OnMousMove öåëåâîãî ïîëÿ çàïóñêàåòñÿ ïðîãðàììà:
Private Sub cmbApplication_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Shift = 1 Then
Me.cmbApplication.SetFocus
If Me.cmbApplication.VALUE <> "" Then
DoCmd.OpenForm "hfrmTipText", acNormal, , , acFormReadOnly, acWindowNormal
Forms!hfrmTipText.lblTipText.Caption = Me.cmbApplication.Text
End If
End If
End Sub
È âñå áû áëèí íè÷åãî - äà âîò òîëüêî íàäïèñü â "ïîäñêàçêå" ìåíÿåòñÿ òîëüêî ïðè çàõîäå íà ïîëå ñî ñòîðîíû (ñëåâà èëè ñïðàâà). Ïðè ïåðåìåùåíèè ìûøêè â ïðåäåëàõ ïîëÿ (ïî âñåì çàïèñÿì) ïðè ïåðåõîäå ãðàíèöû çàïèñè - íàäïèñü íå ìåíÿåòñÿ. À ýòî êðàéíå íå óäîáíî. ×òî ìîæíî ñ ýòèì ïîäåëàòü?
http://www.sql.ru/forum/1165998/vsplyvaushhaya-podskazka