Registriert seit: 3. Feb 2020
138 Beiträge
Delphi 6 Enterprise
|
AW: ComboBox Hint onItem?
23. Dez 2021, 16:58
Ich weiß zwar nicht was ich tue aber irgendwie scheint es so zu funktionieren
Code:
procedure TForm1.ApplicationIdle(sender: TObject; var Done: boolean);
var
pt, pt2 : TPoint;
wnd: HWND;
buf: array[0..128] of Char;
i : Integer;
begin
GetCursorPos(pt);
wnd := WindowFromPoint(pt);
if wnd <> 0 then begin
buf[0] := #0;
GetClassName(wnd, buf, SizeOf(buf));
if (StrIComp(buf, 'ComboLBox') = 0) then begin
Windows.ScreenToClient(wnd, pt);
i := SendMessage(wnd, LB_ITEMFROMPOINT, 0, lparam(PointToSmallpoint(pt)));
if (i >= 0) and (i < 65536) then begin
if (FHintIndex <> i) then begin
SendMessage(wnd, LB_GETTEXT, i, integer(@buf));
Sleep(500);
GetCursorPos(pt2);
Windows.ScreenToClient(wnd, pt2);
StatusBar1.Panels[1].Text := inttostr(pt2.y);
if (comboBox1.DroppedDown = true) and PointsEqual(pt,pt2) then begin
GetCursorPos(pt);
FHintWnd.ActivateHint(Rect(pt.X+10,pt.Y,pt.X+410,pt.Y+180), StandardHint[i]);
FHintIndex := i;
end;
end;
end;
end;
end;
end;
Die eine Punktkoordinate schreibe ich irgendwohin, damit es noch einmal updateted wird und lösche die dann später mit CloseUp.
|
|
Zitat
|